shopUserService额外处理
This commit is contained in:
@@ -35,6 +35,7 @@ import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -48,28 +49,28 @@ import java.util.List;
|
||||
* @since 2025-02-08
|
||||
*/
|
||||
@Slf4j
|
||||
@DubboService
|
||||
@Service
|
||||
public class AShopUserServiceImpl implements AShopUserService {
|
||||
@Resource
|
||||
private ShopUserService shopUserService;
|
||||
@Resource
|
||||
private ShopUserMapper shopUserMapper;
|
||||
@Resource
|
||||
private ShopInfoService shopInfoService;
|
||||
@Resource
|
||||
private UserInfoService userInfoService;
|
||||
@DubboReference
|
||||
private SysParamsService sysParamsService;
|
||||
@DubboReference
|
||||
private OrderInfoService orderInfoService;
|
||||
@Resource
|
||||
private UserInfoService userInfoService;
|
||||
@DubboReference
|
||||
private MkShopCouponRecordService couponRecordService;
|
||||
@Resource
|
||||
private ShopInfoService shopInfoService;
|
||||
@DubboReference
|
||||
private MemberLevelConfigService memberLevelConfigService;
|
||||
@DubboReference
|
||||
private TbMemberConfigService memberConfigService;
|
||||
@DubboReference
|
||||
private MkShopConsumeDiscountRecordService consumeDiscountService;
|
||||
// @DubboReference
|
||||
// private MkShopConsumeDiscountRecordService consumeDiscountService;
|
||||
|
||||
private ShopUser getUserInfo(Long shopUserId) {
|
||||
ShopUser shopUser = shopUserService.queryChain().eq(ShopUser::getId, shopUserId).one();
|
||||
@@ -136,15 +137,6 @@ public class AShopUserServiceImpl implements AShopUserService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ShopUser> getPushEventUserList(SmsPushEventUser smsPushEventUser) {
|
||||
Long mainShopId = shopInfoService.getMainIdByShopId(smsPushEventUser.getShopId());
|
||||
smsPushEventUser.checkIsAll();
|
||||
// 调用Mapper层查询
|
||||
List<ShopUser> shopUsers = shopUserMapper.selectPushEventUser(mainShopId,
|
||||
smsPushEventUser.getShopId(), smsPushEventUser);
|
||||
return shopUsers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateInfo(Long shopId, ShopUserEditDTO shopUserEditDTO) {
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.czg.service.account.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.czg.account.dto.shopuser.ShopUserAddDTO;
|
||||
import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO;
|
||||
import com.czg.account.entity.ShopUser;
|
||||
import com.czg.account.entity.ShopUserFlow;
|
||||
@@ -13,11 +15,16 @@ import com.czg.account.service.UserInfoService;
|
||||
import com.czg.enums.ShopUserFlowBizEnum;
|
||||
import com.czg.exception.CzgException;
|
||||
import com.czg.market.entity.MemberLevelConfig;
|
||||
import com.czg.market.entity.SmsPushEventUser;
|
||||
import com.czg.market.service.MemberLevelConfigService;
|
||||
import com.czg.market.service.OrderInfoService;
|
||||
import com.czg.market.service.TbMemberConfigService;
|
||||
import com.czg.market.vo.InviteUserVO;
|
||||
import com.czg.market.vo.MemberConfigVO;
|
||||
import com.czg.order.entity.OrderInfo;
|
||||
import com.czg.service.account.mapper.ShopUserMapper;
|
||||
import com.czg.system.entity.SysParams;
|
||||
import com.czg.system.service.SysParamsService;
|
||||
import com.czg.utils.PageUtil;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
@@ -51,9 +58,13 @@ public class ShopUserServiceImpl extends ServiceImpl<ShopUserMapper, ShopUser> i
|
||||
@Resource
|
||||
private ShopInfoService shopInfoService;
|
||||
@DubboReference
|
||||
private OrderInfoService orderInfoService;
|
||||
@DubboReference
|
||||
private MemberLevelConfigService memberLevelConfigService;
|
||||
@DubboReference
|
||||
private TbMemberConfigService memberConfigService;
|
||||
@DubboReference
|
||||
private SysParamsService sysParamsService;
|
||||
|
||||
private ShopUser getUserInfo(Long shopUserId) {
|
||||
ShopUser shopUser = queryChain().eq(ShopUser::getId, shopUserId).one();
|
||||
@@ -181,4 +192,97 @@ public class ShopUserServiceImpl extends ServiceImpl<ShopUserMapper, ShopUser> i
|
||||
public void updateOneOrTwoAmount(Long shopUserId, Long shopId, BigDecimal bigDecimal, Integer isOne) {
|
||||
mapper.updateOneOrTwoAmount(shopUserId, shopId, bigDecimal, isOne);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<ShopUser> getPushEventUserList(SmsPushEventUser smsPushEventUser) {
|
||||
Long mainShopId = shopInfoService.getMainIdByShopId(smsPushEventUser.getShopId());
|
||||
smsPushEventUser.checkIsAll();
|
||||
// 调用Mapper层查询
|
||||
List<ShopUser> shopUsers = mapper.selectPushEventUser(mainShopId,
|
||||
smsPushEventUser.getShopId(), smsPushEventUser);
|
||||
return shopUsers;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean join(Long shopId, Long userId, ShopUserAddDTO shopUserAddDTO) {
|
||||
Long mainId = shopInfoService.getMainIdByShopId(shopId);
|
||||
// 当前用户信息
|
||||
UserInfo userInfo = userInfoService.getById(userId);
|
||||
ShopUser shopUser = getShopUserInfo(shopId, userId);
|
||||
|
||||
// 查询系统添加的会员
|
||||
UserInfo oriInfo = userInfoService.getOne(new QueryWrapper().eq(UserInfo::getPhone, shopUserAddDTO.getPhone()));
|
||||
if (oriInfo != null && !oriInfo.getId().equals(userId)) {
|
||||
// 迁移订单
|
||||
OrderInfo orderInfo = new OrderInfo();
|
||||
orderInfo.setUserId(userId);
|
||||
orderInfoService.update(orderInfo, new QueryWrapper().eq(OrderInfo::getUserId, oriInfo.getId()));
|
||||
// 删除多余用户信息
|
||||
userInfoService.removeById(oriInfo.getId());
|
||||
BeanUtil.copyProperties(oriInfo, userInfo, "id", "alipayOpenId", "wechatOpenId");
|
||||
|
||||
ShopUser oldUserInfo = getOne(new QueryWrapper().eq(ShopUser::getMainShopId, mainId).eq(ShopUser::getUserId, oriInfo.getId()));
|
||||
if (oldUserInfo != null) {
|
||||
removeById(oldUserInfo.getId());
|
||||
BeanUtil.copyProperties(oldUserInfo, shopUser, "id", "userId");
|
||||
}
|
||||
}
|
||||
|
||||
BeanUtil.copyProperties(shopUserAddDTO, shopUser, "accountPoints", "amount");
|
||||
BeanUtil.copyProperties(shopUserAddDTO, userInfo);
|
||||
userInfoService.updateById(userInfo);
|
||||
if (cn.hutool.core.util.StrUtil.isBlank(shopUser.getCode())) {
|
||||
shopUser.setCode(generateCode(shopId));
|
||||
}
|
||||
if (cn.hutool.core.util.StrUtil.isBlank(shopUser.getBirthDay())) {
|
||||
shopUser.setBirthDay(null);
|
||||
}
|
||||
shopUser.setJoinTime(shopUser.getJoinTime() == null ? DateUtil.date().toLocalDateTime() : shopUser.getJoinTime());
|
||||
|
||||
|
||||
return saveOrUpdate(shopUser);
|
||||
}
|
||||
|
||||
|
||||
public String generateCode(long shopId) {
|
||||
String code = "shop_user_code_val%d".formatted(shopId);
|
||||
SysParams sysParam = sysParamsService.getOne(new QueryWrapper().eq(SysParams::getParamCode, code));
|
||||
|
||||
if (sysParam == null) {
|
||||
SysParams sysParams = new SysParams()
|
||||
.setParamValue("1")
|
||||
.setParamType(1)
|
||||
.setCreateTime(DateUtil.date().toLocalDateTime())
|
||||
.setParamCode(code);
|
||||
sysParamsService.save(sysParams);
|
||||
return generateRandomCode(1);
|
||||
}
|
||||
|
||||
long parseLong = Long.parseLong(sysParam.getParamValue());
|
||||
long l = ++parseLong;
|
||||
sysParam.setParamValue(String.valueOf(l));
|
||||
sysParamsService.updateById(sysParam);
|
||||
|
||||
return generateRandomCode(l);
|
||||
}
|
||||
|
||||
// 使用Hutool生成十六进制代码并随机填充字母
|
||||
private String generateRandomCode(long value) {
|
||||
// 生成十六进制代码,确保为10位
|
||||
String hexCode = String.format("%010X", value);
|
||||
|
||||
// 计算需要补充的字母数量
|
||||
int missingLength = 10 - hexCode.length();
|
||||
StringBuilder codeBuilder = new StringBuilder(hexCode);
|
||||
|
||||
for (int i = 0; i < missingLength; i++) {
|
||||
// 生成随机字母
|
||||
char randomChar = RandomUtil.randomChar("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
|
||||
codeBuilder.append(randomChar);
|
||||
}
|
||||
|
||||
return codeBuilder.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package com.czg.service.account.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.czg.account.dto.shopuser.ShopUserAddDTO;
|
||||
import com.czg.account.dto.shopuser.ShopUserDetailDTO;
|
||||
import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO;
|
||||
@@ -14,14 +12,9 @@ import com.czg.config.RedisCst;
|
||||
import com.czg.exception.CzgException;
|
||||
import com.czg.market.entity.MkShopCouponRecord;
|
||||
import com.czg.market.service.MkShopCouponRecordService;
|
||||
import com.czg.market.service.TbMemberConfigService;
|
||||
import com.czg.order.entity.OrderInfo;
|
||||
import com.czg.market.service.OrderInfoService;
|
||||
import com.czg.resp.CzgResult;
|
||||
import com.czg.service.RedisService;
|
||||
import com.czg.service.account.mapper.ShopConfigMapper;
|
||||
import com.czg.system.entity.SysParams;
|
||||
import com.czg.system.service.SysParamsService;
|
||||
import com.czg.utils.AssertUtil;
|
||||
import com.czg.utils.JoinQueryWrapper;
|
||||
import com.czg.utils.PageUtil;
|
||||
@@ -29,8 +22,7 @@ import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -41,20 +33,14 @@ import java.util.List;
|
||||
* @author Administrator
|
||||
* @since 2025-02-08
|
||||
*/
|
||||
@DubboService
|
||||
@Service
|
||||
public class UShopUserServiceImpl implements UShopUserService {
|
||||
@Resource
|
||||
private ShopUserService shopUserService;
|
||||
@DubboReference
|
||||
private SysParamsService sysParamsService;
|
||||
@DubboReference
|
||||
private OrderInfoService orderInfoService;
|
||||
@Resource
|
||||
private UserInfoService userInfoService;
|
||||
@Resource
|
||||
private RedisService redisService;
|
||||
@DubboReference
|
||||
private MkShopCouponRecordService couponRecordService;
|
||||
@Resource
|
||||
private ShopInfoService shopInfoService;
|
||||
@Resource
|
||||
@@ -64,7 +50,7 @@ public class UShopUserServiceImpl implements UShopUserService {
|
||||
@Resource
|
||||
private ShopConfigMapper shopConfigMapper;
|
||||
@DubboReference
|
||||
private TbMemberConfigService memberConfigService;
|
||||
private MkShopCouponRecordService couponRecordService;
|
||||
|
||||
@Override
|
||||
public ShopUser getShopUserInfo(Long shopId, long userId) {
|
||||
@@ -89,6 +75,11 @@ public class UShopUserServiceImpl implements UShopUserService {
|
||||
return CzgResult.success(dynamicCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean join(Long shopId, Long userId, ShopUserAddDTO shopUserAddDTO) {
|
||||
return shopUserService.join(shopId, userId, shopUserAddDTO);
|
||||
}
|
||||
|
||||
public String generatePaymentCode(String shopId, String platformNumber) {
|
||||
// 获取当前毫秒时间戳的后四位
|
||||
String date = String.format("%04d", System.currentTimeMillis() % 10000);
|
||||
@@ -104,88 +95,6 @@ public class UShopUserServiceImpl implements UShopUserService {
|
||||
return date + platformNumber + shopIdLastTwoDigits + randomPart;
|
||||
}
|
||||
|
||||
public String generateCode(long shopId) {
|
||||
String code = "shop_user_code_val%d".formatted(shopId);
|
||||
SysParams sysParam = sysParamsService.getOne(new QueryWrapper().eq(SysParams::getParamCode, code));
|
||||
|
||||
if (sysParam == null) {
|
||||
SysParams sysParams = new SysParams()
|
||||
.setParamValue("1")
|
||||
.setParamType(1)
|
||||
.setCreateTime(DateUtil.date().toLocalDateTime())
|
||||
.setParamCode(code);
|
||||
sysParamsService.save(sysParams);
|
||||
return generateRandomCode(1);
|
||||
}
|
||||
|
||||
long parseLong = Long.parseLong(sysParam.getParamValue());
|
||||
long l = ++parseLong;
|
||||
sysParam.setParamValue(String.valueOf(l));
|
||||
sysParamsService.updateById(sysParam);
|
||||
|
||||
return generateRandomCode(l);
|
||||
}
|
||||
|
||||
// 使用Hutool生成十六进制代码并随机填充字母
|
||||
private String generateRandomCode(long value) {
|
||||
// 生成十六进制代码,确保为10位
|
||||
String hexCode = String.format("%010X", value);
|
||||
|
||||
// 计算需要补充的字母数量
|
||||
int missingLength = 10 - hexCode.length();
|
||||
StringBuilder codeBuilder = new StringBuilder(hexCode);
|
||||
|
||||
for (int i = 0; i < missingLength; i++) {
|
||||
// 生成随机字母
|
||||
char randomChar = RandomUtil.randomChar("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
|
||||
codeBuilder.append(randomChar);
|
||||
}
|
||||
|
||||
return codeBuilder.toString();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean join(Long shopId, Long userId, ShopUserAddDTO shopUserAddDTO) {
|
||||
Long mainId = shopInfoService.getMainIdByShopId(shopId);
|
||||
// 当前用户信息
|
||||
UserInfo userInfo = userInfoService.getById(userId);
|
||||
ShopUser shopUser = shopUserService.getShopUserInfo(shopId, userId);
|
||||
|
||||
// 查询系统添加的会员
|
||||
UserInfo oriInfo = userInfoService.getOne(new QueryWrapper().eq(UserInfo::getPhone, shopUserAddDTO.getPhone()));
|
||||
if (oriInfo != null && !oriInfo.getId().equals(userId)) {
|
||||
// 迁移订单
|
||||
OrderInfo orderInfo = new OrderInfo();
|
||||
orderInfo.setUserId(userId);
|
||||
orderInfoService.update(orderInfo, new QueryWrapper().eq(OrderInfo::getUserId, oriInfo.getId()));
|
||||
// 删除多余用户信息
|
||||
userInfoService.removeById(oriInfo.getId());
|
||||
BeanUtil.copyProperties(oriInfo, userInfo, "id", "alipayOpenId", "wechatOpenId");
|
||||
|
||||
ShopUser oldUserInfo = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getMainShopId, mainId).eq(ShopUser::getUserId, oriInfo.getId()));
|
||||
if (oldUserInfo != null) {
|
||||
shopUserService.removeById(oldUserInfo.getId());
|
||||
BeanUtil.copyProperties(oldUserInfo, shopUser, "id", "userId");
|
||||
}
|
||||
}
|
||||
|
||||
BeanUtil.copyProperties(shopUserAddDTO, shopUser, "accountPoints", "amount");
|
||||
BeanUtil.copyProperties(shopUserAddDTO, userInfo);
|
||||
userInfoService.updateById(userInfo);
|
||||
if (StrUtil.isBlank(shopUser.getCode())) {
|
||||
shopUser.setCode(generateCode(shopId));
|
||||
}
|
||||
if (StrUtil.isBlank(shopUser.getBirthDay())) {
|
||||
shopUser.setBirthDay(null);
|
||||
}
|
||||
shopUser.setJoinTime(shopUser.getJoinTime() == null ? DateUtil.date().toLocalDateTime() : shopUser.getJoinTime());
|
||||
|
||||
|
||||
return shopUserService.saveOrUpdate(shopUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShopUserDetailDTO getInfo(Long shopId, long userId) {
|
||||
Long mainId = shopInfoService.getMainIdByShopId(shopId);
|
||||
|
||||
Reference in New Issue
Block a user