From 1028a2a78292ce0942bf9c07c23cfb22a33c4600 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 16 Mar 2021 17:41:09 +0800
Subject: [PATCH] 分销订单0316

---
 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java |  178 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 153 insertions(+), 25 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 801eeb3..b797079 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
@@ -1,6 +1,7 @@
 package com.matrix.system.fenxiao.service;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,36 +9,28 @@
 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.system.common.bean.BusParameterSettings;
+import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
 import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao;
 import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
-import com.matrix.system.fenxiao.dto.ChangeSaleManGradeDto;
-import com.matrix.system.fenxiao.dto.DelSaleManGradeApplyDto;
-import com.matrix.system.fenxiao.dto.ShopSalesmanAppliingDto;
-import com.matrix.system.fenxiao.dto.ShopSalesmanApplyDto;
-import com.matrix.system.fenxiao.dto.ShopSalesmanDetailDto;
-import com.matrix.system.fenxiao.dto.UnbundlingSaleManDto;
+import com.matrix.system.fenxiao.dto.*;
 import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
 import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
-import com.matrix.system.fenxiao.vo.SalesmanBasicDetailVo;
-import com.matrix.system.fenxiao.vo.ShopCustomDetailVo;
-import com.matrix.system.fenxiao.vo.ShopOrderDetailVo;
-import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo;
-import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo;
-import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo;
+import com.matrix.system.fenxiao.vo.*;
 import com.matrix.system.hive.action.util.QueryUtil;
-
-import cn.hutool.core.util.ObjectUtil;
-
+import com.matrix.system.shopXcx.dao.ShopOrderDaoV2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -65,6 +58,9 @@
     @Autowired
     BizUserService bizUserService;
 
+    @Autowired
+    ShopOrderDaoV2 shopOrderDaoV2;
+
     /**
      * 申请成为推广员
      * @param openId
@@ -77,6 +73,7 @@
         //校验审核状态,和是否重复发起
         QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("user_id",loginUser.getOpenId());
+        queryWrapper.in("apply_status",Arrays.asList("1,2".split(",")));
         ShopSalesmanApply checkApply = shopSalesmanApplyDao.selectOne(queryWrapper);
         if(checkApply==null||
                 checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){
@@ -84,11 +81,11 @@
             ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply();
             shopSalesmanApply.setUserId(openId);
             
-            shopSalesmanApply.setCreateBy(loginUser.getNickName());
+            shopSalesmanApply.setCreateBy(MatrixConstance.SYSTEM_USER);
             shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF);
 
             shopSalesmanApply.setCompanyId(loginUser.getCompanyId());
-            shopSalesmanApply.setUpdateBy(loginUser.getNickName());
+            shopSalesmanApply.setUpdateBy(MatrixConstance.SYSTEM_USER);
             Date date = new Date();
             shopSalesmanApply.setCreateTime(date);
             shopSalesmanApply.setUpdateTime(date);
@@ -103,9 +100,9 @@
             	shopSalesmanApply.setGradeId(Long.parseLong(gradeId));
             }else{
                 //获取初始等级ID(公司id,是否为初始等级)
-                Wrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>();
-                ((QueryWrapper<ShopSalesmanGrade>) queryWrapperOrepool).eq("company_id", loginUser.getCompanyId());
-                ((QueryWrapper<ShopSalesmanGrade>) queryWrapperOrepool).eq("is_default", 1);
+                QueryWrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>();
+                queryWrapperOrepool.eq("company_id", loginUser.getCompanyId());
+                queryWrapperOrepool.eq("is_default", 1);
                 ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool);
             	shopSalesmanApply.setGradeId(shopSalesmanGrade.getId());
             }
@@ -129,6 +126,40 @@
 
     }
 
+
+    /**
+     * 判断是否满足申请成为分销员的条件
+     */
+    public VerificationResult isAbleToBeAnSalesman(String openId) {
+        BizUser bizUser = bizUserDao.findByOpenId(openId);
+        VerificationResult verificationResult=null;
+        //申请条件
+        BusParameterSettings applyCondition = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_APPLY_CONDITION, bizUser.getCompanyId());
+        switch (applyCondition.getParamValue()){
+            case FenxiaoSettingConstant.FX_APPLY_CONDITION_WTJ:
+                VerificationResult.buildVerificationResult(true);
+            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFZDCP:
+                VerificationResult.buildVerificationResult(true);
+            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFRYCP:
+
+                //判断用户是否有确认收货的产品
+                int receivedOrderCount= shopOrderDaoV2.selectReceivedOrderCount(openId);
+
+                if(receivedOrderCount>0){
+                    verificationResult= VerificationResult.buildVerificationResult(true);
+                }else{
+                    verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费任意产品后再申请!");
+                }
+
+            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XCZDJE:
+                VerificationResult.buildVerificationResult(true);
+            default:
+                VerificationResult.buildVerificationResult(true);
+        }
+        return verificationResult;
+    }
+
+
     public IPage<ShopSalesmanApplyVo> findShopSalesmanApplyList(Page<ShopSalesmanApplyVo> page, ShopSalesmanApplyDto shopSalesmanApplyDto) {
         return shopSalesmanApplyDao.findShopSalesmanApplyList(page,shopSalesmanApplyDto);
     }
@@ -148,7 +179,7 @@
 	
 	@Transactional(rollbackFor = Exception.class)
 	public void addSaleManApply(String userId,String gradeId) {
-		BizUser user = bizUserDao.selectById(userId);
+		BizUser user = bizUserDao.findByOpenId(userId);
 		applyToBeAnSalesman(user.getOpenId(),gradeId, "",ShopSalesmanApply.APPLY_WAY_HAND_ADD);
 	}
 
@@ -156,7 +187,7 @@
 	public void examineSaleManApply(ShopSalesmanApply shopSalesmanApply, Integer applyState) {
 		String userId = shopSalesmanApply.getUserId();
 		String parentUserId = shopSalesmanApply.getParentUserId();
-		BizUser bizUser = bizUserDao.selectById(userId);
+		BizUser bizUser = bizUserDao.findByOpenId(userId);
 		//修改审核记录
 		if(ShopSalesmanApply.APPLY_STATUS_TG == applyState) {
 			shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG);
@@ -178,11 +209,11 @@
 		return null;
 	}
 
-	public SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(String userId) {
+	public SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(String userId, long applyId) {
 		//获取个人信息
 		BizUser bizUser = bizUserDao.findByOpenId(userId);
 		Long companyId = bizUser.getCompanyId();
-		return shopSalesmanApplyDao.selectShopSalesmanDetailByOpenId(userId,companyId);
+		return shopSalesmanApplyDao.selectShopSalesmanDetailByOpenId(userId,companyId,applyId);
 	}
 
 	public IPage<ShopCustomDetailVo> findCustomDetail(Page<ShopCustomDetailVo> page,
@@ -200,6 +231,7 @@
 		return shopSalesmanApplyDao.findShopOrderDetail(pageOrder,shopSalesmanDetailDto);
 	}
 
+    @Transactional(rollbackFor = Exception.class)
 	public AjaxResult changeSaleManGrade(ChangeSaleManGradeDto changeSaleManGradeDto) {
         //设置用户公司ID
         QueryUtil.setQueryLimitCom(changeSaleManGradeDto);
@@ -220,16 +252,28 @@
         if(BizUser.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);
+        ShopSalesmanApply shopSalesmanApply = shopSalesmanApplyDao.selectOne(queryShopSalesmanApply);
         Long gradeId = changeSaleManGradeDto.getGradeId();
         if(ObjectUtil.isEmpty(gradeId)) {
         	findByOpenId.setSalesmanGrade(shopSalesmanGrade.getId());
+        	shopSalesmanApply.setGradeId(shopSalesmanGrade.getId());
         }else {
         	findByOpenId.setSalesmanGrade(gradeId);
+        	shopSalesmanApply.setGradeId(gradeId);
         }
         bizUserDao.updateByModel(findByOpenId);
+        shopSalesmanApplyDao.updateById(shopSalesmanApply);
+        
         return AjaxResult.buildFailInstance("修改等级成功");
 	}
 
+    @Transactional(rollbackFor = Exception.class)
 	public AjaxResult unbundlingSaleMan(UnbundlingSaleManDto unbundlingSaleManDto) {
         //设置用户公司ID
         QueryUtil.setQueryLimitCom(unbundlingSaleManDto);
@@ -244,6 +288,7 @@
         return AjaxResult.buildFailInstance("解绑成功");
 	}
 
+    @Transactional(rollbackFor = Exception.class)
 	public AjaxResult delSaleManGradeApply(DelSaleManGradeApplyDto delSaleManGradeApplyDto) {
 		//设置用户公司ID
         QueryUtil.setQueryLimitCom(delSaleManGradeApplyDto);
@@ -264,6 +309,89 @@
 		return AjaxResult.buildFailInstance("操作成功");
 	}
 
+	public IPage<FyfaManageVo> findFyfaManageList(Page<FyfaManageVo> page, FyfaManageDto fyfaManageDto) {
+		return shopSalesmanGradeDao.findFyfaManageList(page,fyfaManageDto);
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	public void addFyfa(SysUsers user) {
+		ShopSalesmanGrade shopSalesmanGrade = new ShopSalesmanGrade();
+		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);
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	public AjaxResult delFyfaApply(DelFyfaApplyDto delFyfaApplyDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(delFyfaApplyDto);
+        Long gradeId = delFyfaApplyDto.getGradeId();
+        ShopSalesmanGrade selectById = shopSalesmanGradeDao.selectById(gradeId);
+        if(ObjectUtil.isEmpty(selectById)) {
+        	return AjaxResult.buildFailInstance("当前行数据不存在,请刷新页面");
+        }
+        shopSalesmanGradeDao.deleteById(gradeId);
+		return AjaxResult.buildFailInstance("操作成功");
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	public AjaxResult updateFyfa(UpdateFyfaDto 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 sealesCommission = updateFyfaDto.getSealesCommission();
+        if(ObjectUtil.isEmpty(sealesCommission)) {
+        	return AjaxResult.buildFailInstance("请输入正确的推广提成");
+        }
+        Double invitationCommission = updateFyfaDto.getInvitationCommission();
+        if(ObjectUtil.isEmpty(invitationCommission)) {
+        	return AjaxResult.buildFailInstance("请输入正确的邀请提成");
+        }
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(updateFyfaDto);
+        selectById.setCompanyId(updateFyfaDto.getCompanyId());
+        selectById.setName(updateFyfaDto.getName());
+        selectById.setSealesCommission(sealesCommission);
+        selectById.setInvitationCommission(invitationCommission);
+        selectById.setGradeCondition(updateFyfaDto.getGradeCondition());
+        shopSalesmanGradeDao.updateById(selectById);
+		return AjaxResult.buildFailInstance("操作成功");
+	}
+    
+    @Transactional(rollbackFor = Exception.class)
+	public AjaxResult updateTgjh(UpdateTgjhDto updateTgjhDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(updateTgjhDto);
+        //获取推广计划的Param
+        Long companyId = updateTgjhDto.getCompanyId();
+        BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_PLAN, companyId);
+        busParameterSettings.setParamValue3(updateTgjhDto.getTgfa());
+        busParameterSettingsDao.updateByModel(busParameterSettings);
+		return AjaxResult.buildFailInstance("保存成功");
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	public AjaxResult updateTgtp(UpdateTgtpDto updateTgtpDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(updateTgtpDto);
+        //获取推广计划的Param
+        Long companyId = updateTgtpDto.getCompanyId();
+        BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_POSTER, companyId);
+        busParameterSettings.setParamValue(updateTgtpDto.getImageUrl());
+        busParameterSettingsDao.updateByModel(busParameterSettings);
+		return AjaxResult.buildFailInstance("保存成功");
+	}
+
     
     
     

--
Gitblit v1.9.1