From 0cf8009e4ae98e79c6ad4b49ff29620126f53f92 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Wed, 10 Mar 2021 22:10:33 +0800
Subject: [PATCH] 推广员申请接口

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java |  100 ++++++++++++++++++++----
 zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java    |   32 +------
 zq-erp/src/main/java/com/matrix/core/pojo/AjaxResult.java                       |   29 ++++++-
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/BizUserDao.xml                 |   20 ++++-
 4 files changed, 131 insertions(+), 50 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/core/pojo/AjaxResult.java b/zq-erp/src/main/java/com/matrix/core/pojo/AjaxResult.java
index 4e45714..456a3f1 100644
--- a/zq-erp/src/main/java/com/matrix/core/pojo/AjaxResult.java
+++ b/zq-erp/src/main/java/com/matrix/core/pojo/AjaxResult.java
@@ -4,7 +4,6 @@
 import com.matrix.core.tools.InternationaUtil;
 import com.matrix.core.tools.MdcUtil;
 import com.matrix.core.tools.StringUtils;
-import com.matrix.system.hive.plugin.message.StringUtil;
 
 import java.io.Serializable;
 import java.util.HashMap;
@@ -44,7 +43,14 @@
      * info会被国际化工具先处理,找不到国际化资源则显示原始信息
      **/
     private String info;
+
+    /**
+     * 单个对象返回参数
+     */
+    private Object data;
+
     private Map<Object, Object> mapInfo = new HashMap<>();
+
     private List<?> rows;
     /**
      * 总记录数
@@ -53,8 +59,17 @@
 
     private String requestId;
 
+    public static AjaxResult buildSuccessInstance(Object data) {
+        AjaxResult result= new AjaxResult(STATUS_SUCCESS,"");
+        result.data=data;
+        return  result;
+    }
 
-
+    public static AjaxResult buildSuccessInstance(Object data, String info) {
+        AjaxResult result= new AjaxResult(STATUS_SUCCESS,info);
+        result.data=data;
+        return  result;
+    }
 
 
     public static AjaxResult buildSuccessInstance(String info) {
@@ -93,8 +108,6 @@
      * 设置简单信息,这是一个便捷的方法
      *
      * @param status
-     * @param page
-     * @param info
      */
     public AjaxResult(String status, List<?> rows) {
         this.status = status;
@@ -168,6 +181,14 @@
         this.requestId = requestId;
     }
 
+    public Object getData() {
+        return data;
+    }
+
+    public void setData(Object data) {
+        this.data = data;
+    }
+
     /**
      * 在map对象中放置信息
      *
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java
index 6b9efc1..fc2bfd5 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.matrix.system.score.entity.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -44,47 +45,28 @@
 	public static  final  int APPLY_WAY_HAND_ADD=4;
 
 
-	
-	/**
-	 * 申请方式1、自主申请,2、自动添加,3上级邀请,4、手动添加
-	 */
 
-
+	@ApiModelProperty(value = "申请方式1、自主申请,2、自动添加,3上级邀请,4、手动添加")
 	private Integer  applyWay;
-	
-	/**
-	 * 申请用户id
-	 */
 
-
+	@ApiModelProperty(value = "申请用户id")
 	private String  userId;
 	
-	/**
-	 * 邀请用户ID
-	 */
 
-
+	@ApiModelProperty(value = "邀请用户ID")
 	private String  parentUserId;
 	
-	/**
-	 * 申请状态1、待审核,2通过,3未通过
-	 */
 
-
+	@ApiModelProperty(value = "申请状态1、待审核,2通过,3未通过")
 	private Integer  applyStatus;
-	
-	/**
-	 * 备注
-	 */
 
-
+	@ApiModelProperty(value = "备注")
 	private String  remark;
 	
 	/**
 	 * 公司ID
 	 */
-
-
+	@ApiModelProperty(hidden = true)
 	private Long  companyId;
 
 
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 e3ce8f6..4e0447e 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
@@ -1,6 +1,8 @@
 package com.matrix.system.shopXcx.api.action;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.matrix.biz.bean.BizUser;
+import com.matrix.biz.dao.BizUserDao;
 import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
@@ -18,6 +20,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -38,42 +41,105 @@
     @Autowired
     private RedisUserLoginUtils redisUserLoginUtils;
 
+    @Autowired
+    private BizUserDao bizUserDao;
+
     @ApiOperation(value = "查询推广计划", notes = "")
     @GetMapping(value = "/getTgPlan")
     public AjaxResult getTgPlan() {
         BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_PLAN, HostInterceptor.getCompanyId());
         AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("");
-        ajaxResult.putInMap("tgjh",busParameterSettings.getParamValue3());
+        ajaxResult.putInMap("data",busParameterSettings.getParamValue3());
         return ajaxResult;
     }
 
 
-    @ApiOperation(value = "申请成为推广员", notes = "传入参数invitationId 邀请人openId 如: {invitationId:openId}")
+    @ApiOperation(value = "申请成为推广员", notes = "传入参数invitationId 邀请人openId ,非必填 例: {invitationId:openId}")
     @ApiResponses({
             @ApiResponse(code = 200, message = "ok", response = Map.class)
     })
     @PostMapping(value = "/applyToBeAnSalesman")
     public AjaxResult applyToBeAnSalesman(@RequestBody Map<String,String> param) {
         BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
-        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);
+        loginUser=bizUserDao.selectById(loginUser.getUserId());
+        //校验审核状态,和是否重复发起
+        QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("user_id",loginUser.getUserId());
+        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("不能重复申请");
         }
-        salesmanApplyDao.insert(shopSalesmanApply);
-        return AjaxResult.buildSuccessInstance("申请成功");
+
     }
 
 
+    @ApiOperation(value = "查询推广员审核进度", notes = "")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = ShopSalesmanApply.class)
+    })
+    @GetMapping(value = "/queryApplyProgress")
+    public AjaxResult queryApplyProgress() {
+        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
+        QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("user_id",loginUser.getUserId());
+        ShopSalesmanApply shopSalesmanApply = salesmanApplyDao.selectOne(queryWrapper);
+        return AjaxResult.buildSuccessInstance(shopSalesmanApply);
+    }
+
+
+    @ApiOperation(value = "绑定下级客户,当客户点击分销员分销的产品时调用", notes = "传入参数invitationId 必须 分销员openId 例: {invitationId:openId}")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = Map.class)
+    })
+    @PostMapping(value = "/bindingParentSalesman")
+    public AjaxResult bindingParentSalesman(@RequestBody Map<String,String> param) {
+        String invitationId = param.get("invitationId");
+        if (StringUtils.isBlank(invitationId)) {
+            return AjaxResult.buildFailInstance("请求参数错误");
+        }
+
+        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
+        loginUser = bizUserDao.selectById(loginUser.getUserId());
+        if (loginUser.getIsSales() == null || loginUser.getIsSales() == BizUser.NOT_SALES) {
+            if (StringUtils.isBlank(loginUser.getParentOpenId())) {
+
+                Map<String, Object> updateParam = new HashMap<>();
+                updateParam.put("userId", loginUser.getUserId());
+                updateParam.put("parentOpenId", invitationId);
+                bizUserDao.updateByMap(updateParam);
+                return AjaxResult.buildSuccessInstance("绑定成功");
+            } else {
+                return AjaxResult.buildSuccessInstance("已经存在上级");
+            }
+        } else {
+            return AjaxResult.buildSuccessInstance("分销员不能被绑定");
+        }
+
+
+
+    }
 
 
 
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/BizUserDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/BizUserDao.xml
index 4fcec6c..9c5f32b 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/BizUserDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/BizUserDao.xml
@@ -36,6 +36,7 @@
 			<result property="isSales" column="is_sales" />
 			<result property="withdrawalCash" column="withdrawal_cash" />
 			<result property="salesmanGrade" column="salesman_grade" />
+			<result property="parentOpenId" column="parent_open_id" />
 	</resultMap>
 	
 	
@@ -72,6 +73,7 @@
 		<result property="isSales" column="is_sales" />
 		<result property="withdrawalCash" column="withdrawal_cash" />
 		<result property="salesmanGrade" column="salesman_grade" />
+		<result property="parentOpenId" column="parent_open_id" />
 	</resultMap>
 	
 	<!-- 字段sql -->
@@ -106,7 +108,8 @@
             company_id,
 		is_sales,
 		withdrawal_cash,
-		salesman_grade
+		salesman_grade,
+		parent_open_id
 
 	</sql>
 	
@@ -142,7 +145,9 @@
 			#{item.companyId},
 			#{item.isSales},
 			#{item.withdrawalCash},
-			#{item.salesmanGrade}
+			#{item.salesmanGrade},
+			#{item.parentOpenId}
+
 
 	</sql>
 	
@@ -238,7 +243,9 @@
 			 <if test="record.salesmanGrade != null and record.salesmanGrade !='' ">
 				 and salesman_grade = #{record.salesmanGrade}
 			 </if>
-
+			 <if test="record.parentOpenId != null and record.parentOpenId !='' ">
+				 and parent_open_id = #{record.parentOpenId}
+			 </if>
 
 			<if test="(record.startTime!=null and record.startTime!='') or  (record.startTime!='' and record.startTime==0) ">
 				and date_format(create_time,'%Y-%m-%d') &gt;= #{record.startTime}
@@ -361,6 +368,9 @@
 			<if test="_parameter.containsKey('salesmanGrade')">
 				salesman_grade = #{salesmanGrade},
 				</if>
+			<if test="_parameter.containsKey('parentOpenId')">
+				parent_open_id = #{parentOpenId},
+			</if>
 
 
 
@@ -448,7 +458,9 @@
 			<if test="record.salesmanGrade != null ">
 				salesman_grade  = #{record.salesmanGrade},
 			</if>
-
+			<if test="record.parentOpenId != null ">
+				parent_open_id  = #{record.parentOpenId},
+			</if>
 
 		</set>
 		WHERE user_id=#{record.userId} 

--
Gitblit v1.9.1