package com.ruoyi.sales.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.sales.mapper.BusinessDescriptionMapper;
|
import com.ruoyi.sales.pojo.BusinessDescription;
|
import com.ruoyi.sales.pojo.BusinessOpportunity;
|
import com.ruoyi.sales.service.BusinessOpportunityService;
|
import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
|
import io.jsonwebtoken.lang.Collections;
|
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.*;
|
|
import java.util.List;
|
|
/**
|
* @author :yys
|
* @date : 2025/12/12 9:29
|
*/
|
@RestController
|
@RequestMapping("/businessOpportunity")
|
@Api(tags = "商机管理")
|
public class BusinessOpportunityController extends BaseController {
|
|
@Autowired
|
private BusinessOpportunityService businessOpportunityService;
|
|
@Autowired
|
private BusinessDescriptionMapper BusinessDescriptionMapper;
|
|
@Autowired
|
private CommonFileServiceImpl commonFileService;
|
|
@GetMapping("/listPage")
|
@ApiOperation("商机列表")
|
public AjaxResult listPage(Page page, BusinessOpportunity businessOpportunity) {
|
IPage<BusinessOpportunity> businessOpportunityIPage = businessOpportunityService.listPage(page, businessOpportunity);
|
businessOpportunityIPage.getRecords().forEach(item -> {
|
item.setBusinessCommonFiles(commonFileService.getFileList(item.getId(),9));
|
item.setBusinessDescription(BusinessDescriptionMapper.selectList(Wrappers.lambdaQuery(BusinessDescription.class)
|
.eq(BusinessDescription::getBusinessOpportunityId, item.getId())));
|
});
|
return AjaxResult.success(businessOpportunityIPage);
|
}
|
|
@PostMapping("/add")
|
@ApiOperation("添加商机")
|
@Log(title = "商机管理-添加商机", businessType = BusinessType.INSERT)
|
@Transactional(rollbackFor = Exception.class)
|
public AjaxResult add(@RequestBody BusinessOpportunity businessOpportunity) throws Exception{
|
businessOpportunityService.save(businessOpportunity);
|
BusinessDescription businessDescription = new BusinessDescription();
|
BeanUtils.copyProperties(businessOpportunity, businessDescription);
|
businessDescription.setBusinessOpportunityId(businessOpportunity.getId());
|
// 迁移临时文件到正式文件
|
commonFileService.migrateTempFilesToFormal(businessOpportunity.getId(), businessOpportunity.getTempFileIds());
|
return BusinessDescriptionMapper.insert(businessDescription) > 0 ? success() : error();
|
}
|
|
@PostMapping("/addDescription")
|
@ApiOperation("添加商机描述")
|
@Log(title = "商机管理-添加商机描述", businessType = BusinessType.INSERT)
|
public AjaxResult addDescription(@RequestBody BusinessDescription businessDescription) throws Exception{
|
// 迁移临时文件到正式文件
|
commonFileService.migrateTempFilesToFormal(businessDescription.getBusinessOpportunityId(), businessDescription.getTempFileIds());
|
return BusinessDescriptionMapper.insert(businessDescription) > 0 ? success() : error();
|
}
|
|
@PostMapping("/update")
|
@ApiOperation("修改商机")
|
@Log(title = "商机管理-修改商机", businessType = BusinessType.UPDATE)
|
public AjaxResult update(@RequestBody BusinessOpportunity businessOpportunity) throws Exception{
|
// 迁移临时文件到正式文件
|
commonFileService.migrateTempFilesToFormal(businessOpportunity.getId(), businessOpportunity.getTempFileIds());
|
return businessOpportunityService.updateById(businessOpportunity) ? success() : error();
|
}
|
|
@DeleteMapping("/delete")
|
@ApiOperation("删除商机")
|
@Log(title = "商机管理-删除商机", businessType = BusinessType.DELETE)
|
public AjaxResult delete(@RequestBody List<Long> ids) {
|
if(Collections.isEmpty(ids)) return error("请选择要删除的商机");
|
return businessOpportunityService.removeBatchByIds(ids) ? success() : error();
|
}
|
|
|
|
}
|