商机管理
This commit is contained in:
@@ -3,7 +3,7 @@ package com.ruoyi.oa.controller;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import com.ruoyi.oa.domain.OaBusiness;
|
||||||
import com.ruoyi.oa.domain.vo.OaProductVo;
|
import com.ruoyi.oa.domain.vo.OaProductVo;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -117,4 +117,21 @@ public class OaBusinessController extends BaseController {
|
|||||||
public TableDataInfo<OaProductVo> getBusinessProducts(OaBusinessBo bo) {
|
public TableDataInfo<OaProductVo> getBusinessProducts(OaBusinessBo bo) {
|
||||||
return iOaBusinessService.getBusinessProducts(bo);
|
return iOaBusinessService.getBusinessProducts(bo);
|
||||||
}
|
}
|
||||||
|
@GetMapping("/customer/{customerId}")
|
||||||
|
@Log(title = "CRM 商机", businessType = BusinessType.EXPORT)
|
||||||
|
public TableDataInfo<OaBusiness> getBusinessByCustomerId(@PathVariable Long customerId, PageQuery pageQuery){
|
||||||
|
return iOaBusinessService.getBusinessByCustomerId(customerId,pageQuery);
|
||||||
|
}
|
||||||
|
@Log(title = "CRM 商机", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping
|
||||||
|
public R<Void> deleteBusiness(@RequestParam Long businessId){
|
||||||
|
iOaBusinessService.deleteBusiness(businessId);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
@GetMapping("/follow/{businessId}")
|
||||||
|
public R<Void> setFollow(@PathVariable Long businessId){
|
||||||
|
iOaBusinessService.setFollow(businessId);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
package com.ruoyi.oa.mapper;
|
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.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.ruoyi.oa.domain.OaBusiness;
|
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.oa.domain.vo.OaBusinessVo;
|
||||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||||
import com.ruoyi.oa.domain.vo.OaProductVo;
|
import com.ruoyi.oa.domain.vo.OaProductVo;
|
||||||
|
import org.apache.ibatis.annotations.Delete;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -24,4 +25,13 @@ public interface OaBusinessMapper extends BaseMapperPlus<OaBusinessMapper, OaBus
|
|||||||
* 联查商机与产品以及其关联表
|
* 联查商机与产品以及其关联表
|
||||||
*/
|
*/
|
||||||
List<OaProductVo> getBusinessProducts(OaBusinessBo bo,@Param(Constants.WRAPPER) QueryWrapper<OaBusiness> queryWrapper);
|
List<OaProductVo> getBusinessProducts(OaBusinessBo bo,@Param(Constants.WRAPPER) QueryWrapper<OaBusiness> queryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
Page<OaBusinessVo> getBusinessByCustomerId(Long customerId);
|
||||||
|
@Delete( "delete from oa_business where business_id=#{businessId}"
|
||||||
|
)
|
||||||
|
void deleteBusinessById(Long businessId);
|
||||||
|
|
||||||
|
|
||||||
|
void setFollow(Long businessId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,10 @@ package com.ruoyi.oa.mapper;
|
|||||||
import com.ruoyi.oa.domain.OaBusinessProduct;
|
import com.ruoyi.oa.domain.OaBusinessProduct;
|
||||||
import com.ruoyi.oa.domain.vo.OaBusinessProductVo;
|
import com.ruoyi.oa.domain.vo.OaBusinessProductVo;
|
||||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
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接口
|
* CRM 商机产品关联Mapper接口
|
||||||
@@ -12,4 +16,7 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
|||||||
*/
|
*/
|
||||||
public interface OaBusinessProductMapper extends BaseMapperPlus<OaBusinessProductMapper, OaBusinessProduct, OaBusinessProductVo> {
|
public interface OaBusinessProductMapper extends BaseMapperPlus<OaBusinessProductMapper, OaBusinessProduct, OaBusinessProductVo> {
|
||||||
|
|
||||||
|
List<OaBusinessProduct> selectByBusinessId(Long businessId);
|
||||||
|
|
||||||
|
void deleteByBusinessId(Long businessId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.oa.service;
|
package com.ruoyi.oa.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.ruoyi.oa.domain.OaBusiness;
|
||||||
import com.ruoyi.oa.domain.vo.OaBusinessVo;
|
import com.ruoyi.oa.domain.vo.OaBusinessVo;
|
||||||
import com.ruoyi.oa.domain.bo.OaBusinessBo;
|
import com.ruoyi.oa.domain.bo.OaBusinessBo;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
@@ -59,4 +60,10 @@ public interface IOaBusinessService {
|
|||||||
* 查询CRM 批量商机
|
* 查询CRM 批量商机
|
||||||
*/
|
*/
|
||||||
List<OaBusinessVo> queryByIds(Collection<Long> list);
|
List<OaBusinessVo> queryByIds(Collection<Long> list);
|
||||||
|
TableDataInfo<OaBusiness> getBusinessByCustomerId(Long customerId, PageQuery pageQuery);
|
||||||
|
|
||||||
|
void deleteBusiness(Long businessId);
|
||||||
|
|
||||||
|
|
||||||
|
void setFollow(Long businessId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import com.ruoyi.common.core.domain.PageQuery;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.ruoyi.oa.domain.OaBusinessProduct;
|
||||||
import com.ruoyi.oa.domain.vo.OaProductVo;
|
import com.ruoyi.oa.domain.vo.OaProductVo;
|
||||||
|
import com.ruoyi.oa.mapper.OaBusinessProductMapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ruoyi.oa.domain.bo.OaBusinessBo;
|
import com.ruoyi.oa.domain.bo.OaBusinessBo;
|
||||||
@@ -33,6 +35,7 @@ import java.util.Collection;
|
|||||||
public class OaBusinessServiceImpl implements IOaBusinessService {
|
public class OaBusinessServiceImpl implements IOaBusinessService {
|
||||||
|
|
||||||
private final OaBusinessMapper baseMapper;
|
private final OaBusinessMapper baseMapper;
|
||||||
|
private final OaBusinessProductMapper oaBusinessProductMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询CRM 商机
|
* 查询CRM 商机
|
||||||
@@ -143,4 +146,30 @@ public class OaBusinessServiceImpl implements IOaBusinessService {
|
|||||||
}
|
}
|
||||||
return baseMapper.selectVoList(new LambdaQueryWrapper<OaBusiness>().in(OaBusiness::getBusinessId, list));
|
return baseMapper.selectVoList(new LambdaQueryWrapper<OaBusiness>().in(OaBusiness::getBusinessId, list));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<OaBusiness> getBusinessByCustomerId(Long customerId,PageQuery pageQuery) {
|
||||||
|
List<OaBusiness> list = buildQueryByCustomerId(customerId);
|
||||||
|
return TableDataInfo.build(list);
|
||||||
|
}
|
||||||
|
private List<OaBusiness> buildQueryByCustomerId(Long id) {
|
||||||
|
LambdaQueryWrapper<OaBusiness> lqw = new LambdaQueryWrapper<>();
|
||||||
|
lqw.eq( OaBusiness::getCustomerId,id);
|
||||||
|
return baseMapper.selectList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteBusiness(Long businessId) {
|
||||||
|
baseMapper.deleteBusinessById(businessId);
|
||||||
|
|
||||||
|
List<OaBusinessProduct> oaBusinessProducts = oaBusinessProductMapper.selectByBusinessId(businessId);
|
||||||
|
if(!oaBusinessProducts.isEmpty()){
|
||||||
|
oaBusinessProductMapper.deleteByBusinessId(businessId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFollow(Long businessId) {
|
||||||
|
baseMapper.setFollow(businessId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
left join oa_product op on obp.product_id = op.product_id
|
left join oa_product op on obp.product_id = op.product_id
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
<update id="setFollow">
|
||||||
|
update oa_business set follow_up_status = 1 where business_id=#{businessId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<select id="getBusinessByCustomerId" resultType="com.ruoyi.oa.domain.vo.OaBusinessVo">
|
||||||
|
select * from oa_business
|
||||||
|
<where >
|
||||||
|
customerId=#{customerId}
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -19,5 +19,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="delFlag" column="del_flag"/>
|
<result property="delFlag" column="del_flag"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<delete id="deleteByBusinessId">
|
||||||
|
delete from oa_business_product where business_id = #{businessId}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<select id="selectByBusinessId" resultType="com.ruoyi.oa.domain.OaBusinessProduct">
|
||||||
|
select * from oa_business_product where business_id = #{businessId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user