diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessController.java index 5137b9b..0797a43 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessController.java @@ -3,7 +3,7 @@ package com.ruoyi.oa.controller; import java.util.List; import java.util.Arrays; import java.util.concurrent.TimeUnit; - +import com.ruoyi.oa.domain.OaBusiness; import com.ruoyi.oa.domain.vo.OaProductVo; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; @@ -117,4 +117,21 @@ public class OaBusinessController extends BaseController { public TableDataInfo getBusinessProducts(OaBusinessBo bo) { return iOaBusinessService.getBusinessProducts(bo); } + @GetMapping("/customer/{customerId}") + @Log(title = "CRM 商机", businessType = BusinessType.EXPORT) + public TableDataInfo getBusinessByCustomerId(@PathVariable Long customerId, PageQuery pageQuery){ + return iOaBusinessService.getBusinessByCustomerId(customerId,pageQuery); + } + @Log(title = "CRM 商机", businessType = BusinessType.DELETE) + @DeleteMapping + public R deleteBusiness(@RequestParam Long businessId){ + iOaBusinessService.deleteBusiness(businessId); + return R.ok(); + } + @GetMapping("/follow/{businessId}") + public R setFollow(@PathVariable Long businessId){ + iOaBusinessService.setFollow(businessId); + return R.ok(); + } + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaBusinessMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaBusinessMapper.java index 18e89aa..7e5736d 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaBusinessMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaBusinessMapper.java @@ -1,5 +1,5 @@ package com.ruoyi.oa.mapper; - +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.ruoyi.oa.domain.OaBusiness; @@ -8,6 +8,7 @@ import com.ruoyi.oa.domain.bo.SysOaProjectBo; import com.ruoyi.oa.domain.vo.OaBusinessVo; import com.ruoyi.common.core.mapper.BaseMapperPlus; import com.ruoyi.oa.domain.vo.OaProductVo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -24,4 +25,13 @@ public interface OaBusinessMapper extends BaseMapperPlus getBusinessProducts(OaBusinessBo bo,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + + Page getBusinessByCustomerId(Long customerId); +@Delete( "delete from oa_business where business_id=#{businessId}" + ) + void deleteBusinessById(Long businessId); + + + void setFollow(Long businessId); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaBusinessProductMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaBusinessProductMapper.java index 4619e24..adcd54c 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaBusinessProductMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaBusinessProductMapper.java @@ -3,6 +3,10 @@ package com.ruoyi.oa.mapper; import com.ruoyi.oa.domain.OaBusinessProduct; import com.ruoyi.oa.domain.vo.OaBusinessProductVo; import com.ruoyi.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * CRM 商机产品关联Mapper接口 @@ -12,4 +16,7 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus; */ public interface OaBusinessProductMapper extends BaseMapperPlus { + List selectByBusinessId(Long businessId); + + void deleteByBusinessId(Long businessId); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBusinessService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBusinessService.java index ddbd273..12d66fc 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBusinessService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBusinessService.java @@ -1,6 +1,7 @@ package com.ruoyi.oa.service; +import com.ruoyi.oa.domain.OaBusiness; import com.ruoyi.oa.domain.vo.OaBusinessVo; import com.ruoyi.oa.domain.bo.OaBusinessBo; import com.ruoyi.common.core.page.TableDataInfo; @@ -59,4 +60,10 @@ public interface IOaBusinessService { * 查询CRM 批量商机 */ List queryByIds(Collection list); + TableDataInfo getBusinessByCustomerId(Long customerId, PageQuery pageQuery); + + void deleteBusiness(Long businessId); + + + void setFollow(Long businessId); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBusinessServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBusinessServiceImpl.java index 3d8bdc2..ab86c01 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBusinessServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBusinessServiceImpl.java @@ -8,7 +8,9 @@ import com.ruoyi.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.oa.domain.OaBusinessProduct; import com.ruoyi.oa.domain.vo.OaProductVo; +import com.ruoyi.oa.mapper.OaBusinessProductMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.ruoyi.oa.domain.bo.OaBusinessBo; @@ -33,6 +35,7 @@ import java.util.Collection; public class OaBusinessServiceImpl implements IOaBusinessService { private final OaBusinessMapper baseMapper; + private final OaBusinessProductMapper oaBusinessProductMapper; /** * 查询CRM 商机 @@ -143,4 +146,30 @@ public class OaBusinessServiceImpl implements IOaBusinessService { } return baseMapper.selectVoList(new LambdaQueryWrapper().in(OaBusiness::getBusinessId, list)); } + + @Override + public TableDataInfo getBusinessByCustomerId(Long customerId,PageQuery pageQuery) { + List list = buildQueryByCustomerId(customerId); + return TableDataInfo.build(list); + } + private List buildQueryByCustomerId(Long id) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq( OaBusiness::getCustomerId,id); + return baseMapper.selectList(lqw); + } + + @Override + public void deleteBusiness(Long businessId) { + baseMapper.deleteBusinessById(businessId); + + List oaBusinessProducts = oaBusinessProductMapper.selectByBusinessId(businessId); + if(!oaBusinessProducts.isEmpty()){ + oaBusinessProductMapper.deleteByBusinessId(businessId); + } + } + + @Override + public void setFollow(Long businessId) { + baseMapper.setFollow(businessId); + } } diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml index 2964af8..3d150e5 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml @@ -36,6 +36,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join oa_product op on obp.product_id = op.product_id ${ew.getCustomSqlSegment} + + update oa_business set follow_up_status = 1 where business_id=#{businessId} + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessProductMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessProductMapper.xml index f698da0..3e46248 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessProductMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessProductMapper.xml @@ -19,5 +19,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + delete from oa_business_product where business_id = #{businessId} + +