功能模块(客户信息管理、销售管理和售后服务)来展示一个完整的代码实现。涵盖了数据库设计、实体类、数据访问层(Repository)、服务层(Service)和控制层(Controller)。
### 1. 数据库设计
#### 客户信息管理
```sql
CREATE TABLE customer (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
contact_number VARCHAR(20)
);
CREATE TABLE contact_person (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
customer_id BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
email VARCHAR(100),
phone_number VARCHAR(20),
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
```
#### 销售管理
```sql
CREATE TABLE sales_lead (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
lead_name VARCHAR(100) NOT NULL,
description TEXT,
customer_id BIGINT,
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
CREATE TABLE sales_opportunity (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
customer_id BIGINT,
opportunity_name VARCHAR(100) NOT NULL,
estimated_value DECIMAL(10, 2),
close_date TIMESTAMP,
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
```
#### 售后服务
```sql
CREATE TABLE complaint (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
customer_id BIGINT,
description TEXT,
complaint_date TIMESTAMP,
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
CREATE TABLE service_ticket (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
customer_id BIGINT,
description TEXT,
ticket_date TIMESTAMP,
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
```
### 2. 实体类
#### 客户信息管理
```java
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@Column(name = "contact_number")
private String contactNumber;
// getters and setters
}
@Entity
public class ContactPerson {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "customer_id")
private Long customerId;
private String name;
private String email;
@Column(name = "phone_number")
private String phoneNumber;
// getters and setters
}
```
#### 销售管理
```java
@Entity
public class SalesLead {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String leadName;
private String description;
@Column(name = "customer_id")
private Long customerId;
// getters and setters
}
@Entity
public class SalesOpportunity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "customer_id")
private Long customerId;
private String opportunityName;
private BigDecimal estimatedValue;
private LocalDateTime closeDate;
// getters and setters
}
```
#### 售后服务
```java
@Entity
public class Complaint {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "customer_id")
private Long customerId;
private String description;
private LocalDateTime complaintDate;
// getters and setters
}
@Entity
public class ServiceTicket {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "customer_id")
private Long customerId;
private String description;
private LocalDateTime ticketDate;
// getters and setters
}
```
### 3. 数据访问层(Repository)
#### 客户信息管理
```java
public interface CustomerRepository extends JpaRepository<Customer, Long> {
// custom queries if needed
}
public interface ContactPersonRepository extends JpaRepository<ContactPerson, Long> {
List<ContactPerson> findByCustomerId(Long customerId);
// other custom queries if needed
}
```
#### 销售管理
```java
public interface SalesLeadRepository extends JpaRepository<SalesLead, Long> {
// custom queries if needed
}
public interface SalesOpportunityRepository extends JpaRepository<SalesOpportunity, Long> {
// custom queries if needed
}
```
#### 售后服务
```java
public interface ComplaintRepository extends JpaRepository<Complaint, Long> {
// custom queries if needed
}
public interface ServiceTicketRepository extends JpaRepository<ServiceTicket, Long> {
// custom queries if needed
}
```
### 4. 服务层(Service)
#### 客户信息管理
```java
@Service
public class CustomerService {
@Autowired
private CustomerRepository customerRepository;
public Customer addCustomer(Customer customer) {
return customerRepository.save(customer);
}
public List<Customer> getAllCustomers() {
return customerRepository.findAll();
}
// other methods as per business requirements
}
@Service
public class ContactPersonService {
@Autowired
private ContactPersonRepository contactPersonRepository;
public ContactPerson addContactPerson(ContactPerson contactPerson) {
return contactPersonRepository.save(contactPerson);
}
public List<ContactPerson> getContactPersonsByCustomerId(Long customerId) {
return contactPersonRepository.findByCustomerId(customerId);
}
// other methods as per business requirements
}
```
#### 销售管理
```java
@Service
public class SalesService {
@Autowired
private SalesLeadRepository salesLeadRepository;
@Autowired
private SalesOpportunityRepository salesOpportunityRepository;
public SalesLead addSalesLead(SalesLead salesLead) {
return salesLeadRepository.save(salesLead);
}
public SalesOpportunity addSalesOpportunity(SalesOpportunity salesOpportunity) {
return salesOpportunityRepository.save(salesOpportunity);
}
// other methods as per business requirements
}
```
#### 售后服务
```java
@Service
public class ServiceService {
@Autowired
private ComplaintRepository complaintRepository;
@Autowired
private ServiceTicketRepository serviceTicketRepository;
public Complaint addComplaint(Complaint complaint) {
return complaintRepository.save(complaint);
}
public ServiceTicket addServiceTicket(ServiceTicket serviceTicket) {
return serviceTicketRepository.save(serviceTicket);
}
// other methods as per business requirements
}
```
### 5. 控制层(Controller)
#### 客户信息管理
```java
@RestController
@RequestMapping("/api/customers")
public class CustomerController {
@Autowired
private CustomerService customerService;
@PostMapping("/add")
public ResponseEntity<Customer> addCustomer(@RequestBody Customer customer) {
Customer newCustomer = customerService.addCustomer(customer);
return new ResponseEntity<>(newCustomer, HttpStatus.CREATED);
}
@GetMapping("/all")
public ResponseEntity<List<Customer>> getAllCustomers() {
List<Customer> customers = customerService.getAllCustomers();
return new ResponseEntity<>(customers, HttpStatus.OK);
}
// other endpoints for update, delete, search, etc.
}
@RestController
@RequestMapping("/api/contact-persons")
public class ContactPersonController {
@Autowired
private ContactPersonService contactPersonService;
@PostMapping("/add")
public ResponseEntity<ContactPerson> addContactPerson(@RequestBody ContactPerson contactPerson) {
ContactPerson newContactPerson = contactPersonService.addContactPerson(contactPerson);
return new ResponseEntity<>(newContactPerson, HttpStatus.CREATED);
}
@GetMapping("/customer/{customerId}")
public ResponseEntity<List<ContactPerson>> getContactPersonsByCustomerId(@PathVariable Long customerId) {
List<ContactPerson> contactPersons = contactPersonService.getContactPersonsByCustomerId(customerId);
return new ResponseEntity<>(contactPersons, HttpStatus.OK);
}
// other endpoints for update, delete, search, etc.
}
```
#### 销售管理
```java
@RestController
@RequestMapping("/api/sales")
public class SalesController {
@Autowired
private SalesService salesService;
@PostMapping("/lead/add")
public ResponseEntity<SalesLead> addSalesLead(@RequestBody SalesLead salesLead) {
SalesLead newSalesLead = salesService.addSalesLead(salesLead);
return new ResponseEntity<>(newSalesLead, HttpStatus.CREATED);
}
@PostMapping("/opportunity/add")
public ResponseEntity<SalesOpportunity> addSalesOpportunity(@RequestBody SalesOpportunity salesOpportunity) {
SalesOpportunity newSalesOpportunity = salesService.addSalesOpportunity(salesOpportunity);
return new ResponseEntity<>(newSalesOpportunity, HttpStatus.CREATED);
}
// other endpoints for update, delete, search, etc.
}
```
#### 售后服务
```java
@RestController
@RequestMapping("/api/service")
public class ServiceController {
@Autowired
private ServiceService serviceService;
@PostMapping("/complaint/add")
public ResponseEntity<Complaint> addComplaint(@RequestBody Complaint complaint) {
Complaint newComplaint = serviceService.addComplaint(complaint);
return new ResponseEntity<>(newComplaint, HttpStatus.CREATED);
}
@PostMapping("/ticket/add")
public ResponseEntity<ServiceTicket> addServiceTicket(@RequestBody ServiceTicket serviceTicket) {
ServiceTicket newServiceTicket = serviceService.addServiceTicket(serviceTicket);
return new ResponseEntity<>(newServiceTicket, HttpStatus.CREATED);
}
// other endpoints for update, delete, search, etc.
}
```
各个功能模块的实现,包括客户信息管理、销售管理和售后服务。每个模块都有对应的数据库设计、实体类定义、数据访问层、服务层和控制层的实现。
3381

被折叠的 条评论
为什么被折叠?



