From a9f950c0d11a687a7a940443b8c765f6d87ae4f1 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 20 Apr 2021 00:26:22 +0800
Subject: [PATCH] 合并新的修改
---
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java | 299 ++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 190 insertions(+), 109 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..6466163 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,158 +1,239 @@
package com.matrix.system.shopXcx.api.action;
-import com.matrix.biz.bean.BizUser;
-import com.matrix.biz.service.BizUserService;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.matrix.component.redis.RedisUserLoginUtils;
import com.matrix.component.tools.HttpCurlUtil;
-import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.tools.LogUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.web.BaseAction;
-import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.activity.dao.ActivitySignReceiveRecordDao;
+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.constance.Dictionary;
+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.hive.bean.SysVipInfo;
+import com.matrix.system.hive.dao.MoneyCardUseDao;
+import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.hive.service.SysVipInfoService;
+import com.matrix.system.score.dao.ScoreVipDetailDao;
import com.matrix.system.shopXcx.api.WeChatApiTools;
+import com.matrix.system.shopXcx.api.dto.XcxUserSaveUserInfoDto;
+import com.matrix.system.shopXcx.dao.ShopCouponRecordDao;
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 SysVipInfoService sysVipInfoService;
+ @Autowired
+ private SysVipInfoDao sysVipInfoDao;
- @Autowired
- private RedisUserLoginUtils redisUserLoginUtils;
+ @Autowired
+ private ShopSalesmanApplyService shopSalesmanApplyService;
+ @Autowired
+ BusParameterSettingsDao busParameterSettingsDao;
+ @Autowired
+ private RedisUserLoginUtils redisUserLoginUtils;
+ @Autowired
+ ShopSalesmanApplyDao salesmanApplyDao;
- @Autowired
- WeChatApiTools weChatApiTools;
+ @Autowired
+ WeChatApiTools weChatApiTools;
+ @Autowired
+ private ScoreVipDetailDao scoreVipDetailDao;
+ @Autowired
+ private MoneyCardUseDao moneyCardUseDao;
- @Autowired
- private WeixinServiceUtil weixinServiceUtil;
+ @Autowired
+ ShopCouponRecordDao shopCouponRecordDao;
- @Value("${debug}")
- private String isDebug;
+ @Autowired
+ ActivitySignReceiveRecordDao activitySignReceiveRecordDao;
+ @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);
+ // 查询用户是否存在
+ SysVipInfo sysVipInfo = null;
+ synchronized (this) {
+ sysVipInfo = sysVipInfoService.findByOpenId(openId);
+ if (sysVipInfo == null) {
+ // 新增用户
+ sysVipInfo = new SysVipInfo();
+ sysVipInfo.setIsSales(SysVipInfo.NOT_SALES);
+ sysVipInfo.setOpenId(openId);
+ sysVipInfo.setSessionKey(sessionKey);
+ sysVipInfo.setCompanyId(HostInterceptor.getCompanyId());
+ sysVipInfo.setArrivalWay("微商城");
+ sysVipInfo.setVipName("微信用户");
+ sysVipInfo.setVipState(Dictionary.VIP_STATE_HY);
+ sysVipInfo.setVipType(Dictionary.VIP_TYPE_NOCARD);
+ sysVipInfo.setIsDeal(SysVipInfo.UNDEAL_VIP);
+ sysVipInfo.setVipNo(openId);
+ sysVipInfoService.add(sysVipInfo);
- } 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{
+ sysVipInfo.setSessionKey(sessionKey);
+ sysVipInfoDao.update(sysVipInfo);
+ }
+ }
+ // 存放redis
+ sysVipInfo.setLevelCard(null);
+ String token = redisUserLoginUtils.saveUserInfo(sysVipInfo);
+ LogUtil.info("用户token={}", token);
+ res.putInMap("token", token);
+ res.putInMap("userInfo", sysVipInfo);
+ 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;
- }
+ SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+ SysVipInfo sysVipInfo = sysVipInfoService.findById(loginUser.getId());
+ sysVipInfo.setPointAll(scoreVipDetailDao.selectUserTotalScore(loginUser.getId()));
+ sysVipInfo.setBalance(moneyCardUseDao.selectVipCardTotalMoney(loginUser.getId()));
+ AjaxResult res = new AjaxResult();
+ res.putInMap("couponCount", shopCouponRecordDao.countUnuseCouponRecord(loginUser.getId()));
+ res.putInMap("prizeCount",activitySignReceiveRecordDao.getSignAwardReceiveCount(loginUser.getId(),loginUser.getCompanyId()));
+ res.putInMap("userInfo", sysVipInfo);
+ res.setStatus(AjaxResult.STATUS_SUCCESS);
+ return res;
+ }
+
+ /**
+ * 根据OpenID查询用户信息
+ */
+ @GetMapping(value = "/findUserInfo/{openId}")
+ public @ResponseBody
+ AjaxResult findUserInfo(@PathVariable String openId) {
+ SysVipInfo sysVipInfo = sysVipInfoService.findByOpenId(openId);
+ SysVipInfo bizUserQuery=new SysVipInfo();
+ bizUserQuery.setNickName(sysVipInfo.getNickName());
+ bizUserQuery.setAvatarUrl(sysVipInfo.getAvatarUrl());
+ bizUserQuery.setOpenId(openId);
+ return AjaxResult.buildSuccessInstance(bizUserQuery);
+ }
- /**
- * 接收用户信息
- */
- @RequestMapping(value = "/saveUserInfo")
- public @ResponseBody
- AjaxResult saveUserInfo(@RequestBody BizUser bizUser) {
+ /**
+ * 接收用户信息
+ */
+ @PostMapping(value = "/saveUserInfo")
+ public @ResponseBody
+ AjaxResult saveUserInfo(@RequestBody XcxUserSaveUserInfoDto xcxUserSaveUserInfoDto) {
- BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
- bizUser.setUserId(loginUser.getUserId());
- // TODO 赋值操作
- int i = bizUserService.saveUserInfo(bizUser);
+ SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+ SysVipInfo sysVipInfo=new SysVipInfo();
+ sysVipInfo.setId(loginUser.getId());
- if (i == 0) {
- return new AjaxResult(AjaxResult.STATUS_FAIL, "更新失败");
- }
- return new AjaxResult(AjaxResult.STATUS_SUCCESS, Collections.singletonList(bizUser));
- }
+ BeanUtil.copyProperties(xcxUserSaveUserInfoDto,sysVipInfo);
+ sysVipInfo.setPhone(xcxUserSaveUserInfoDto.getPhoneNumber());
+ if(StringUtils.isBlank(loginUser.getVipName())||loginUser.getVipName().equals("微信用户")){
+ sysVipInfo.setVipName(xcxUserSaveUserInfoDto.getNickName());
+ }
+ if(StringUtils.isBlank(loginUser.getSex())){
+ sysVipInfo.setSex(xcxUserSaveUserInfoDto.getGender()==1?"男":"女");
+ }
+
+ int i = sysVipInfoDao.update(sysVipInfo);
+
+ checkNeedToBeSalesman(sysVipInfo, loginUser);
+ if (i == 0) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "更新失败");
+ }
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, Collections.singletonList(sysVipInfo));
+ }
+ void checkNeedToBeSalesman(SysVipInfo sysVipInfo, SysVipInfo loginUser) {
+ //查询是否需要自动成为分销员
+ if ((loginUser.getIsSales() == null || loginUser.getIsSales() == 2)
+ && StringUtils.isNotBlank(sysVipInfo.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.getId());
+ queryWrapper.eq("apply_status", ShopSalesmanApply.APPLY_STATUS_DSH);
+ ShopSalesmanApply shopSalesmanApply = salesmanApplyDao.selectOne(queryWrapper);
+ if (shopSalesmanApply == null) {//没有待审核记录
+ try {
+ shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getId(), null, null, 2);
+ }catch (Exception e){
+ LogUtil.debug(e.getMessage());
+ }
+
+ }
+ }
+ }
+ }
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.1