提交 63055f3e authored 作者: lql-win's avatar lql-win

促销员登录、注册日志整理

上级 c4482f76
package com.wangxiaolu.promotion.controller.wechat; package com.wangxiaolu.promotion.controller.wechat;
import com.alibaba.fastjson.JSONObject;
import com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto;
import com.wangxiaolu.promotion.pojo.user.vo.WxJsUserInfoVo; import com.wangxiaolu.promotion.pojo.user.vo.WxJsUserInfoVo;
import com.wangxiaolu.promotion.service.wechat.WeChatUserCoreService; import com.wangxiaolu.promotion.service.wechat.WeChatUserCoreService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -28,7 +31,11 @@ public class WeChatUserCoreController { ...@@ -28,7 +31,11 @@ public class WeChatUserCoreController {
*/ */
@PostMapping("/temporary/enroll") @PostMapping("/temporary/enroll")
public boolean enrollUserInfo(@RequestBody @Validated WxJsUserInfoVo wxJsUserInfoVo) { public boolean enrollUserInfo(@RequestBody @Validated WxJsUserInfoVo wxJsUserInfoVo) {
return weChatUserCoreService.saveWxUserInfoTemporary(wxJsUserInfoVo); log.info("微信-促销员注册:{}", JSONObject.toJSONString(wxJsUserInfoVo));
WxTemporaryInfoDto temporaryDto = new WxTemporaryInfoDto();
BeanUtils.copyProperties(wxJsUserInfoVo, temporaryDto);
return weChatUserCoreService.saveWxUserInfoTemporary(temporaryDto);
} }
} }
...@@ -3,6 +3,7 @@ package com.wangxiaolu.promotion.controller.wechat; ...@@ -3,6 +3,7 @@ package com.wangxiaolu.promotion.controller.wechat;
import com.wangxiaolu.promotion.service.wechat.WeChatUserQueryService; import com.wangxiaolu.promotion.service.wechat.WeChatUserQueryService;
import com.wangxiaolu.promotion.utils.WxMaUtils; import com.wangxiaolu.promotion.utils.WxMaUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -28,15 +29,15 @@ public class WeChatUserQueryController { ...@@ -28,15 +29,15 @@ public class WeChatUserQueryController {
* 接收wx临时登录凭证code,查询openid是否已注册 * 接收wx临时登录凭证code,查询openid是否已注册
* 促销员查询 * 促销员查询
*/ */
@GetMapping("/temporary/openid") @GetMapping("/temporary/login")
public Boolean getOpenIdByWxcode(String jsCode) { public boolean temporaryLoginByOpenId(String jsCode) {
if (StringUtils.isEmpty(jsCode)){ String userOpenId = null;
return null; try {
userOpenId = wxMaUtils.getWxOpenId(jsCode);
return weChatUserQueryService.loginTemporaryByOpenId(userOpenId);
} catch (WxErrorException e) {
log.info("微信-促销员登录无效,jsCode:{},获取openId:{}", jsCode, userOpenId);
} }
String userOpenId = wxMaUtils.getWxOpenId(jsCode); return false;
// String userOpenId = "openid111";
return weChatUserQueryService.queryTemporaryByOpenId(userOpenId);
} }
} }
package com.wangxiaolu.promotion.domain.user.dao; package com.wangxiaolu.promotion.domain.user.dao;
import com.wangxiaolu.promotion.domain.user.mapper.entity.TemporaryInfoDO;
import com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto; import com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto;
/** /**
...@@ -15,7 +16,7 @@ public interface TemporaryInfoDao { ...@@ -15,7 +16,7 @@ public interface TemporaryInfoDao {
int saveWxTemporaryInfo(WxTemporaryInfoDto temporaryDto); int saveWxTemporaryInfo(WxTemporaryInfoDto temporaryDto);
/** /**
* 根据OpenId查询人员是否已注册 * 根据OpenId查询人员是否存在
*/ */
Boolean existTemporaryByOpenId(String openId); TemporaryInfoDO queryOneTemporaryByOpenId(String openId);
} }
...@@ -33,14 +33,17 @@ public class TemporaryInfoDaoImpl implements TemporaryInfoDao { ...@@ -33,14 +33,17 @@ public class TemporaryInfoDaoImpl implements TemporaryInfoDao {
} }
@Override @Override
public Boolean existTemporaryByOpenId(String openId) { public TemporaryInfoDO queryOneTemporaryByOpenId(String openId) {
TemporaryWrapper tw = new TemporaryWrapper().setOpenId(openId); TemporaryWrapper tw = new TemporaryWrapper().setOpenId(openId);
LambdaQueryWrapper qw = buildQueryList(tw); LambdaQueryWrapper<TemporaryInfoDO> qw = buildQueryList(tw);
Integer count = temporaryInfoMapper.selectCount(qw);
return count > 0; TemporaryInfoDO temDo = temporaryInfoMapper.selectOne(qw);
WxTemporaryInfoDto temporaryDto = new WxTemporaryInfoDto();
BeanUtils.copyProperties(temDo, temporaryDto);
return temDo;
} }
private LambdaQueryWrapper buildQueryList(TemporaryWrapper tw){ private LambdaQueryWrapper<TemporaryInfoDO> buildQueryList(TemporaryWrapper tw){
LambdaQueryWrapper<TemporaryInfoDO> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TemporaryInfoDO> queryWrapper = new LambdaQueryWrapper<>();
if (!StringUtils.isEmpty(tw.getOpenId())){ if (!StringUtils.isEmpty(tw.getOpenId())){
queryWrapper.eq(TemporaryInfoDO::getOpenId,tw.getOpenId()); queryWrapper.eq(TemporaryInfoDO::getOpenId,tw.getOpenId());
......
package com.wangxiaolu.promotion.service.wechat; package com.wangxiaolu.promotion.service.wechat;
import com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto;
import com.wangxiaolu.promotion.pojo.user.vo.WxJsUserInfoVo; import com.wangxiaolu.promotion.pojo.user.vo.WxJsUserInfoVo;
/** /**
...@@ -12,5 +13,5 @@ public interface WeChatUserCoreService { ...@@ -12,5 +13,5 @@ public interface WeChatUserCoreService {
/** /**
* 保存促销员用户信息 * 保存促销员用户信息
*/ */
boolean saveWxUserInfoTemporary(WxJsUserInfoVo wxJsUserInfoVo); boolean saveWxUserInfoTemporary(WxTemporaryInfoDto temporaryDto);
} }
package com.wangxiaolu.promotion.service.wechat; package com.wangxiaolu.promotion.service.wechat;
import org.springframework.stereotype.Service;
/** /**
* @author : liqiulin * @author : liqiulin
* @date : 2024-04-09 18 * @date : 2024-04-09 18
* @describe :微信人员信息查询 * @describe :微信人员信息查询
*/ */
public interface WeChatUserQueryService { public interface WeChatUserQueryService {
Boolean queryTemporaryByOpenId(String userOpenId); boolean loginTemporaryByOpenId(String userOpenId);
} }
package com.wangxiaolu.promotion.service.wechat.impl; package com.wangxiaolu.promotion.service.wechat.impl;
import com.alibaba.fastjson.JSONObject;
import com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao; import com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao;
import com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto; import com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto;
import com.wangxiaolu.promotion.pojo.user.vo.WxJsUserInfoVo; import com.wangxiaolu.promotion.pojo.user.vo.WxJsUserInfoVo;
import com.wangxiaolu.promotion.service.wechat.WeChatUserCoreService; import com.wangxiaolu.promotion.service.wechat.WeChatUserCoreService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -13,8 +17,10 @@ import org.springframework.stereotype.Service; ...@@ -13,8 +17,10 @@ import org.springframework.stereotype.Service;
* @date : 2024-04-08 16 * @date : 2024-04-08 16
* @describe :微信用户信息操作 * @describe :微信用户信息操作
*/ */
@Slf4j
@Service @Service
public class WeChatUserCoreServiceImpl implements WeChatUserCoreService { public class WeChatUserCoreServiceImpl implements WeChatUserCoreService {
@Autowired @Autowired
TemporaryInfoDao temporaryInfoDao; TemporaryInfoDao temporaryInfoDao;
...@@ -22,10 +28,9 @@ public class WeChatUserCoreServiceImpl implements WeChatUserCoreService { ...@@ -22,10 +28,9 @@ public class WeChatUserCoreServiceImpl implements WeChatUserCoreService {
* 保存促销员用户信息 * 保存促销员用户信息
*/ */
@Override @Override
public boolean saveWxUserInfoTemporary(WxJsUserInfoVo wxJsUserInfoVo) { public boolean saveWxUserInfoTemporary(WxTemporaryInfoDto temporaryDto) {
WxTemporaryInfoDto temporaryDto = new WxTemporaryInfoDto();
BeanUtils.copyProperties(wxJsUserInfoVo, temporaryDto);
int saveId = temporaryInfoDao.saveWxTemporaryInfo(temporaryDto); int saveId = temporaryInfoDao.saveWxTemporaryInfo(temporaryDto);
log.info("微信-促销员[{}]:[{}]注册成功:{}", saveId, temporaryDto.getName(), JSONObject.toJSONString(temporaryDto));
return saveId > 0; return saveId > 0;
} }
} }
package com.wangxiaolu.promotion.service.wechat.impl; package com.wangxiaolu.promotion.service.wechat.impl;
import com.alibaba.fastjson.JSONObject;
import com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao; import com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao;
import com.wangxiaolu.promotion.domain.user.mapper.entity.TemporaryInfoDO;
import com.wangxiaolu.promotion.service.wechat.WeChatUserQueryService; import com.wangxiaolu.promotion.service.wechat.WeChatUserQueryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Objects;
/** /**
* @author : liqiulin * @author : liqiulin
* @date : 2024-04-09 18 * @date : 2024-04-09 18
...@@ -13,12 +19,21 @@ import org.springframework.stereotype.Service; ...@@ -13,12 +19,21 @@ import org.springframework.stereotype.Service;
@Service @Service
public class WeChatUserQueryServiceImpl implements WeChatUserQueryService { public class WeChatUserQueryServiceImpl implements WeChatUserQueryService {
private static final Logger log = LoggerFactory.getLogger(WeChatUserQueryServiceImpl.class);
@Autowired @Autowired
TemporaryInfoDao temporaryInfoDao; TemporaryInfoDao temporaryInfoDao;
@Override @Override
public Boolean queryTemporaryByOpenId(String userOpenId) { public boolean loginTemporaryByOpenId(String userOpenId) {
Boolean exist = temporaryInfoDao.existTemporaryByOpenId(userOpenId); TemporaryInfoDO temDo = temporaryInfoDao.queryOneTemporaryByOpenId(userOpenId);
boolean exist = !Objects.isNull(temDo);
// todo 查询到时,将个人信息放到reids中进行保存
if (exist) {
log.info("{}登录成功,openId:{}", temDo.getName(), userOpenId);
log.info(JSONObject.toJSONString(temDo));
}
return exist; return exist;
} }
} }
...@@ -22,15 +22,10 @@ public class WxMaUtils { ...@@ -22,15 +22,10 @@ public class WxMaUtils {
/** /**
* 根据code查询openId * 根据code查询openId
*/ */
public String getWxOpenId(String jsCode) { public String getWxOpenId(String jsCode) throws WxErrorException {
WxMaJscode2SessionResult sessionInfo = null; WxMaJscode2SessionResult sessionInfo = wxMaService.getUserService().getSessionInfo(jsCode);
try { String openid = sessionInfo.getOpenid();
sessionInfo = wxMaService.getUserService().getSessionInfo(jsCode); return openid;
String openid = sessionInfo.getOpenid();
return openid;
} catch (WxErrorException e) {
throw new RuntimeException();
}
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论