From 2829e9784f691ee39e3b1bed75b586300d9d4aac Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 24 Mar 2026 18:20:03 +0800
Subject: [PATCH] fix(yinhe): 修复智能体查询日志输出位置错误
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 297 +++++++++++++++++++++++-----------------------------------
1 files changed, 119 insertions(+), 178 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 327259b..905bc42 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -33,6 +33,12 @@
import cc.mrbird.febs.vip.VipSettingUnAliveSettingBo;
import cc.mrbird.febs.vip.entity.MallVipConfig;
import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
+import cc.mrbird.febs.yinhe.entity.YHAiCompany;
+import cc.mrbird.febs.yinhe.entity.YHSysCompanyLevel;
+import cc.mrbird.febs.yinhe.entity.YhAiMember;
+import cc.mrbird.febs.yinhe.mapper.YHAiCompanyMapper;
+import cc.mrbird.febs.yinhe.mapper.YHSysCompanyLevelMapper;
+import cc.mrbird.febs.yinhe.mapper.YhAiMemberMapper;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
@@ -696,16 +702,25 @@
private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
+ private final YhAiMemberMapper yhAiMemberMapper;
+ private final YHAiCompanyMapper yhAiCompanyMapper;
+ private final YHSysCompanyLevelMapper yhSysCompanyLevelMapper;
@Override
- public FebsResponse xcxLogin(ApiXcxLoginDto apiXcxLoginDto) throws IOException {
+ @Transactional
+ public FebsResponse xcxLogin(ApiXcxLoginDto apiXcxLoginDto){
log.info("登录请求参数:{}", JSONObject.toJSONString(apiXcxLoginDto));
FebsResponse febsResponse = new FebsResponse();
String code = apiXcxLoginDto.getCode();
log.info("code:" + code);
if (StrUtil.isNotBlank(code)) {
String requrl = getXcxLoginUrl(code);
- String reslutData = HttpCurlUtil.sendGetHttp(requrl, null);
+ String reslutData = null;
+ try {
+ reslutData = HttpCurlUtil.sendGetHttp(requrl, null);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(reslutData);
log.info("微信登录获取到登录信息={}", json);
@@ -718,118 +733,73 @@
String sessionKey = json.getString("session_key");
log.info("openId={},sessionKey={}", openId, sessionKey);
// 查询用户是否存在
- MallMember mallMember = null;
+ YhAiMember entity = null;
synchronized (this) {
- mallMember = this.baseMapper.selectMemberByOpenId(openId);
- if (ObjectUtil.isEmpty(mallMember)) {
+ Date systemTime = new Date();
+ entity = yhAiMemberMapper.selectOne(
+ Wrappers.lambdaQuery(YhAiMember.class)
+ .eq(YhAiMember::getOpenId, openId)
+ );
+ if (ObjectUtil.isEmpty(entity)) {
// 新增用户
- mallMember = new MallMember();
- mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
- mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
- mallMember.setOpenId(openId);
- mallMember.setSessionKey(sessionKey);
- mallMember.setTradePassword(SecureUtil.md5("123456"));
+ entity = new YhAiMember();
+ entity.setOpenId(openId);
+ entity.setSessionKey(sessionKey);
- if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
- MallMember member = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
- if (member != null) {
- mallMember.setReferrerId(member.getInviteId());
+ entity.setMemberUuid(UUID.getSimpleUUIDString());
- //推荐人和推荐人链
- boolean flag = false;
- String parentId = mallMember.getReferrerId();
- if (StrUtil.isBlank(parentId)) {
- flag = true;
- }
- String ids = "";
- while (!flag) {
- if (StrUtil.isBlank(ids)) {
- ids += parentId;
- } else {
- ids += ("," + parentId);
- }
- MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId);
- if (parentMember == null) {
- break;
- }
- parentId = parentMember.getReferrerId();
- if (StrUtil.isBlank(parentMember.getReferrerId())) {
- flag = true;
- }
- }
-
- if (StrUtil.isNotBlank(ids)) {
- mallMember.setReferrerIds(ids);
- }
- }
- }
- this.baseMapper.insert(mallMember);
-
- AiMember aiMember = new AiMember();
- aiMember.setId(UUID.getSimpleUUIDString());
+ log.info("公司编码={}", apiXcxLoginDto.getCompanyId());
if (StrUtil.isNotEmpty(apiXcxLoginDto.getCompanyId())){
- AiCompany aiCompany = aiCompanyMapper.selectOne(
- Wrappers.lambdaQuery(AiCompany.class)
- .eq(AiCompany::getCode, apiXcxLoginDto.getCompanyId())
- .last("limit 1")
+ YHAiCompany aiCompany = yhAiCompanyMapper.selectOne(
+ Wrappers.lambdaQuery(YHAiCompany.class)
+ .eq(YHAiCompany::getCode, apiXcxLoginDto.getCompanyId())
);
- if (ObjectUtil.isNotEmpty(aiCompany)){
- aiMember.setCompanyId(aiCompany.getId());
+ if (ObjectUtil.isEmpty(aiCompany)){
+ throw new FebsException("公司编码错误");
}
- }
- aiMember.setCreatedTime(new Date());
- aiMemberMapper.insert(aiMember);
-
- mallMember = this.baseMapper.selectMemberByOpenId(openId);
- String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
- mallMember.setMemberUuid(aiMember.getId());
- if (StrUtil.isNotEmpty(aiMember.getCompanyId())){
- mallMember.setCompanyId(aiMember.getCompanyId());
- }
- mallMember.setInviteId(inviteId);
- mallMember.setName("新用户"+inviteId);
- this.baseMapper.updateById(mallMember);
- MallMemberWallet wallet = new MallMemberWallet();
- wallet.setBalance(BigDecimal.ZERO);
- wallet.setMemberId(mallMember.getId());
- mallMemberWalletMapper.insert(wallet);
-
- //分销员的邀请码赠送优惠卷
- if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
- String couponUUID = IdUtil.simpleUUID();
- //通过邀请人信息,获取能领取的优惠卷信息
- MallMember refMember = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
- if(ObjectUtil.isNotEmpty(refMember)){
- SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(refMember.getId());
- if(ObjectUtil.isNotEmpty(salemanCoupon)){
- Long couponId = salemanCoupon.getCouponId();
- List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(mallMember.getId(), couponId);
- if(CollUtil.isEmpty(mallMemberCoupons)){
- //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
- MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
- MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
- mallMemberCoupon.setCouponId(couponId);
- mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
- mallMemberCoupon.setMemberId(mallMember.getId());
- mallMemberCoupon.setCouponUuid(couponUUID);
- mallMemberCoupon.setInviteId(refMember.getInviteId());
- mallMemberCoupon.setState(1);
- mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
- mallMemberCouponMapper.insert(mallMemberCoupon);
- }
- }
+ String levelCode = aiCompany.getLevelCode();
+ YHSysCompanyLevel yhSysCompanyLevel = yhSysCompanyLevelMapper.selectOne(
+ Wrappers.lambdaQuery(YHSysCompanyLevel.class)
+ .eq(YHSysCompanyLevel::getCode, levelCode)
+ );
+ Integer memberNum = yhSysCompanyLevel.getMemberNum();
+ List<YhAiMember> yhAiMembers = yhAiMemberMapper.selectList(
+ Wrappers.lambdaQuery(YhAiMember.class)
+ .eq(YhAiMember::getCompanyId, aiCompany.getId())
+ .isNull(YhAiMember::getRoleId)
+ );
+ Integer realNum = CollUtil.isEmpty(yhAiMembers) ? 0 : yhAiMembers.size();
+ log.info("公司会员数:{}", realNum);
+ log.info("公司会员数:{}", memberNum);
+ log.info("公司会员数:{}", realNum >= memberNum);
+ if (realNum >= memberNum){
+ throw new FebsException("公司会员已满");
}
+ entity.setCompanyId(aiCompany.getId());
}
+ entity.setCreateTime(systemTime);
+ entity.setUpdateTime(systemTime);
+ entity.setLastLoginTime(systemTime);
+ yhAiMemberMapper.insert(entity);
+
+ entity = yhAiMemberMapper.selectOne(
+ Wrappers.lambdaQuery(YhAiMember.class)
+ .eq(YhAiMember::getOpenId, openId)
+ );
+ String inviteId = ShareCodeUtil.toSerialCode(entity.getId());
+ entity.setInviteId(inviteId);
+ yhAiMemberMapper.updateById(entity);
} else {
- if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) {
+ if (entity.getAccountStatus() == 1) {
throw new FebsException("账号已停用");
}
- mallMember.setSessionKey(sessionKey);
- this.baseMapper.updateById(mallMember);
+ entity.setSessionKey(sessionKey);
+ entity.setLastLoginTime(systemTime);
+ yhAiMemberMapper.updateById(entity);
}
}
// 存放redis
- String redisKey = AppContants.XCX_LOGIN_PREFIX + mallMember.getId();
+ String redisKey = AppContants.XCX_LOGIN_PREFIX + entity.getMemberUuid();
String existToken = redisUtils.getString(redisKey);
if (StrUtil.isNotBlank(existToken)) {
Object o = redisUtils.get(existToken);
@@ -837,14 +807,17 @@
redisUtils.del(existToken);
}
}
+ YhAiMember yhAiMember = yhAiMemberMapper.selectById(entity.getId());
String token = IdUtil.simpleUUID();
- redisUtils.set(token, JSONObject.toJSONString(mallMember), -1);
- redisUtils.set(redisKey, token, -1);
+ redisUtils.set(token, JSONObject.toJSONString(yhAiMember), 60 * 60 * 24);
+ redisUtils.set(redisKey, token, 60 * 60 * 24);
Map<String, Object> authInfo = new HashMap<>();
authInfo.put("token", token);
authInfo.put("appid", xcxProperties.getXcxAppid());
- authInfo.put("member", mallMember);
- authInfo.put("rasToken", generateAsaToken(token));
+ authInfo.put("member", yhAiMember);
+ String rasToken = generateAsaToken(token);
+ authInfo.put("rasToken", rasToken);
+ log.info("登录成功rasToken={}", rasToken);
febsResponse.success().data(authInfo);
} else {
return febsResponse.fail().message("自动登录失败");
@@ -857,110 +830,71 @@
public FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto) {
log.info("name={},phone={},avatar={},sex={}",
apiXcxSaveInfoDto.getNickName(),apiXcxSaveInfoDto.getPhone(),apiXcxSaveInfoDto.getAvatarUrl(),apiXcxSaveInfoDto.getGender());
- Long memberId = LoginUserUtil.getLoginUser().getId();
- MallMember mallMember = this.baseMapper.selectById(memberId);
+ String memberId = YHLoginUserUtil.getLoginUser().getMemberUuid();
+ YhAiMember entity = yhAiMemberMapper.selectOne(
+ Wrappers.lambdaQuery(YhAiMember.class)
+ .eq(YhAiMember::getMemberUuid, memberId)
+ );
String nickName = apiXcxSaveInfoDto.getNickName();
if(StrUtil.isNotEmpty(nickName)){
- mallMember.setName(nickName);
+ entity.setName(nickName);
}
String phone = apiXcxSaveInfoDto.getPhone();
if(StrUtil.isNotEmpty(phone)){
- mallMember.setPhone(phone);
+ entity.setPhone(phone);
}
String avatarUrl = apiXcxSaveInfoDto.getAvatarUrl();
if(StrUtil.isNotEmpty(avatarUrl)){
- mallMember.setAvatar(avatarUrl);
+ entity.setAvatar(avatarUrl);
}
if (StrUtil.isNotBlank(apiXcxSaveInfoDto.getRealName())) {
- mallMember.setRealName(apiXcxSaveInfoDto.getRealName());
+ entity.setRealName(apiXcxSaveInfoDto.getRealName());
}
if (apiXcxSaveInfoDto.getBirthday() != null) {
- mallMember.setBirthday(apiXcxSaveInfoDto.getBirthday());
- }
-
- List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
- if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
- MallVipConfig mallVipConfig = configs.get(0);
- mallMember.setLevel(mallVipConfig.getCode());
+ entity.setBirthday(apiXcxSaveInfoDto.getBirthday());
}
if(ObjectUtil.isNotEmpty(apiXcxSaveInfoDto.getGender())){
- mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男");
+ entity.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男");
}
String companyId = apiXcxSaveInfoDto.getCompanyId();
- if(ObjectUtil.isNotEmpty(apiXcxSaveInfoDto.getCompanyId())){
- AiCompany aiCompany = aiCompanyMapper.selectOne(
- Wrappers.lambdaQuery(AiCompany.class)
- .eq(AiCompany::getCode, apiXcxSaveInfoDto.getCompanyId())
- .last("limit 1")
+ if(ObjectUtil.isNotEmpty(companyId)){
+ YHAiCompany aiCompany = yhAiCompanyMapper.selectOne(
+ Wrappers.lambdaQuery(YHAiCompany.class)
+ .eq(YHAiCompany::getCode, companyId)
);
if (ObjectUtil.isEmpty(aiCompany)){
throw new FebsException("公司编码不存在");
}
if (ObjectUtil.isNotEmpty(aiCompany)){
+ String levelCode = aiCompany.getLevelCode();
+ YHSysCompanyLevel yhSysCompanyLevel = yhSysCompanyLevelMapper.selectOne(
+ Wrappers.lambdaQuery(YHSysCompanyLevel.class)
+ .eq(YHSysCompanyLevel::getCode, levelCode)
+ );
+ Integer memberNum = yhSysCompanyLevel.getMemberNum();
+ List<YhAiMember> yhAiMembers = yhAiMemberMapper.selectList(
+ Wrappers.lambdaQuery(YhAiMember.class)
+ .eq(YhAiMember::getCompanyId, aiCompany.getId())
+ .isNull(YhAiMember::getRoleId)
+ );
+ Integer realNum = CollUtil.isEmpty(yhAiMembers) ? 0 : yhAiMembers.size();
+ log.info("公司会员数:{}", realNum);
+ log.info("公司会员数:{}", memberNum);
+ log.info("公司会员数:{}", realNum >= memberNum);
+ if (realNum >= memberNum){
+ throw new FebsException("公司会员已满");
+ }
+
companyId = aiCompany.getId();
}
+ entity.setCompanyId(companyId);
}
- mallMember.setCompanyId(companyId);
- this.baseMapper.updateById(mallMember);
+ yhAiMemberMapper.updateById(entity);
- String memberUuid = mallMember.getMemberUuid();
- AiMember aiMember = aiMemberService.getById(memberUuid);
- if (ObjectUtil.isNotEmpty(aiMember) && StrUtil.isNotEmpty(mallMember.getCompanyId())){
- aiMemberService.update(null,
- Wrappers.lambdaUpdate(AiMember.class)
- .set(AiMember::getCompanyId, mallMember.getCompanyId())
- .eq(AiMember::getId, aiMember.getId())
- );
- }
-
-
-// //完善信息赠送新人礼
-// if (StrUtil.isNotBlank(mallMember.getPhone()) && mallMember.getNewGift() == 0) {
-// DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-// CommonDictionaryEnum.NEW_GIFT_SETTING.getType(),
-// CommonDictionaryEnum.NEW_GIFT_SETTING.getCode()
-// );
-// mallMember.setNewGift(1);
-// this.baseMapper.updateById(mallMember);
-//
-// ApiNewGiftSettingDto apiNewGiftSettingDto = JSONObject.parseObject(dic.getValue(), ApiNewGiftSettingDto.class);
-// if (apiNewGiftSettingDto.getState() == 1) {
-// String prizeScore = apiNewGiftSettingDto.getPrizeScore();
-// BigDecimal bigDecimal = new BigDecimal(prizeScore).setScale(0, RoundingMode.HALF_DOWN);
-// if (bigDecimal.compareTo(BigDecimal.ZERO) > 0) {
-// walletService.add(bigDecimal, mallMember.getId(), "prizeScore");
-// mallMoneyFlowService.addMoneyFlow(
-// mallMember.getId(),
-// bigDecimal,
-// ScoreFlowTypeEnum.MEMBER_INFO_GIFT.getValue(),
-// MallUtils.getOrderNum(),
-// FlowTypeEnum.PRIZE_SCORE.getValue(),
-// StrUtil.format(ScoreFlowTypeEnum.MEMBER_INFO_GIFT.getDesc(),bigDecimal),
-// 2
-// );
-// }
-// if (apiNewGiftSettingDto.getCouponId() != null) {
-// MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(apiNewGiftSettingDto.getCouponId());
-// if(ObjectUtil.isNotEmpty(mallGoodsCoupon)){
-// MallMemberCoupon memberCoupon = new MallMemberCoupon();
-// memberCoupon.setCouponId(mallGoodsCoupon.getId());
-// memberCoupon.setCouponName(mallGoodsCoupon.getName());
-// memberCoupon.setInviteId(mallMember.getInviteId());
-// memberCoupon.setCouponUuid(IdUtil.simpleUUID());
-// memberCoupon.setState(1);
-// memberCoupon.setFromType(3);
-// memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), mallGoodsCoupon.getExpireDay()));
-// memberCoupon.setMemberId(mallMember.getId());
-// mallMemberCouponMapper.insert(memberCoupon);
-// }
-// }
-//
-// }
-// }
return new FebsResponse().success();
}
@@ -2194,6 +2128,13 @@
return new FebsResponse().success().message("操作成功");
}
+ @Override
+ public FebsResponse getCompanyCode() {
+
+ String companyCode = yhAiCompanyMapper.selectDictLabel("xcx_register_default","default");
+ return new FebsResponse().success().data(companyCode);
+ }
+
// public static void main(String[] args) {
// Long userld = 16425L;
// String shopAccount = "爱和美医疗";
--
Gitblit v1.9.1