From c04ce1ba66b14135c92d6bf79450f78361a29336 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 24 Mar 2021 17:12:15 +0800
Subject: [PATCH] 分销设置自购返佣

---
 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java |  116 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 74 insertions(+), 42 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..cd840dc 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
@@ -14,6 +14,7 @@
 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;
@@ -53,7 +54,7 @@
     ShopSalesmanGradeDao shopSalesmanGradeDao;
 
     @Autowired
-    private BizUserDao bizUserDao;
+    BizUserDao bizUserDao;
 
     @Autowired
     BizUserService bizUserService;
@@ -115,8 +116,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);
+                    bizUserService.setToBeAnSalesman(loginUser.getOpenId(),invitationId,shopSalesmanGrade.getId());
 
                 }else{
                     shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH);
@@ -138,41 +144,47 @@
     public VerificationResult isAbleToBeAnSalesman(String openId,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 (applyWay.getParamValue().equals(FenxiaoSettingConstant.FX_APPLY_WAY_AUTO)) {
+            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(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);
+            }
         }
         return verificationResult;
     }
@@ -218,6 +230,7 @@
 		//修改USER的状态
 		bizUser.setParentOpenId(parentUserId);
 		bizUser.setBindingParentTime(new Date());
+        bizUser.setSalesmanGrade(shopSalesmanApply.getGradeId());
 		bizUserDao.updateByModel(bizUser);
 	}
 
@@ -357,14 +370,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 +389,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