From 9c791d431038fe79a111805762ee2f42c96b51c5 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 08 Nov 2021 17:03:15 +0800
Subject: [PATCH] fix

---
 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java |  234 +++++++++++++++++++++++++++++++---------------------------
 1 files changed, 126 insertions(+), 108 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
index e1aca9d..617db32 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
@@ -6,14 +6,11 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.matrix.biz.bean.BizUser;
-import com.matrix.biz.dao.BizUserDao;
-import com.matrix.biz.service.BizUserService;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.VerificationResult;
-import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
 import com.matrix.system.common.bean.BusParameterSettings;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
@@ -25,6 +22,9 @@
 import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
 import com.matrix.system.fenxiao.vo.*;
 import com.matrix.system.hive.action.util.QueryUtil;
+import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.hive.service.SysVipInfoService;
 import com.matrix.system.shopXcx.dao.ShopOrderV2Dao;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -53,36 +53,36 @@
     ShopSalesmanGradeDao shopSalesmanGradeDao;
 
     @Autowired
-    private BizUserDao bizUserDao;
+    SysVipInfoDao sysVipInfoDao;
 
     @Autowired
-    BizUserService bizUserService;
+    SysVipInfoService sysVipInfoService;
 
     @Autowired
     ShopOrderV2Dao shopOrderV2Dao;
 
     /**
      * 申请成为推广员
-     * @param openId
+     * @param userId
      * @param invitationId
      * @return
      */
-    public ShopSalesmanApply applyToBeAnSalesman(String openId,String gradeId,String invitationId,int applyWay) {
+    public ShopSalesmanApply applyToBeAnSalesman(Long userId,Long gradeId,Long invitationId,int applyWay) {
 
-        BizUser loginUser=bizUserDao.findByOpenId(openId);
+        SysVipInfo loginUser=sysVipInfoDao.selectById(userId);
         //验证申请条件
-        VerificationResult verificationResult = isAbleToBeAnSalesman(openId,loginUser.getCompanyId());
+        VerificationResult verificationResult = isAbleToBeAnSalesman(userId,loginUser.getCompanyId());
         if(verificationResult.isJudgeResult()){
             //校验审核状态,和是否重复发起
             QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("user_id",loginUser.getOpenId());
+            queryWrapper.eq("user_id",loginUser.getId());
             queryWrapper.in("apply_status",Arrays.asList("1,2".split(",")));
             ShopSalesmanApply checkApply = shopSalesmanApplyDao.selectOne(queryWrapper);
             if(checkApply==null||
                     checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){
 
                 ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply();
-                shopSalesmanApply.setUserId(openId);
+                shopSalesmanApply.setUserId(userId);
 
                 shopSalesmanApply.setCreateBy(MatrixConstance.SYSTEM_USER);
                 shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF);
@@ -93,14 +93,14 @@
                 shopSalesmanApply.setCreateTime(date);
                 shopSalesmanApply.setUpdateTime(date);
 
-                if(StringUtils.isNotBlank(invitationId)){
+                if(invitationId!=null){
                     shopSalesmanApply.setParentUserId(invitationId);
-                }else if(StringUtils.isNotBlank(loginUser.getParentOpenId())){
+                }else if(loginUser.getRecommendId()!=null){
                     //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级
-                    shopSalesmanApply.setParentUserId(loginUser.getParentOpenId());
+                    shopSalesmanApply.setParentUserId(loginUser.getRecommendId());
                 }
-                if(StringUtils.isNotBlank(gradeId)){
-                    shopSalesmanApply.setGradeId(Long.parseLong(gradeId));
+                if(gradeId!=null){
+                    shopSalesmanApply.setGradeId(gradeId);
                 }else{
                     //获取初始等级ID(公司id,是否为初始等级)
                     QueryWrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>();
@@ -115,8 +115,13 @@
                 if(busParameterSettings!=null
                         &&busParameterSettings.getParamValue().equals("1")){
                     //自动审核
+                    //初始等级ID(公司id,是否为初始等级)
+                    QueryWrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>();
+                    queryWrapperOrepool.eq("company_id", loginUser.getCompanyId());
+                    queryWrapperOrepool.eq("is_default", 1);
+                    ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool);
                     shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG);
-                    bizUserService.setToBeAnSalesman(loginUser.getOpenId(),invitationId);
+                    sysVipInfoService.setToBeAnSalesman(loginUser.getId(),invitationId,shopSalesmanGrade.getId());
 
                 }else{
                     shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH);
@@ -135,44 +140,50 @@
     /**
      * 判断是否满足申请成为分销员的条件
      */
-    public VerificationResult isAbleToBeAnSalesman(String openId,Long companyId) {
+    public VerificationResult isAbleToBeAnSalesman(Long userId,Long companyId) {
 
         VerificationResult verificationResult=null;
-        //申请条件
-        BusParameterSettings applyCondition = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_APPLY_CONDITION, companyId);
-        switch (applyCondition.getParamValue()){
-            case FenxiaoSettingConstant.FX_APPLY_CONDITION_WTJ:
-                verificationResult= VerificationResult.buildVerificationResult(true);
-                break;
-            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFZDCP:
-                int buyZdcpCount= shopOrderV2Dao.countBuyZdcp(openId,applyCondition.getParamValue1());
-                if(buyZdcpCount>0){
-                    verificationResult= VerificationResult.buildVerificationResult(true);
-                }else{
-                    verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费指定产品后再申请!");
-                }
-                break;
-            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFRYCP:
-                //判断用户是否有确认收货的产品
-                int receivedOrderCount= shopOrderV2Dao.selectReceivedOrderCount(openId);
-                if(receivedOrderCount>0){
-                    verificationResult= VerificationResult.buildVerificationResult(true);
-                }else{
-                    verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费任意产品后再申请!");
-                }
-                break;
-            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XCZDJE:
-                Double zdje=Double.parseDouble(applyCondition.getParamValue2());
-                Double yxfje=shopOrderV2Dao.countOrderAmount(openId);
-                if(zdje<yxfje){
-                    verificationResult=VerificationResult.buildVerificationResult(true);
-                }else{
-                    verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费满"+zdje+"元后再申请!");
-                }
-                break;
-            default:
-               verificationResult= VerificationResult.buildVerificationResult(true);
 
+        //申请模式
+        BusParameterSettings applyWay = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_APPLY_WAY, companyId);
+        if (FenxiaoSettingConstant.FX_APPLY_WAY_AUTO.equals(applyWay.getParamValue())) {
+            verificationResult= VerificationResult.buildVerificationResult(true);
+        }else{
+            //申请条件
+            BusParameterSettings applyCondition = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_APPLY_CONDITION, companyId);
+            switch (applyCondition.getParamValue()){
+                case FenxiaoSettingConstant.FX_APPLY_CONDITION_WTJ:
+                    verificationResult= VerificationResult.buildVerificationResult(true);
+                    break;
+                case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFZDCP:
+                    int buyZdcpCount= shopOrderV2Dao.countBuyZdcp(userId,applyCondition.getParamValue1());
+                    if(buyZdcpCount>0){
+                        verificationResult= VerificationResult.buildVerificationResult(true);
+                    }else{
+                        verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费指定产品后再申请!");
+                    }
+                    break;
+                case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFRYCP:
+                    //判断用户是否有确认收货的产品
+                    int receivedOrderCount= shopOrderV2Dao.selectReceivedOrderCount(userId);
+                    if(receivedOrderCount>0){
+                        verificationResult= VerificationResult.buildVerificationResult(true);
+                    }else{
+                        verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费任意产品后再申请!");
+                    }
+                    break;
+                case FenxiaoSettingConstant.FX_APPLY_CONDITION_XCZDJE:
+                    Double zdje=Double.parseDouble(applyCondition.getParamValue2());
+                    Double yxfje=shopOrderV2Dao.countOrderAmount(userId);
+                    if(zdje<yxfje){
+                        verificationResult=VerificationResult.buildVerificationResult(true);
+                    }else{
+                        verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费满"+zdje+"元后再申请!");
+                    }
+                    break;
+                default:
+                    verificationResult= VerificationResult.buildVerificationResult(true);
+            }
         }
         return verificationResult;
     }
@@ -196,29 +207,30 @@
 	}
 	
 	@Transactional(rollbackFor = Exception.class)
-	public void addSaleManApply(String userId,String gradeId) {
-		BizUser user = bizUserDao.findByOpenId(userId);
-		applyToBeAnSalesman(user.getOpenId(),gradeId, "",ShopSalesmanApply.APPLY_WAY_HAND_ADD);
+	public void addSaleManApply(Long userId,Long gradeId) {
+		SysVipInfo user = sysVipInfoDao.selectById(userId);
+		applyToBeAnSalesman(user.getId(),gradeId, null,ShopSalesmanApply.APPLY_WAY_HAND_ADD);
 	}
 
 	@Transactional(rollbackFor = Exception.class)
 	public void examineSaleManApply(ShopSalesmanApply shopSalesmanApply, Integer applyState) {
-		String userId = shopSalesmanApply.getUserId();
-		String parentUserId = shopSalesmanApply.getParentUserId();
-		BizUser bizUser = bizUserDao.findByOpenId(userId);
+		Long userId = shopSalesmanApply.getUserId();
+        Long parentUserId = shopSalesmanApply.getParentUserId();
+		SysVipInfo sysVipInfo = sysVipInfoDao.selectById(userId);
 		//修改审核记录
 		if(ShopSalesmanApply.APPLY_STATUS_TG == applyState) {
 			shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG);
-			bizUser.setIsSales(BizUser.IS_SALES);
+			sysVipInfo.setIsSales(SysVipInfo.IS_SALES);
 		}else {
 			shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_WTG);
-			bizUser.setIsSales(BizUser.NOT_SALES);
+			sysVipInfo.setIsSales(SysVipInfo.NOT_SALES);
 		}
 		shopSalesmanApplyDao.updateById(shopSalesmanApply);
 		//修改USER的状态
-		bizUser.setParentOpenId(parentUserId);
-		bizUser.setBindingParentTime(new Date());
-		bizUserDao.updateByModel(bizUser);
+		sysVipInfo.setRecommendId(parentUserId);
+		sysVipInfo.setBindingParentTime(new Date());
+        sysVipInfo.setSalesmanGrade(shopSalesmanApply.getGradeId());
+		sysVipInfoDao.update(sysVipInfo);
 	}
 
 	public IPage<ShopSalesmanApplyVo> findShopSalesmanDetail(Page<ShopSalesmanApplyVo> page,
@@ -227,11 +239,11 @@
 		return null;
 	}
 
-	public SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(String userId, long applyId) {
+	public SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(Long userId, long applyId) {
 		//获取个人信息
-		BizUser bizUser = bizUserDao.findByOpenId(userId);
-		Long companyId = bizUser.getCompanyId();
-		return shopSalesmanApplyDao.selectShopSalesmanDetailByOpenId(userId,companyId,applyId);
+		SysVipInfo sysVipInfo = sysVipInfoDao.selectById(userId);
+		Long companyId = sysVipInfo.getCompanyId();
+		return shopSalesmanApplyDao.selectShopSalesmanDetailByOpenId(sysVipInfo.getId(),companyId,applyId);
 	}
 
 	public IPage<ShopCustomDetailVo> findCustomDetail(Page<ShopCustomDetailVo> page,LoadParamSettingDto loadParamSettingDto) {
@@ -250,41 +262,36 @@
 
     @Transactional(rollbackFor = Exception.class)
 	public AjaxResult changeSaleManGrade(ChangeSaleManGradeDto changeSaleManGradeDto) {
-        //设置用户公司ID
-        QueryUtil.setQueryLimitCom(changeSaleManGradeDto);
-        String userId = changeSaleManGradeDto.getUserId();
-        Long companyId = changeSaleManGradeDto.getCompanyId();
+
+        SysVipInfo vipInfo = sysVipInfoDao.selectById(changeSaleManGradeDto.getUserId());
+
         //获取对应的公司的等级
         QueryWrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>();
         queryWrapperOrepool.eq("is_default", 1);
-        queryWrapperOrepool.eq("company_id", companyId);
+        queryWrapperOrepool.eq("company_id", vipInfo.getCompanyId());
         ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool);
-        //修改Biz_User的salesman_grade
-        BizUser findByOpenId = bizUserDao.findByOpenId(userId);
-        if(ObjectUtil.isEmpty(findByOpenId)) {
-            return AjaxResult.buildFailInstance("当前用户已不存在");
-        }
+
         //不是分销员不允许修改
-        Integer isSales = findByOpenId.getIsSales();
-        if(BizUser.IS_SALES != isSales) {
+        Integer isSales = vipInfo.getIsSales();
+        if(SysVipInfo.IS_SALES != isSales) {
         	return AjaxResult.buildFailInstance("当前用户未通过审核,不允许修改");
         }
         
         //修改申请记录的等级
         QueryWrapper<ShopSalesmanApply> queryShopSalesmanApply = new QueryWrapper<>();
         queryShopSalesmanApply.eq("apply_status", 2);
-        queryShopSalesmanApply.eq("user_id", userId);
-        queryShopSalesmanApply.eq("company_id", companyId);
+        queryShopSalesmanApply.eq("user_id", vipInfo.getId());
+        queryShopSalesmanApply.eq("company_id", vipInfo.getCompanyId());
         ShopSalesmanApply shopSalesmanApply = shopSalesmanApplyDao.selectOne(queryShopSalesmanApply);
         Long gradeId = changeSaleManGradeDto.getGradeId();
         if(ObjectUtil.isEmpty(gradeId)) {
-        	findByOpenId.setSalesmanGrade(shopSalesmanGrade.getId());
+        	vipInfo.setSalesmanGrade(shopSalesmanGrade.getId());
         	shopSalesmanApply.setGradeId(shopSalesmanGrade.getId());
         }else {
-        	findByOpenId.setSalesmanGrade(gradeId);
+        	vipInfo.setSalesmanGrade(gradeId);
         	shopSalesmanApply.setGradeId(gradeId);
         }
-        bizUserDao.updateByModel(findByOpenId);
+        sysVipInfoDao.update(vipInfo);
         shopSalesmanApplyDao.updateById(shopSalesmanApply);
         
         return AjaxResult.buildSuccessInstance("修改等级成功");
@@ -292,16 +299,9 @@
 
     @Transactional(rollbackFor = Exception.class)
 	public AjaxResult unbundlingSaleMan(UnbundlingSaleManDto unbundlingSaleManDto) {
-        //设置用户公司ID
-        QueryUtil.setQueryLimitCom(unbundlingSaleManDto);
-        String userId = unbundlingSaleManDto.getUserId();
-        //将Biz_User的parent_open_id置空
-        BizUser findByOpenId = bizUserDao.findByOpenId(userId);
-        if(ObjectUtil.isEmpty(findByOpenId)) {
-        	return AjaxResult.buildFailInstance("当前用户已不存在");
-        }
-        findByOpenId.setParentOpenId("");
-        bizUserDao.updateByModel(findByOpenId);
+
+        Long userId = unbundlingSaleManDto.getUserId();
+        sysVipInfoDao.unbundlingSaleMan(userId);
         return AjaxResult.buildSuccessInstance("解绑成功");
 	}
 
@@ -309,18 +309,17 @@
 	public AjaxResult delSaleManGradeApply(DelSaleManGradeApplyDto delSaleManGradeApplyDto) {
 		//设置用户公司ID
         QueryUtil.setQueryLimitCom(delSaleManGradeApplyDto);
-        String userId = delSaleManGradeApplyDto.getUserId();
-        Long applyid = delSaleManGradeApplyDto.getApplyId();
+
         
         //将biz_user的is_sale设置成否
-        BizUser findByOpenId = bizUserDao.findByOpenId(userId);
-        if(ObjectUtil.isEmpty(findByOpenId)) {
+        SysVipInfo vipInfo = sysVipInfoDao.selectById(delSaleManGradeApplyDto.getUserId());
+        if(ObjectUtil.isEmpty(vipInfo)) {
         	return AjaxResult.buildFailInstance("当前用户已不存在");
         }
-        findByOpenId.setIsSales(BizUser.NOT_SALES);
-        bizUserDao.updateByModel(findByOpenId);
+        vipInfo.setIsSales(SysVipInfo.NOT_SALES);
+        sysVipInfoDao.update(vipInfo);
         //将记录设置成系统取消
-        ShopSalesmanApply selectById = shopSalesmanApplyDao.selectById(applyid);
+        ShopSalesmanApply selectById = shopSalesmanApplyDao.selectById(delSaleManGradeApplyDto.getApplyId());
         selectById.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_XTQX);
         shopSalesmanApplyDao.updateById(selectById);
 		return AjaxResult.buildSuccessInstance("操作成功");
@@ -357,14 +356,16 @@
 
     @Transactional(rollbackFor = Exception.class)
 	public AjaxResult updateFyfa(UpdateFyfaDto updateFyfaDto) {
-		
+        //设置用户公司ID
+        QueryUtil.setQueryLimitCom(updateFyfaDto);
         ShopSalesmanGrade selectById = shopSalesmanGradeDao.selectById(updateFyfaDto.getId());
-        if(ObjectUtil.isEmpty(selectById)) {
-        	return AjaxResult.buildFailInstance("当前行数据不存在,请刷新页面");
-        }
         String name = updateFyfaDto.getName();
         if(StrUtil.isEmpty(name)) {
         	return AjaxResult.buildFailInstance("请输入方案名称");
+        }
+        Double selfCommission = updateFyfaDto.getSelfCommission();
+        if(ObjectUtil.isEmpty(selfCommission)) {
+            return AjaxResult.buildFailInstance("请输入正确的自购返佣");
         }
         Double sealesCommission = updateFyfaDto.getSealesCommission();
         if(ObjectUtil.isEmpty(sealesCommission)) {
@@ -374,10 +375,27 @@
         if(ObjectUtil.isEmpty(invitationCommission)) {
         	return AjaxResult.buildFailInstance("请输入正确的邀请提成");
         }
-		//设置用户公司ID
-        QueryUtil.setQueryLimitCom(updateFyfaDto);
+        if(ObjectUtil.isEmpty(selectById)) {
+            SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+            ShopSalesmanGrade shopSalesmanGrade = new ShopSalesmanGrade();
+            shopSalesmanGrade.setCompanyId(updateFyfaDto.getCompanyId());
+            shopSalesmanGrade.setName(updateFyfaDto.getName());
+            shopSalesmanGrade.setSelfCommission(selfCommission);
+            shopSalesmanGrade.setSealesCommission(sealesCommission);
+            shopSalesmanGrade.setInvitationCommission(invitationCommission);
+            shopSalesmanGrade.setGradeCondition(updateFyfaDto.getGradeCondition());
+            shopSalesmanGrade.setIsDefault(2);
+            shopSalesmanGrade.setCreateBy(user.getSuName());
+            shopSalesmanGrade.setUpdateBy(user.getSuName());
+            shopSalesmanGrade.setCreateTime(new Date());
+            shopSalesmanGrade.setUpdateTime(new Date());
+            shopSalesmanGrade.setCompanyId(user.getCompanyId());
+            shopSalesmanGradeDao.insert(shopSalesmanGrade);
+            return AjaxResult.buildSuccessInstance("操作成功");
+        }
         selectById.setCompanyId(updateFyfaDto.getCompanyId());
         selectById.setName(updateFyfaDto.getName());
+        selectById.setSelfCommission(selfCommission);
         selectById.setSealesCommission(sealesCommission);
         selectById.setInvitationCommission(invitationCommission);
         selectById.setGradeCondition(updateFyfaDto.getGradeCondition());

--
Gitblit v1.9.1