From 3ada3a6e740b3c4b60a43d1a1a67dba072181dbd Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 09 Apr 2021 14:42:24 +0800 Subject: [PATCH] 20210409 获取未领取的奖品 --- zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java | 129 ++++++++++++++++++++++++++++--------------- 1 files changed, 84 insertions(+), 45 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 44c4ecd..9cac99e 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,8 +1,7 @@ package com.matrix.system.shopXcx.api.action; +import cn.hutool.core.bean.BeanUtil; 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; import com.matrix.component.tools.HttpCurlUtil; import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil; @@ -11,25 +10,25 @@ 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.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.SysVipInfoDao; +import com.matrix.system.hive.service.SysVipInfoService; import com.matrix.system.shopXcx.api.WeChatApiTools; +import com.matrix.system.shopXcx.api.dto.XcxUserSaveUserInfoDto; 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; /** * @author jyy @@ -41,7 +40,10 @@ public class WxUserAction extends BaseAction { @Autowired - private BizUserService bizUserService; + private SysVipInfoService sysVipInfoService; + + @Autowired + private SysVipInfoDao sysVipInfoDao; @Autowired private ShopSalesmanApplyService shopSalesmanApplyService; @@ -95,32 +97,35 @@ String sessionKey = json.getString("session_key"); LogUtil.debug("openId={},sessionKey={}", openId, sessionKey); // 查询用户是否存在 - BizUser bizUser = null; + SysVipInfo sysVipInfo = null; synchronized (this) { - bizUser = bizUserService.findByOpenId(openId); - if (bizUser == null) { + sysVipInfo = sysVipInfoService.findByOpenId(openId); + if (sysVipInfo == 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); + 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); + }else{ + sysVipInfo.setSessionKey(sessionKey); + sysVipInfoDao.update(sysVipInfo); } } // 存放redis - String token = redisUserLoginUtils.saveUserInfo(bizUser); + sysVipInfo.setLevelCard(null); + String token = redisUserLoginUtils.saveUserInfo(sysVipInfo); LogUtil.info("用户token={}", token); res.putInMap("token", token); - res.putInMap("userInfo", bizUser); + res.putInMap("userInfo", sysVipInfo); res.setStatus(AjaxResult.STATUS_SUCCESS); } else { res.setStatus(AjaxResult.STATUS_FAIL); @@ -135,50 +140,84 @@ @RequestMapping(value = "/findUserInfo") public @ResponseBody AjaxResult findUserInfo() { - BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); + SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class); String openId = loginUser.getOpenId(); - BizUser bizUser = bizUserService.findByOpenId(openId); + SysVipInfo sysVipInfo = sysVipInfoService.findByOpenId(openId); AjaxResult res = new AjaxResult(); - res.putInMap("userInfo", bizUser); + 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") + @PostMapping(value = "/saveUserInfo") public @ResponseBody - AjaxResult saveUserInfo(@RequestBody BizUser bizUser) { + 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()); + + 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(loginUser.getNickName())) {//目前还不是分销员 + && StringUtils.isNotBlank(sysVipInfo.getNickName())) {//目前还不是分销员 BusParameterSettings fxSwith = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_SWITCH, HostInterceptor.getCompanyId()); if (fxSwith.getParamValue().equals("1")) {//开启分销 - BusParameterSettings applyCondition = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_APPLY_CONDITION, loginUser.getCompanyId()); - if (applyCondition.getParamValue().equals(FenxiaoSettingConstant.FX_APPLY_CONDITION_WTJ)) {//无条件可称为分销员 + 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("user_id", loginUser.getId()); queryWrapper.eq("apply_status", ShopSalesmanApply.APPLY_STATUS_DSH); ShopSalesmanApply shopSalesmanApply = salesmanApplyDao.selectOne(queryWrapper); if (shopSalesmanApply == null) {//没有待审核记录 - shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getOpenId(), null, null, 2); + try { + shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getId(), null, null, 2); + }catch (Exception e){ + LogUtil.debug(e.getMessage()); + } + } } } } - if (i == 0) { - return new AjaxResult(AjaxResult.STATUS_FAIL, "更新失败"); - } - return new AjaxResult(AjaxResult.STATUS_SUCCESS, Collections.singletonList(bizUser)); } -- Gitblit v1.9.1