package com.ruoyi.customervisits.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.enums.FileNameType; import com.ruoyi.customervisits.dto.CustomerVisitsDto; import com.ruoyi.customervisits.pojo.CustomerVisits; import com.ruoyi.customervisits.service.impl.CustomerVisitsServiceImpl; 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.other.service.impl.TempFileServiceImpl; import com.ruoyi.sales.service.impl.CommonFileServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; /** * @author :yys * @date : 2025/8/29 10:28 */ @RestController @Api(tags = "客户拜访") @RequestMapping("/customerVisits") public class CustomerVisitsController extends BaseController { @Autowired private CustomerVisitsServiceImpl customerVisitsService; @Autowired private TempFileServiceImpl tempFileService; @Autowired private CommonFileServiceImpl commonFileService; @GetMapping("/listPage") @Log(title = "客户拜访-分页查询", businessType = BusinessType.OTHER) @ApiOperation("客户拜访-分页查询") public AjaxResult listPage(Page page, CustomerVisits customerVisits) { IPage listPage = customerVisitsService.listPage(page, customerVisits); return AjaxResult.success(listPage); } @Log(title = "客户拜访-添加", businessType = BusinessType.INSERT) @ApiOperation("客户拜访-添加") @PostMapping("/add") @Transactional(rollbackFor = Exception.class) public AjaxResult add(@RequestBody CustomerVisitsDto customerVisitsDto) throws Exception{ CustomerVisits customerVisits = new CustomerVisits(); BeanUtils.copyProperties(customerVisitsDto,customerVisits); boolean save = customerVisitsService.save(customerVisits); // 附件绑定 tempFileService.migrateTempFilesToFormal(customerVisits.getId().longValue(), customerVisitsDto.getTempFileIds(), FileNameType.CUSTOMER_VISITS.getValue()); if (save) { return AjaxResult.success("添加成功"); } return AjaxResult.error("添加失败"); } @Log(title = "客户拜访-编辑", businessType = BusinessType.UPDATE) @ApiOperation("客户拜访-编辑") @PostMapping("update") public AjaxResult updateCustomerVisit(@RequestBody CustomerVisitsDto customerVisitsDto) throws Exception{ boolean updateResult = customerVisitsService.updateCustomerVisit(customerVisitsDto); if (updateResult) { return AjaxResult.success("编辑成功"); } return AjaxResult.error("编辑失败"); } @Log(title = "客户拜访-删除", businessType = BusinessType.DELETE) @ApiOperation("客户拜访-删除") @DeleteMapping("{customerId}") public AjaxResult deleteCustomerVisit(@PathVariable Integer customerId) { if (customerId == null) { return AjaxResult.error("客户ID不能为空"); } boolean deleteResult = customerVisitsService.removeById(customerId); if (deleteResult) { // 删除对应的附件 commonFileService.deleteByBusinessId(customerId.longValue(), FileNameType.CUSTOMER_VISITS.getValue()); return AjaxResult.success("删除成功"); } return AjaxResult.error("删除失败"); } }