记得上下班打卡 | git大法好,push需谨慎

Commit 19fb4631 authored by wangyifan's avatar wangyifan

福袋功能-优化结构

parent 90f404b9
...@@ -9,15 +9,12 @@ import com.liquidnet.commons.lang.util.DateUtil; ...@@ -9,15 +9,12 @@ import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagVo; import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.OrderDetailsVo; import com.liquidnet.service.kylin.dto.vo.returns.OrderDetailsVo;
import com.liquidnet.service.kylin.entity.KylinLuckyBag; import com.liquidnet.service.kylin.entity.KylinLuckyBag;
import com.liquidnet.service.kylin.entity.KylinLuckyBagActivity; import com.liquidnet.service.kylin.entity.KylinLuckyBagActivity;
import com.liquidnet.service.kylin.entity.KylinRewardCode; import com.liquidnet.service.kylin.entity.KylinRewardCode;
import com.liquidnet.service.kylin.entity.KylinRewardUser; import com.liquidnet.service.kylin.entity.KylinRewardUser;
import com.liquidnet.service.kylin.mapper.KylinBrandsMapper;
import com.liquidnet.service.kylin.mapper.KylinLuckyBagMapper;
import com.liquidnet.service.kylin.mapper.KylinRewardCodeMapper; import com.liquidnet.service.kylin.mapper.KylinRewardCodeMapper;
import com.liquidnet.service.kylin.mapper.KylinRewardUserMapper; import com.liquidnet.service.kylin.mapper.KylinRewardUserMapper;
import com.liquidnet.service.kylin.service.IFeishuBotService; import com.liquidnet.service.kylin.service.IFeishuBotService;
...@@ -51,10 +48,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService { ...@@ -51,10 +48,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
@Autowired @Autowired
private IFeishuBotService iFeishuBotService; private IFeishuBotService iFeishuBotService;
@Autowired
private KylinLuckyBagMapper kylinLuckyBagMapper;
@Autowired
private KylinBrandsMapper kylinBrandsMapper;
@Autowired @Autowired
private KylinRewardCodeMapper kylinRewardCodeMapper; private KylinRewardCodeMapper kylinRewardCodeMapper;
@Autowired @Autowired
...@@ -111,7 +104,7 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService { ...@@ -111,7 +104,7 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
.filter(luckyBag -> performanceId.equals(luckyBag.getPerformanceId())) .filter(luckyBag -> performanceId.equals(luckyBag.getPerformanceId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
List<KylinLuckyBagVo.LuckyBagVo> activityVos = new ArrayList<>(); List<KylinLuckyBagVo.LuckyBagVo> activityVos = new ArrayList<>(filteredList.size());
filteredList.forEach(l -> { filteredList.forEach(l -> {
KylinLuckyBagVo.LuckyBagVo luckyBagVo = new KylinLuckyBagVo.LuckyBagVo(); KylinLuckyBagVo.LuckyBagVo luckyBagVo = new KylinLuckyBagVo.LuckyBagVo();
...@@ -169,16 +162,18 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService { ...@@ -169,16 +162,18 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
} }
final int limitTotal = vo.getOrderTicketVo().getNumber(); final int limitTotal = vo.getOrderTicketVo().getNumber();
final KylinOrderTicketVo orderTicketVo = vo.getOrderTicketVo();
if (limitTotal <= 0) { if (limitTotal <= 0) {
log.error("[getRandomRewardCode] 用户订单购买数量错误, orderId: {}.", vo.getOrderTicketVo().getOrderTicketsId()); log.error("[getRandomRewardCode] 用户订单购买数量错误, orderId: {}.", orderTicketVo.getOrderTicketsId());
return Collections.emptyList(); return Collections.emptyList();
} }
LambdaQueryWrapper<KylinRewardCode> lambdaQueryWrapper = new QueryWrapper<KylinRewardCode>().lambda() LambdaQueryWrapper<KylinRewardCode> lambdaQueryWrapper = new QueryWrapper<KylinRewardCode>().lambda()
.eq(KylinRewardCode::getLuckyBagId, luckyBagId) .eq(KylinRewardCode::getLuckyBagId, luckyBagId)
.eq(KylinRewardCode::getState, 1) .eq(KylinRewardCode::getState, 1)
.last(true, "ORDER BY RAND() limit " + limitTotal); // .last(true, "ORDER BY RAND() limit " + limitTotal); // 随机搜索
.last(true, " limit " + limitTotal);
//2. 搜索兑换码 //2. 搜索兑换码
List<KylinRewardCode> rewardCodes = kylinRewardCodeMapper.selectList(lambdaQueryWrapper); List<KylinRewardCode> rewardCodes = kylinRewardCodeMapper.selectList(lambdaQueryWrapper);
...@@ -197,23 +192,19 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService { ...@@ -197,23 +192,19 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
rewardCode.setState(0); rewardCode.setState(0);
int updateResult = kylinRewardCodeMapper.updateById(rewardCode); int updateResult = kylinRewardCodeMapper.updateById(rewardCode);
if (updateResult > 0) { if (updateResult > 0) {
KylinRewardUser user = new KylinRewardUser(); KylinRewardUser user = buildRewardUser(orderTicketVo.getUserId(),
user.setUid(vo.getOrderTicketVo().getUserId()); orderTicketVo.getOrderTicketsId(),
user.setLuckyBagId(luckyBagId); luckyBagId,
user.setOrderId(vo.getOrderTicketVo().getOrderTicketsId()); orderTicketVo.getEntitiesVoList().get(i).getOrderTicketEntitiesId(),
user.setOrderTicketEntitiesId(vo.getOrderTicketVo().getEntitiesVoList().get(i).getOrderTicketEntitiesId()); rewardCode.getCode());
user.setCode(rewardCode.getCode());
user.setState(1);
user.setCreatedAt(LocalDateTime.now());
user.setUpdatedAt(LocalDateTime.now());
kylinRewardUserMapper.insert(user); kylinRewardUserMapper.insert(user);
rewardUsers.add(user); rewardUsers.add(user);
log.info("[getRandomRewardCode] 兑换码分配成功, luckyBagId: {}, orderId: {}, code: {}.", luckyBagId, vo.getOrderTicketVo().getOrderTicketsId(), rewardCode.getCode()); log.info("[getRandomRewardCode] 兑换码分配成功, luckyBagId: {}, orderId: {}, code: {}.", luckyBagId, orderTicketVo.getOrderTicketsId(), rewardCode.getCode());
} else { } else {
log.error("[getRandomRewardCode] 兑换码分配失败, luckyBagId: {}, orderId: {}.", luckyBagId, vo.getOrderTicketVo().getOrderTicketsId()); log.error("[getRandomRewardCode] 兑换码分配失败, luckyBagId: {}, orderId: {}.", luckyBagId, orderTicketVo.getOrderTicketsId());
// 报警 // 报警
String msg = String.format("福袋ID [%s] 分配兑换码失败:用户ID [%s] 的订单ID [%s] 已分配了 [%s] 个,应分配 [%s] 个。", String msg = String.format("福袋ID [%s] 分配兑换码失败:用户ID [%s] 的订单ID [%s] 已分配了 [%s] 个,应分配 [%s] 个。",
luckyBagId, vo.getOrderTicketVo().getUserId(), vo.getOrderTicketVo().getOrderTicketsId(), rewardUsers.size(), limitTotal); luckyBagId, orderTicketVo.getUserId(), orderTicketVo.getOrderTicketsId(), rewardUsers.size(), limitTotal);
iFeishuBotService.sendTextMessage(msg); iFeishuBotService.sendTextMessage(msg);
} }
} }
...@@ -228,31 +219,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService { ...@@ -228,31 +219,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
} }
} }
public List<KylinRewardUser> assignRewardCodesToUser(String uid,
String orderId,
String luckyBagId,
List<KylinRewardCode> rewardCodes,
List<KylinOrderTicketEntitiesVo> entities) {
List<KylinRewardUser> rewardUsers = new ArrayList<>();
for (int i = 0; i < rewardCodes.size(); i++) {
KylinRewardCode rewardCode = rewardCodes.get(i);
rewardCode.setState(0);
if (kylinRewardCodeMapper.updateById(rewardCode) > 0) {
KylinRewardUser user = buildRewardUser(uid, orderId, luckyBagId, entities.get(i).getOrderTicketEntitiesId(), rewardCode.getCode());
kylinRewardUserMapper.insert(user);
rewardUsers.add(user);
log.info("[assignRewardCodesToUser] 分配成功, luckyBagId: {}, orderId: {}, code: {}", luckyBagId, orderId, rewardCode.getCode());
} else {
log.error("[assignRewardCodesToUser] 分配失败, luckyBagId: {}, orderId: {}", luckyBagId, orderId);
String msg = String.format("福袋ID [%s] 分配兑换码失败:用户ID [%s] 的订单ID [%s] 已分配 [%s] 个,应分配 [%s] 个。",
luckyBagId, uid, orderId, rewardUsers.size(), rewardCodes.size());
iFeishuBotService.sendTextMessage(msg);
}
}
return rewardUsers;
}
private KylinRewardUser buildRewardUser(String uid, String orderId, String luckyBagId, String orderTicketEntitiesId, String code) { private KylinRewardUser buildRewardUser(String uid, String orderId, String luckyBagId, String orderTicketEntitiesId, String code) {
KylinRewardUser user = new KylinRewardUser(); KylinRewardUser user = new KylinRewardUser();
user.setUid(uid); user.setUid(uid);
...@@ -266,14 +232,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService { ...@@ -266,14 +232,6 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
return user; return user;
} }
private List<KylinRewardCode> getAvailableRewardCodes(String luckyBagId, int limitTotal) {
LambdaQueryWrapper<KylinRewardCode> wrapper = new QueryWrapper<KylinRewardCode>().lambda()
.eq(KylinRewardCode::getLuckyBagId, luckyBagId)
.eq(KylinRewardCode::getState, 1)
.last(true, "ORDER BY RAND() LIMIT " + limitTotal);
return kylinRewardCodeMapper.selectList(wrapper);
}
/** /**
* 获取福袋活动列表 * 获取福袋活动列表
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment