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 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 83 insertions(+), 17 deletions(-)

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("分销员不能被绑定");
+        }
+
+
+
+    }
 
 
 

--
Gitblit v1.9.1