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

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

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