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