From 5d43370b99a03391c9271d04d3f351f0fd734dae Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Thu, 18 Mar 2021 20:23:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java |  262 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 154 insertions(+), 108 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
index 7a523f3..3125fe1 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
@@ -1,5 +1,6 @@
 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.service.BizUserService;
 import com.matrix.component.redis.RedisUserLoginUtils;
@@ -9,150 +10,195 @@
 import com.matrix.core.tools.LogUtil;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.core.web.BaseAction;
+import com.matrix.system.common.bean.BusParameterSettings;
 import com.matrix.system.common.constance.AppConstance;
+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 com.matrix.system.fenxiao.service.ShopSalesmanApplyService;
 import com.matrix.system.shopXcx.api.WeChatApiTools;
 import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.Collections;
 import java.util.Date;
 
 /**
- * @description (用户表)
  * @author jyy
+ * @description (用户表)
  * @date 2019-05-31 10:03
  */
 @Controller
 @RequestMapping(value = "wxapi/user")
 public class WxUserAction extends BaseAction {
 
-	@Autowired
-	private BizUserService bizUserService;
+    @Autowired
+    private BizUserService bizUserService;
+
+    @Autowired
+    private ShopSalesmanApplyService shopSalesmanApplyService;
+
+    @Autowired
+    BusParameterSettingsDao busParameterSettingsDao;
+    @Autowired
+    private RedisUserLoginUtils redisUserLoginUtils;
+    @Autowired
+    ShopSalesmanApplyDao salesmanApplyDao;
+
+    @Autowired
+    WeChatApiTools weChatApiTools;
 
 
-	@Autowired
-	private RedisUserLoginUtils redisUserLoginUtils;
+    @Autowired
+    private WeixinServiceUtil weixinServiceUtil;
 
+    @Value("${debug}")
+    private String isDebug;
 
-	@Autowired
-	WeChatApiTools weChatApiTools;
-
-
-
-	@Autowired
-	private WeixinServiceUtil weixinServiceUtil;
-
-	@Value("${debug}")
-	private String isDebug;
-
-	/**
-	 * 小程序登录
-	 * 
-	 * @author JIANGYOUYAO
-	 * @email 935090232@qq.com
-	 * @date 2018年5月23日
-	 * @param code
-	 * @return
-	 * @throws Exception
-	 */
-	@RequestMapping(value = "/login/{keys}")
-	public @ResponseBody
+    /**
+     * 小程序登录
+     *
+     * @param code
+     * @return
+     * @throws Exception
+     * @author JIANGYOUYAO
+     * @email 935090232@qq.com
+     * @date 2018年5月23日
+     */
+    @RequestMapping(value = "/login/{keys}")
+    public @ResponseBody
     AjaxResult wxLogin(@PathVariable("keys") String code) throws Exception {
-		AjaxResult res = new AjaxResult();
-		LogUtil.info("code:{}" + code);
-		if (StringUtils.isNotBlank(code)) {
-			String requrl = weChatApiTools.getXcxLoginUrl(code, HostInterceptor.getCompanyId());
-			String reslutData = HttpCurlUtil.sendGetHttp(requrl, null);
-			JSONObject json = JSONObject.fromObject(reslutData);
-			LogUtil.debug("微信登录获取到登录信息={}", json);
+        AjaxResult res = new AjaxResult();
+        LogUtil.info("code:{}" + code);
+        if (StringUtils.isNotBlank(code)) {
+            String requrl = weChatApiTools.getXcxLoginUrl(code, HostInterceptor.getCompanyId());
+            String reslutData = HttpCurlUtil.sendGetHttp(requrl, null);
+            JSONObject json = JSONObject.fromObject(reslutData);
+            LogUtil.debug("微信登录获取到登录信息={}", json);
 
-			if(json.containsKey("errcode")){
-				res.setStatus(AjaxResult.STATUS_FAIL);
-				res.setInfo("自动登录失败");
-				LogUtil.debug("微信登录获取到异常信息errcode");
-				return res;
-			}
+            if (json.containsKey("errcode")) {
+                res.setStatus(AjaxResult.STATUS_FAIL);
+                res.setInfo("自动登录失败");
+                LogUtil.debug("微信登录获取到异常信息errcode");
+                return res;
+            }
 
-			String openId = json.getString("openid");
-			String sessionKey = json.getString("session_key");
-			LogUtil.debug("openId={},sessionKey={}", openId, sessionKey);
-			// 查询用户是否存在
-			BizUser bizUser = null;
-			synchronized(this){
-				bizUser = bizUserService.findByOpenId(openId);
-				if (bizUser == null) {
-					// 新增用户
-					bizUser = new BizUser();
-					bizUser.setSessionKey(sessionKey);
-					bizUser.setIsSales(BizUser.NOT_SALES);
-					bizUser.setOpenId(openId);
-					bizUser.setLastLoginTime(new Date());
-					bizUser.setUserType(AppConstance.USER_TYPE_CUSTOMER);
-					bizUser.setCompanyId(HostInterceptor.getCompanyId());
-					bizUserService.add(bizUser);
+            String openId = json.getString("openid");
+            String sessionKey = json.getString("session_key");
+            LogUtil.debug("openId={},sessionKey={}", openId, sessionKey);
+            // 查询用户是否存在
+            BizUser bizUser = null;
+            synchronized (this) {
+                bizUser = bizUserService.findByOpenId(openId);
+                if (bizUser == null) {
+                    // 新增用户
+                    bizUser = new BizUser();
+                    bizUser.setSessionKey(sessionKey);
+                    bizUser.setIsSales(BizUser.NOT_SALES);
+                    bizUser.setOpenId(openId);
+                    bizUser.setLastLoginTime(new Date());
+                    bizUser.setUserType(AppConstance.USER_TYPE_CUSTOMER);
+                    bizUser.setCompanyId(HostInterceptor.getCompanyId());
+                    bizUserService.add(bizUser);
 
-				} else {
-					bizUser.setSessionKey(sessionKey);
-					bizUser.setLastLoginTime(new Date());
-					// 更新用户sessionKey
-					bizUserService.modifyByModel(bizUser);
-				}
-			}
-			// 存放redis
-			String token = redisUserLoginUtils.saveUserInfo(bizUser);
-			LogUtil.info("用户token={}", token);
-			res.putInMap("token", token);
-			res.putInMap("userInfo", bizUser);
-			res.setStatus(AjaxResult.STATUS_SUCCESS);
-		} else {
-			res.setStatus(AjaxResult.STATUS_FAIL);
-			res.setInfo("自动登录失败");
-		}
-		return res;
-	}
+                } else {
+                    bizUser.setSessionKey(sessionKey);
+                    bizUser.setLastLoginTime(new Date());
+                    // 更新用户sessionKey
+                    bizUserService.modifyByModel(bizUser);
+                }
+            }
+            // 存放redis
+            String token = redisUserLoginUtils.saveUserInfo(bizUser);
+            LogUtil.info("用户token={}", token);
+            res.putInMap("token", token);
+            res.putInMap("userInfo", bizUser);
+            res.setStatus(AjaxResult.STATUS_SUCCESS);
+        } else {
+            res.setStatus(AjaxResult.STATUS_FAIL);
+            res.setInfo("自动登录失败");
+        }
+        return res;
+    }
 
-	/**
-	 * 查询用户信息
-	 */
-	@RequestMapping(value = "/findUserInfo")
-	public @ResponseBody
+    /**
+     * 查询用户信息
+     */
+    @RequestMapping(value = "/findUserInfo")
+    public @ResponseBody
     AjaxResult findUserInfo() {
-		BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
-		String openId = loginUser.getOpenId();
-		BizUser bizUser = bizUserService.findByOpenId(openId);
-		AjaxResult res = new AjaxResult();
-		res.putInMap("userInfo", bizUser);
-		res.setStatus(AjaxResult.STATUS_SUCCESS);
-		return res;
-	}
+        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
+        String openId = loginUser.getOpenId();
+        BizUser bizUser = bizUserService.findByOpenId(openId);
+        AjaxResult res = new AjaxResult();
+        res.putInMap("userInfo", bizUser);
+        res.setStatus(AjaxResult.STATUS_SUCCESS);
+        return res;
+    }
+
+    /**
+     * 根据OpenID查询用户信息
+     */
+    @GetMapping(value = "/findUserInfo/{openId}")
+    public @ResponseBody
+    AjaxResult findUserInfo(@PathVariable String openId) {
+        BizUser bizUser = bizUserService.findByOpenId(openId);
+        BizUser bizUserQuery=new BizUser();
+        bizUserQuery.setNickName(bizUser.getNickName());
+        bizUserQuery.setAvatarUrl(bizUser.getAvatarUrl());
+        bizUserQuery.setOpenId(openId);
+        return AjaxResult.buildSuccessInstance(bizUserQuery);
+    }
 
 
-	/**
-	 * 接收用户信息
-	 */
-	@RequestMapping(value = "/saveUserInfo")
-	public @ResponseBody
+    /**
+     * 接收用户信息
+     */
+    @RequestMapping(value = "/saveUserInfo")
+    public @ResponseBody
     AjaxResult saveUserInfo(@RequestBody BizUser bizUser) {
 
-		BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
-		bizUser.setUserId(loginUser.getUserId());
-		// TODO 赋值操作
-		int i = bizUserService.saveUserInfo(bizUser);
+        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
+        bizUser.setUserId(loginUser.getUserId());
+        // TODO 赋值操作
+        int i = bizUserService.saveUserInfo(bizUser);
 
-		if (i == 0) {
-			return new AjaxResult(AjaxResult.STATUS_FAIL, "更新失败");
-		}
-		return new AjaxResult(AjaxResult.STATUS_SUCCESS, Collections.singletonList(bizUser));
-	}
+        checkNeedToBeSalesman(bizUser, loginUser);
+        if (i == 0) {
+            return new AjaxResult(AjaxResult.STATUS_FAIL, "更新失败");
+        }
+        return new AjaxResult(AjaxResult.STATUS_SUCCESS, Collections.singletonList(bizUser));
+    }
 
+    void checkNeedToBeSalesman(BizUser bizUser, BizUser loginUser) {
+        //查询是否需要自动成为分销员
+        if ((loginUser.getIsSales() == null || loginUser.getIsSales() == 2)
+                && StringUtils.isNotBlank(bizUser.getNickName())) {//目前还不是分销员
+            BusParameterSettings fxSwith = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_SWITCH, HostInterceptor.getCompanyId());
+            if (fxSwith.getParamValue().equals("1")) {//开启分销
+                BusParameterSettings applyWay = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_APPLY_WAY, loginUser.getCompanyId());
+                if (applyWay.getParamValue().equals(FenxiaoSettingConstant.FX_APPLY_WAY_AUTO)) {//自动成为分销员
+                    QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.eq("user_id", loginUser.getOpenId());
+                    queryWrapper.eq("apply_status", ShopSalesmanApply.APPLY_STATUS_DSH);
+                    ShopSalesmanApply shopSalesmanApply = salesmanApplyDao.selectOne(queryWrapper);
+                    if (shopSalesmanApply == null) {//没有待审核记录
+                        try {
+                            shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getOpenId(), null, null, 2);
+                        }catch (Exception e){
+                            LogUtil.debug(e.getMessage());
+                        }
 
+                    }
+                }
+            }
+        }
+    }
 
 
 }
\ No newline at end of file

--
Gitblit v1.9.1