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