From 53939e0ceb528f45c4906c86ce499ecb864f7af8 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Mon, 15 Mar 2021 14:38:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop

---
 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java |  312 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 297 insertions(+), 15 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 1c9f16e..e13c1cc 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,26 +1,52 @@
 package com.matrix.system.fenxiao.service;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.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;
-import com.matrix.system.common.interceptor.HostInterceptor;
 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.DelFyfaApplyDto;
+import com.matrix.system.fenxiao.dto.DelSaleManGradeApplyDto;
+import com.matrix.system.fenxiao.dto.FyfaManageDto;
+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.UpdateFyfaDto;
+import com.matrix.system.fenxiao.dto.UpdateTgjhDto;
+import com.matrix.system.fenxiao.dto.UpdateTgtpDto;
 import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
+import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
+import com.matrix.system.fenxiao.vo.FyfaManageVo;
+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.hive.action.util.QueryUtil;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 
 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;
 
@@ -37,7 +63,10 @@
     BusParameterSettingsDao busParameterSettingsDao;
 
     @Autowired
-    ShopSalesmanApplyDao salesmanApplyDao;
+    ShopSalesmanApplyDao shopSalesmanApplyDao;
+    
+    @Autowired
+    ShopSalesmanGradeDao shopSalesmanGradeDao;
 
     @Autowired
     private BizUserDao bizUserDao;
@@ -51,18 +80,20 @@
      * @param invitationId
      * @return
      */
-    public ShopSalesmanApply applyToBeAnSalesman(String openId, String invitationId) {
+    public ShopSalesmanApply applyToBeAnSalesman(String openId,String gradeId,String invitationId,int applyWay) {
 
         BizUser loginUser=bizUserDao.findByOpenId(openId);
         //校验审核状态,和是否重复发起
         QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("user_id",loginUser.getOpenId());
-        ShopSalesmanApply checkApply = salesmanApplyDao.selectOne(queryWrapper);
+        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(loginUser.getUserId());
+            shopSalesmanApply.setUserId(openId);
+            
             shopSalesmanApply.setCreateBy(loginUser.getNickName());
             shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF);
 
@@ -78,8 +109,19 @@
                 //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级
                 shopSalesmanApply.setParentUserId(loginUser.getParentOpenId());
             }
-
-            BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_AUDIT_METHOD, HostInterceptor.getCompanyId());
+            if(StringUtils.isNotBlank(gradeId)){
+            	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);
+                ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool);
+            	shopSalesmanApply.setGradeId(shopSalesmanGrade.getId());
+            }
+            shopSalesmanApply.setApplyWay(applyWay);
+            
+            BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_AUDIT_METHOD, loginUser.getCompanyId());
             if(busParameterSettings!=null
                     &&busParameterSettings.getParamValue().equals("1")){
                 //自动审核
@@ -89,7 +131,7 @@
             }else{
                 shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH);
             }
-            salesmanApplyDao.insert(shopSalesmanApply);
+            shopSalesmanApplyDao.insert(shopSalesmanApply);
             return  shopSalesmanApply;
         }else{
             throw  new GlobleException("不能重复申请");
@@ -97,10 +139,250 @@
 
     }
 
-	public List<ShopSalesmanApplyVo> selectFenXiaoUserApplyByCompanyId(Long companyId) {
-		//获取当前登录人员信息
-        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
-        List<ShopSalesmanApplyVo> shopSalesmanApplyVos = salesmanApplyDao.selectFenXiaoUserApplyByCompanyId(companyId);
-		return shopSalesmanApplyVos;
+    public IPage<ShopSalesmanApplyVo> findShopSalesmanApplyList(Page<ShopSalesmanApplyVo> page, ShopSalesmanApplyDto shopSalesmanApplyDto) {
+        return shopSalesmanApplyDao.findShopSalesmanApplyList(page,shopSalesmanApplyDto);
+    }
+
+	public IPage<ShopSalesmanAppliingVo> findShopSalesmanAppliingList(Page<ShopSalesmanAppliingVo> page,
+			ShopSalesmanAppliingDto shopSalesmanAppliingDto) {
+		return shopSalesmanApplyDao.findShopSalesmanAppliingList(page,shopSalesmanAppliingDto);
 	}
+
+    public IPage<ShopSalesmanAppliingVo> selectBizUserApplyList(Page<ShopSalesmanAppliingVo> page, ShopSalesmanAppliingDto shopSalesmanAppliingDto) {
+        return shopSalesmanApplyDao.selectBizUserApplyList(page,shopSalesmanAppliingDto);
+    }
+
+	public List<ShopSalesmanGradeVo> getShopSalesmanGradeVo(Long companyId) {
+		return shopSalesmanGradeDao.getShopSalesmanGradeVo(companyId);
+	}
+	
+	@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);
+	}
+
+	@Transactional(rollbackFor = Exception.class)
+	public void examineSaleManApply(ShopSalesmanApply shopSalesmanApply, Integer applyState) {
+		String userId = shopSalesmanApply.getUserId();
+		String parentUserId = shopSalesmanApply.getParentUserId();
+		BizUser bizUser = bizUserDao.findByOpenId(userId);
+		//修改审核记录
+		if(ShopSalesmanApply.APPLY_STATUS_TG == applyState) {
+			shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG);
+			bizUser.setIsSales(BizUser.IS_SALES);
+		}else {
+			shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_WTG);
+			bizUser.setIsSales(BizUser.NOT_SALES);
+		}
+		shopSalesmanApplyDao.updateById(shopSalesmanApply);
+		//修改USER的状态
+		bizUser.setParentOpenId(parentUserId);
+		bizUser.setBindingParentTime(new Date());
+		bizUserDao.updateByModel(bizUser);
+	}
+
+	public IPage<ShopSalesmanApplyVo> findShopSalesmanDetail(Page<ShopSalesmanApplyVo> page,
+			ShopSalesmanDetailDto shopSalesmanDetailDto) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(String userId, long applyId) {
+		//获取个人信息
+		BizUser bizUser = bizUserDao.findByOpenId(userId);
+		Long companyId = bizUser.getCompanyId();
+		return shopSalesmanApplyDao.selectShopSalesmanDetailByOpenId(userId,companyId,applyId);
+	}
+
+	public IPage<ShopCustomDetailVo> findCustomDetail(Page<ShopCustomDetailVo> page,
+                                                      ShopSalesmanDetailDto shopSalesmanDetailDto) {
+		return shopSalesmanApplyDao.findCustomDetail(page,shopSalesmanDetailDto);
+	}
+
+	public IPage<ShopCustomDetailVo> findCustomLow(Page<ShopCustomDetailVo> pageLow,
+			ShopSalesmanDetailDto shopSalesmanDetailDto) {
+		return shopSalesmanApplyDao.findCustomLow(pageLow,shopSalesmanDetailDto);
+	}
+
+	public IPage<ShopOrderDetailVo> findShopOrderDetail(Page<ShopOrderDetailVo> pageOrder,
+			ShopSalesmanDetailDto shopSalesmanDetailDto) {
+		return shopSalesmanApplyDao.findShopOrderDetail(pageOrder,shopSalesmanDetailDto);
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	public AjaxResult changeSaleManGrade(ChangeSaleManGradeDto changeSaleManGradeDto) {
+        //设置用户公司ID
+        QueryUtil.setQueryLimitCom(changeSaleManGradeDto);
+        String userId = changeSaleManGradeDto.getUserId();
+        Long companyId = changeSaleManGradeDto.getCompanyId();
+        //获取对应的公司的等级
+        QueryWrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>();
+        queryWrapperOrepool.eq("is_default", 1);
+        queryWrapperOrepool.eq("company_id", companyId);
+        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) {
+        	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);
+        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);
+        return AjaxResult.buildFailInstance("解绑成功");
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	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)) {
+        	return AjaxResult.buildFailInstance("当前用户已不存在");
+        }
+        findByOpenId.setIsSales(BizUser.NOT_SALES);
+        bizUserDao.updateByModel(findByOpenId);
+        //将记录设置成系统取消
+        ShopSalesmanApply selectById = shopSalesmanApplyDao.selectById(applyid);
+        selectById.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_XTQX);
+        shopSalesmanApplyDao.updateById(selectById);
+		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(StrUtil.isEmpty(sealesCommission.toString())) {
+        	return AjaxResult.buildFailInstance("请输入正确的推广提成");
+        }
+        Double invitationCommission = updateFyfaDto.getInvitationCommission();
+        if(StrUtil.isEmpty(invitationCommission.toString())) {
+        	return AjaxResult.buildFailInstance("请输入正确的邀请提成");
+        }
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(updateFyfaDto);
+        selectById.setCompanyId(updateFyfaDto.getCompanyId());
+        selectById.setName(updateFyfaDto.getName());
+        selectById.setSealesCommission(updateFyfaDto.getSealesCommission());
+        selectById.setInvitationCommission(updateFyfaDto.getInvitationCommission());
+        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("保存成功");
+	}
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
 }
\ No newline at end of file

--
Gitblit v1.9.1