From 9974b1fffff1cad712b7c30fb4c708ef45ec4b8c Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 17 Mar 2021 09:44:03 +0800 Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop --- zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java | 185 +++++++++++++++++++++++++++------------------ 1 files changed, 111 insertions(+), 74 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 e13c1cc..9cf5e16 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,8 +9,10 @@ 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; @@ -17,31 +20,12 @@ 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.dto.*; 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.fenxiao.vo.*; import com.matrix.system.hive.action.util.QueryUtil; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; - +import com.matrix.system.shopXcx.dao.ShopOrderV2Dao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -74,6 +58,9 @@ @Autowired BizUserService bizUserService; + @Autowired + ShopOrderV2Dao shopOrderV2Dao; + /** * 申请成为推广员 * @param openId @@ -83,61 +70,111 @@ 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()); - queryWrapper.in("apply_status",Arrays.asList("1,2".split(","))); - ShopSalesmanApply checkApply = shopSalesmanApplyDao.selectOne(queryWrapper); - if(checkApply==null|| - checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){ + //验证申请条件 + VerificationResult verificationResult = isAbleToBeAnSalesman(openId); + if(verificationResult.isJudgeResult()){ + //校验审核状态,和是否重复发起 + 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){ - ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply(); - shopSalesmanApply.setUserId(openId); - - shopSalesmanApply.setCreateBy(loginUser.getNickName()); - shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF); + ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply(); + shopSalesmanApply.setUserId(openId); - shopSalesmanApply.setCompanyId(loginUser.getCompanyId()); - shopSalesmanApply.setUpdateBy(loginUser.getNickName()); - Date date = new Date(); - shopSalesmanApply.setCreateTime(date); - shopSalesmanApply.setUpdateTime(date); + shopSalesmanApply.setCreateBy(MatrixConstance.SYSTEM_USER); + shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF); - if(StringUtils.isNotBlank(invitationId)){ - shopSalesmanApply.setParentUserId(invitationId); - }else if(StringUtils.isNotBlank(loginUser.getParentOpenId())){ - //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级 - shopSalesmanApply.setParentUserId(loginUser.getParentOpenId()); - } - if(StringUtils.isNotBlank(gradeId)){ - shopSalesmanApply.setGradeId(Long.parseLong(gradeId)); + shopSalesmanApply.setCompanyId(loginUser.getCompanyId()); + shopSalesmanApply.setUpdateBy(MatrixConstance.SYSTEM_USER); + Date date = new Date(); + shopSalesmanApply.setCreateTime(date); + shopSalesmanApply.setUpdateTime(date); + + if(StringUtils.isNotBlank(invitationId)){ + shopSalesmanApply.setParentUserId(invitationId); + }else if(StringUtils.isNotBlank(loginUser.getParentOpenId())){ + //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级 + shopSalesmanApply.setParentUserId(loginUser.getParentOpenId()); + } + if(StringUtils.isNotBlank(gradeId)){ + shopSalesmanApply.setGradeId(Long.parseLong(gradeId)); + }else{ + //获取初始等级ID(公司id,是否为初始等级) + 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()); + } + shopSalesmanApply.setApplyWay(applyWay); + + BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_AUDIT_METHOD, loginUser.getCompanyId()); + if(busParameterSettings!=null + &&busParameterSettings.getParamValue().equals("1")){ + //自动审核 + shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG); + bizUserService.setToBeAnSalesman(loginUser.getOpenId(),invitationId); + + }else{ + shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH); + } + shopSalesmanApplyDao.insert(shopSalesmanApply); + return shopSalesmanApply; }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()); + throw new GlobleException("不能重复申请"); } - shopSalesmanApply.setApplyWay(applyWay); - - BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_AUDIT_METHOD, loginUser.getCompanyId()); - if(busParameterSettings!=null - &&busParameterSettings.getParamValue().equals("1")){ - //自动审核 - shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG); - bizUserService.setToBeAnSalesman(loginUser.getOpenId(),invitationId); - - }else{ - shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH); - } - shopSalesmanApplyDao.insert(shopSalesmanApply); - return shopSalesmanApply; }else{ - throw new GlobleException("不能重复申请"); + throw new GlobleException(verificationResult.getMsg()); } - } + + + /** + * 判断是否满足申请成为分销员的条件 + */ + 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); + int buyZdcpCount= shopOrderV2Dao.countBuyZdcp(openId,applyCondition.getParamValue1()); + if(buyZdcpCount>0){ + verificationResult= VerificationResult.buildVerificationResult(true); + }else{ + verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费指定产品后再申请!"); + } + + case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFRYCP: + //判断用户是否有确认收货的产品 + int receivedOrderCount= shopOrderV2Dao.selectReceivedOrderCount(openId); + if(receivedOrderCount>0){ + verificationResult= VerificationResult.buildVerificationResult(true); + }else{ + verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费任意产品后再申请!"); + } + 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+"元后再申请!"); + } + VerificationResult.buildVerificationResult(true); + default: + VerificationResult.buildVerificationResult(true); + } + return verificationResult; + } + public IPage<ShopSalesmanApplyVo> findShopSalesmanApplyList(Page<ShopSalesmanApplyVo> page, ShopSalesmanApplyDto shopSalesmanApplyDto) { return shopSalesmanApplyDao.findShopSalesmanApplyList(page,shopSalesmanApplyDto); @@ -329,19 +366,19 @@ return AjaxResult.buildFailInstance("请输入方案名称"); } Double sealesCommission = updateFyfaDto.getSealesCommission(); - if(StrUtil.isEmpty(sealesCommission.toString())) { + if(ObjectUtil.isEmpty(sealesCommission)) { return AjaxResult.buildFailInstance("请输入正确的推广提成"); } Double invitationCommission = updateFyfaDto.getInvitationCommission(); - if(StrUtil.isEmpty(invitationCommission.toString())) { + if(ObjectUtil.isEmpty(invitationCommission)) { return AjaxResult.buildFailInstance("请输入正确的邀请提成"); } //设置用户公司ID QueryUtil.setQueryLimitCom(updateFyfaDto); selectById.setCompanyId(updateFyfaDto.getCompanyId()); selectById.setName(updateFyfaDto.getName()); - selectById.setSealesCommission(updateFyfaDto.getSealesCommission()); - selectById.setInvitationCommission(updateFyfaDto.getInvitationCommission()); + selectById.setSealesCommission(sealesCommission); + selectById.setInvitationCommission(invitationCommission); selectById.setGradeCondition(updateFyfaDto.getGradeCondition()); shopSalesmanGradeDao.updateById(selectById); return AjaxResult.buildFailInstance("操作成功"); -- Gitblit v1.9.1