package com.ruoyi.basic.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.basic.dto.CustomerDto;
|
import com.ruoyi.basic.pojo.Customer;
|
import com.ruoyi.basic.service.ICustomerService;
|
import com.ruoyi.basic.vo.CustomerVo;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.framework.aspectj.lang.annotation.Log;
|
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
|
import com.ruoyi.framework.web.controller.BaseController;
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
import com.ruoyi.framework.web.domain.R;
|
import lombok.AllArgsConstructor;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import jakarta.servlet.http.HttpServletResponse;
|
import java.util.List;
|
|
/**
|
* 客户档案Controller
|
*
|
* @author ruoyi
|
* @date 2025-05-07
|
*/
|
@RestController
|
@RequestMapping("/basic/customer")
|
@AllArgsConstructor
|
public class CustomerController extends BaseController {
|
private ICustomerService customerService;
|
|
/**
|
* 查询客户档案列表
|
*/
|
@GetMapping("/list")
|
public R list(Page<CustomerDto> page, CustomerDto customer) {
|
IPage<CustomerVo> customerDtoIPage = customerService.selectCustomerList(page, customer);
|
return R.ok(customerDtoIPage);
|
}
|
|
/**
|
* 导出客户档案列表
|
*/
|
@Log(title = "客户档案", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, CustomerDto customer) {
|
ExcelUtil<CustomerVo> util = new ExcelUtil<CustomerVo>(CustomerVo.class);
|
util.exportExcel(response, customerService.selectCustomerLists(customer), "客户档案数据");
|
}
|
|
@PostMapping("/downloadTemplate")
|
@Log(title = "客户档案-下载模板", businessType = BusinessType.EXPORT)
|
public void downloadTemplate(HttpServletResponse response) {
|
ExcelUtil<Customer> util = new ExcelUtil<Customer>(Customer.class);
|
util.importTemplateExcel(response, "客户档案模板");
|
}
|
|
|
/**
|
* 导入客户档案
|
*/
|
@Log(title = "客户档案", businessType = BusinessType.IMPORT)
|
@PostMapping("/importData")
|
public AjaxResult importData(MultipartFile file, Integer type) throws Exception {
|
|
return customerService.importData(file, type);
|
}
|
|
/**
|
* 获取客户档案详细信息
|
*/
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
return success(customerService.selectCustomerDetailById(id));
|
}
|
|
/**
|
* 新增客户档案
|
*/
|
@Log(title = "客户档案", businessType = BusinessType.INSERT)
|
@PostMapping("/addCustomer")
|
public AjaxResult add(@RequestBody Customer customer) {
|
return toAjax(customerService.insertCustomer(customer));
|
}
|
|
/**
|
* 修改客户档案
|
*/
|
@Log(title = "客户档案", businessType = BusinessType.UPDATE)
|
@PostMapping("/updateCustomer")
|
public AjaxResult edit(@RequestBody Customer customer) {
|
return toAjax(customerService.updateCustomer(customer));
|
}
|
|
/**
|
* 删除客户档案
|
*/
|
@Log(title = "客户档案", businessType = BusinessType.DELETE)
|
@DeleteMapping("/delCustomer")
|
public AjaxResult remove(@RequestBody Long[] ids) {
|
if (ids == null || ids.length == 0) {
|
return AjaxResult.error("请传入要删除的ID");
|
}
|
return toAjax(customerService.deleteCustomerByIds(ids));
|
}
|
|
/**
|
* 查询客户
|
*/
|
@GetMapping("/customerList")
|
public List customerList(Customer customer) {
|
return customerService.customerList(customer);
|
}
|
|
|
/**
|
* 分配客户
|
*/
|
@Log(title = "客户档案", businessType = BusinessType.OTHER)
|
@PostMapping("/assignCustomer")
|
public AjaxResult assignCustomer(@RequestBody CustomerDto customer) {
|
customerService.assignCustomer(customer);
|
return AjaxResult.success();
|
}
|
|
/**
|
* 回收客户
|
*/
|
@Log(title = "客户档案", businessType = BusinessType.OTHER)
|
@PostMapping("/recycleCustomer")
|
public AjaxResult recycleCustomer(@RequestBody CustomerDto customer) {
|
customerService.recycleCustomer(customer);
|
return AjaxResult.success();
|
}
|
|
/**
|
* 共享客户
|
*/
|
@Log(title = "客户档案", businessType = BusinessType.OTHER)
|
@PostMapping("/together")
|
public AjaxResult together(@RequestBody CustomerDto customer) {
|
customerService.together(customer);
|
return AjaxResult.success();
|
}
|
}
|