From dce21b3131e81663ccd0291b7e96542d3f1cec7e Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Thu, 11 Mar 2021 08:47:01 +0800 Subject: [PATCH] 推广员申请接口 --- zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java | 3 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java | 75 ++++++++++++++++++++++++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java | 66 +++++++++++----------- zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java | 11 ++- zq-erp/src/main/java/com/matrix/biz/service/impl/BizUserServiceImpl.java | 17 ++++- zq-erp/src/main/java/com/matrix/biz/service/BizUserService.java | 6 ++ 6 files changed, 136 insertions(+), 42 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/biz/service/BizUserService.java b/zq-erp/src/main/java/com/matrix/biz/service/BizUserService.java index 77ae0fe..5f10819 100644 --- a/zq-erp/src/main/java/com/matrix/biz/service/BizUserService.java +++ b/zq-erp/src/main/java/com/matrix/biz/service/BizUserService.java @@ -79,4 +79,10 @@ * 保存用户信息 */ public int saveUserInfo(BizUser bizUser); + + /** + * 设置为推广员 + * @param invitationId + */ + public int setToBeAnSalesman(String openId,String invitationId); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/biz/service/impl/BizUserServiceImpl.java b/zq-erp/src/main/java/com/matrix/biz/service/impl/BizUserServiceImpl.java index 415389b..b9333da 100644 --- a/zq-erp/src/main/java/com/matrix/biz/service/impl/BizUserServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/biz/service/impl/BizUserServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; import java.util.Map; @@ -152,7 +153,17 @@ return bizUserDao.updateByModel(bizUser); } - - - + + /** + * 设置成为推广员 + * @param invitationId + */ + @Override + public int setToBeAnSalesman(String openId,String invitationId) { + BizUser bizUser=bizUserDao.findByOpenId(openId); + bizUser.setIsSales(BizUser.IS_SALES); + bizUser.setParentOpenId(invitationId); + bizUser.setBindingParentTime(new Date()); + return bizUserDao.updateByModel(bizUser); + } } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java b/zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java index 9eb6eb0..358950f 100644 --- a/zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java +++ b/zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java @@ -7,7 +7,6 @@ import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.UUIDUtil; import com.matrix.core.tools.WebUtil; -import com.matrix.system.hive.plugin.message.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -120,10 +119,14 @@ * @date:2018年1月19日下午3:17:14 */ public void loginOut() { - String toke = getUserToken(); - redisClient.removeObject(toke); + String token = getUserToken(); + redisClient.removeObject(token); } - + public void updateUserInfo(Object obj) { + String token = getUserToken(); + redisClient.saveValue(token, obj); + LogUtil.debug("更新redis用户"); + } } diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java index 5c93545..194c31b 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java @@ -14,7 +14,7 @@ */ public final static String FX_APPLY_WAY = "FX_APPLY_WAY"; /** - * 审核方式 + * 审核方式 1系统自动审核,2人工审核 */ public final static String FX_AUDIT_METHOD = "FX_AUDIT_METHOD"; /** @@ -26,4 +26,5 @@ */ public final static String FX_TG_PLAN = "FX_TG_PLAN"; + public static final String FX_TG_POSTER ="FX_TG_POSTER"; } 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 62614de..2d0f924 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,9 +1,22 @@ package com.matrix.system.fenxiao.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.exception.GlobleException; +import com.matrix.core.tools.StringUtils; +import com.matrix.system.common.bean.BusParameterSettings; +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.entity.ShopSalesmanApply; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.Date; /** * @description 推广员申请记录 @@ -14,7 +27,67 @@ public class ShopSalesmanApplyService extends ServiceImpl<ShopSalesmanApplyDao, ShopSalesmanApply>{ + @Autowired + BusParameterSettingsDao busParameterSettingsDao; + @Autowired + ShopSalesmanApplyDao salesmanApplyDao; - + @Autowired + private BizUserDao bizUserDao; + + @Autowired + BizUserService bizUserService; + + /** + * 申请成为推广员 + * @param openId + * @param invitationId + * @return + */ + public ShopSalesmanApply applyToBeAnSalesman(String openId, String invitationId) { + + BizUser loginUser=bizUserDao.findByOpenId(openId); + //校验审核状态,和是否重复发起 + QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id",loginUser.getOpenId()); + ShopSalesmanApply checkApply = salesmanApplyDao.selectOne(queryWrapper); + if(checkApply==null|| + checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){ + + ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply(); + shopSalesmanApply.setUserId(loginUser.getUserId()); + shopSalesmanApply.setCreateBy(loginUser.getNickName()); + shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF); + + shopSalesmanApply.setCompanyId(loginUser.getCompanyId()); + shopSalesmanApply.setUpdateBy(loginUser.getNickName()); + 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()); + } + + BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_AUDIT_METHOD, HostInterceptor.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); + } + salesmanApplyDao.insert(shopSalesmanApply); + return shopSalesmanApply; + }else{ + throw new GlobleException("不能重复申请"); + } + + } } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java index a9256e3..aae1566 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java @@ -17,14 +17,19 @@ import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant; import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao; import com.matrix.system.fenxiao.entity.ShopSalesmanApply; +import com.matrix.system.fenxiao.service.ShopSalesmanApplyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; -import java.util.Date; +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; import java.util.HashMap; import java.util.Map; @@ -44,10 +49,14 @@ ShopSalesmanApplyDao salesmanApplyDao; @Autowired + ShopSalesmanApplyService shopSalesmanApplyService; + + @Autowired private RedisUserLoginUtils redisUserLoginUtils; @Autowired private BizUserDao bizUserDao; + @ApiOperation(value = "查询推广计划", notes = "") @GetMapping(value = "/getTgPlan") @@ -61,46 +70,21 @@ @ApiOperation(value = "申请成为推广员", notes = "传入参数invitationId 邀请人openId ,非必填 例: {invitationId:openId}") @ApiResponses({ - @ApiResponse(code = 200, message = "ok", response = Map.class) + @ApiResponse(code = 200, message = "ok", response = ShopSalesmanApply.class) }) @PostMapping(value = "/applyToBeAnSalesman") + @Transactional public AjaxResult applyToBeAnSalesman(@RequestBody Map<String,String> param) { BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); + String invitationId = param.get("invitationId"); + ShopSalesmanApply shopSalesmanApply= shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getOpenId(),invitationId); loginUser=bizUserDao.selectById(loginUser.getUserId()); - //校验审核状态,和是否重复发起 - QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("user_id",loginUser.getOpenId()); - ShopSalesmanApply checkApply = salesmanApplyDao.selectOne(queryWrapper); - if(checkApply==null|| - checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){ - - ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply(); - shopSalesmanApply.setUserId(loginUser.getUserId()); - shopSalesmanApply.setCreateBy(loginUser.getNickName()); - shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF); - shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH); - shopSalesmanApply.setCompanyId(loginUser.getCompanyId()); - shopSalesmanApply.setUpdateBy(loginUser.getNickName()); - Date date = new Date(); - shopSalesmanApply.setCreateTime(date); - shopSalesmanApply.setUpdateTime(date); - String invitationId = param.get("invitationId"); - if(StringUtils.isNotBlank(invitationId)){ - shopSalesmanApply.setParentUserId(invitationId); - }else if(StringUtils.isNotBlank(loginUser.getParentOpenId())){ - //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级 - shopSalesmanApply.setParentUserId(loginUser.getParentOpenId()); - } - salesmanApplyDao.insert(shopSalesmanApply); - return AjaxResult.buildSuccessInstance("申请成功"); - }else{ - return AjaxResult.buildFailInstance("不能重复申请"); - } - + redisUserLoginUtils.updateUserInfo(loginUser); + return AjaxResult.buildSuccessInstance(shopSalesmanApply); } - @ApiOperation(value = "查询推广员审核进度", notes = "") + @ApiOperation(value = " ", notes = "") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = ShopSalesmanApply.class) }) @@ -150,6 +134,22 @@ try { BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); String qrcodeSavePath = WxacodeUtil.getWxacode(loginUser.getOpenId() + "", "pages/index/index", MD5Util.strToMD5(loginUser.getOpenId() + "")); + + //获取海报 + BusParameterSettings posterSetting = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_POSTER, HostInterceptor.getCompanyId()); + + String posterSavePath = posterSetting.getParamValue1(); + BufferedImage productImgBuf = ImageIO.read(new File(qrcodeSavePath)); + BufferedImage qrcordImgBuf = ImageIO.read(new File(posterSavePath)); + + BufferedImage backgroundImgBuf = new BufferedImage(750, 900, BufferedImage.TYPE_4BYTE_ABGR); + //绘制背景+产品 + Graphics2D g = backgroundImgBuf.createGraphics(); + g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1)); + + + + LogUtil.debug("qrcodeSavePath={}", qrcodeSavePath); // 图片保存目录路径 String baseSavePath = PropertiesUtil.getString(AppConstance.FILES_TORAGE_PATH); -- Gitblit v1.9.1