From aec323b302fdc60429ecf8944e40ebae1a85a7fa Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 12 一月 2024 14:18:53 +0800
Subject: [PATCH] 修改bug和新增加功能
---
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 156 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 128 insertions(+), 28 deletions(-)
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 53b0c25..9a9745d 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -47,6 +47,7 @@
import com.ruoyi.system.api.constant.DelayTaskEnum;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.api.domain.dto.*;
+import com.ruoyi.system.api.domain.poji.activity.Activity;
import com.ruoyi.system.api.domain.poji.activity.ActivityRecord;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.goods.Goods;
@@ -64,6 +65,7 @@
import lombok.extern.log4j.Log4j2;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -1354,11 +1356,104 @@
//处理订单回显
for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) {
if(member.getBindingFlag()==0&&appUserOrderPageVo.getOrderFrom()==2){
- appUserOrderPageVo.setShopName("全部店铺");
+ //查询秒杀活动的参与店铺
+ R<Activity> activity = remoteActivityService.getActivity(appUserOrderPageVo.getActivityId());
+ if(activity.getCode() != 200){
+ throw new RuntimeException(activity.getMsg());
+ }
+ Activity data = activity.getData();
+ if(data.getAreaFlag() == 1){
+ appUserOrderPageVo.setShopNumber(0);
+ appUserOrderPageVo.setShopName("全部店铺");
+ }
+ if(data.getAreaFlag() == 2 && data.getShopFlag() == 1){
+ String designatedArea = data.getDesignatedArea();
+ String[] split = designatedArea.split(",");
+ List<String> list = Arrays.asList(split);
+ R<List<Shop>> listR = remoteShopService.listShopByCityCode(list);
+ if(listR.getCode() != 200){
+ throw new RuntimeException(listR.getMsg());
+ }
+ List<Shop> data1 = listR.getData();
+ appUserOrderPageVo.setShopNumber(1);
+ appUserOrderPageVo.setShopName(JSON.toJSONString(data1));
+ }
+ if(data.getShopFlag() == 2){
+ String applicableShop = data.getApplicableShop();
+ String[] split = applicableShop.split(",");
+ List<String> list = Arrays.asList(split);
+ R<List<Shop>> listR = remoteShopService.listShopByIds(list);
+ if(listR.getCode() != 200){
+ throw new RuntimeException(listR.getMsg());
+ }
+ List<Shop> data1 = listR.getData();
+ appUserOrderPageVo.setShopNumber(1);
+ appUserOrderPageVo.setShopName(JSON.toJSONString(data1));
+ }
+ }else if(member.getBindingFlag()==1&&appUserOrderPageVo.getOrderFrom()==2){
+ Long relationShopId = member.getRelationShopId();
+ R<Shop> shop = remoteShopService.getShop(relationShopId);
+ if(shop.getCode() != 200){
+ throw new RuntimeException(shop.getMsg());
+ }
+ Shop data1 = shop.getData();
+ //查询秒杀活动的参与店铺
+ R<Activity> activity = remoteActivityService.getActivity(appUserOrderPageVo.getActivityId());
+ if(activity.getCode() != 200){
+ throw new RuntimeException(activity.getMsg());
+ }
+ Activity data = activity.getData();
+ if(data.getAreaFlag() == 1){
+ appUserOrderPageVo.setShopNumber(2);
+ appUserOrderPageVo.setShopName(data1.getShopName());
+ appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+ }
+ if(data.getAreaFlag() == 2 && data.getShopFlag() == 1){
+ String designatedArea = data.getDesignatedArea();
+ String[] split = designatedArea.split(",");
+ List<String> list = Arrays.asList(split);
+ R<List<Shop>> listR = remoteShopService.listShopByCityCode(list);
+ if(listR.getCode() != 200){
+ throw new RuntimeException(listR.getMsg());
+ }
+ List<Shop> data2 = listR.getData();
+ List<Long> collect = data2.stream().map(Shop::getShopId).collect(Collectors.toList());
+ if(collect.contains(relationShopId)){
+ appUserOrderPageVo.setShopNumber(2);
+ appUserOrderPageVo.setShopName(data1.getShopName());
+ appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+ }else{
+ appUserOrderPageVo.setShopNumber(1);
+ appUserOrderPageVo.setShopName(JSON.toJSONString(data2));
+ }
+ }
+ if(data.getShopFlag() == 2){
+ String applicableShop = data.getApplicableShop();
+ String[] split = applicableShop.split(",");
+ List<String> list = Arrays.asList(split);
+ R<List<Shop>> listR = remoteShopService.listShopByIds(list);
+ if(listR.getCode() != 200){
+ throw new RuntimeException(listR.getMsg());
+ }
+ List<Shop> data2 = listR.getData();
+ List<Long> collect = data2.stream().map(Shop::getShopId).collect(Collectors.toList());
+ if(collect.contains(relationShopId)){
+ appUserOrderPageVo.setShopNumber(2);
+ appUserOrderPageVo.setShopName(data1.getShopName());
+ appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+ }else{
+ appUserOrderPageVo.setShopNumber(1);
+ appUserOrderPageVo.setShopName(JSON.toJSONString(data2));
+ }
+ }
+
+
+
}else{
simpleShopVo = shopMap.get(appUserOrderPageVo.getShopId());
appUserOrderPageVo.setShopName(simpleShopVo.getShopName());
appUserOrderPageVo.setShopServicePhone(simpleShopVo.getShopServicePhone());
+ appUserOrderPageVo.setShopNumber(2);
if (appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())) {
appUserOrderPageVo.setSameShop(1);
} else {
@@ -1556,20 +1651,10 @@
//判断用户是否绑定
if(member.getBindingFlag()==1){
//绑定用户判断核销商户
- if(order.getOrderFrom()==2&&order.getUnbindingFlag()==1){
- if (!member.getRelationShopId().equals(shopId)) {
- throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
- }
- //未绑定时下的活动订单只需要判断店铺是否支持
- String activityId = order.getActivityId();
- MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
- merActivityShopDto.setShopId(shopId);
- merActivityShopDto.setActivityId(activityId);
- Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
- if(!judge){
- throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
- }
- }else{
+ if (order.getOrderFrom()==2&&!member.getRelationShopId().equals(shopId)) {
+ throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+ }
+ if(order.getOrderFrom() == 1){
//商城订单和绑定后活动订单判断核销商户和订单商户和用户关联商户是否统一
if (!order.getShopId().equals(shopId)) {
throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
@@ -1707,12 +1792,16 @@
//获取核销商户
ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyOrderDto.getUserId()).getData();
Long shopId = shopRelUserVo.getShopId();
+ log.info("当前核销员工【" + shopRelUserVo.getUserName() + "】门店ID:" + shopId);
//获取订单商品列表
List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
//绑定用户判断核销商户
if(member.getBindingFlag()==1){
//未绑定的活动订单只需要判断店铺是否支持
- if(order.getOrderFrom()==2&&order.getUnbindingFlag()==1){
+ if(order.getOrderFrom()==2 && !member.getRelationShopId().equals(shopId)){
+ throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+ }
+ if(order.getOrderFrom()==2 && member.getRelationShopId().equals(shopId)){
String activityId = order.getActivityId();
MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
merActivityShopDto.setShopId(shopId);
@@ -1720,11 +1809,6 @@
Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
if(!judge){
throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
- }
- }else{
- //绑定用户需直接判断商户一致
- if (!order.getShopId().equals(shopId)) {
- throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
}
}
}else{
@@ -2890,7 +2974,7 @@
// 根据用户ID列表获取用户信息
MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
mgtBaseBathDto.setIds(userIdSj.toString());
- List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+ List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userIdSj.toString()).getData();
Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
.collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
// 遍历订单列表,设置用户信息
@@ -3050,13 +3134,14 @@
.collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
mgtBaseBathDto = new MgtBaseBathDto();
mgtBaseBathDto.setIds(userJoinedString);
- List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+ List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData();
Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
.collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
// 遍历列表,设置店铺名称、用户名称和未支付金额
for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) {
if(mgtActivityOrderPageVo.getShopId()!=null){
- mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName());
+ MgtSimpleShopVo mgtSimpleShopVo = shopMap.get(mgtActivityOrderPageVo.getShopId());
+ mgtActivityOrderPageVo.setShopName(null == mgtSimpleShopVo ? "" : mgtSimpleShopVo.getShopName());
}
if (userMap.get(mgtActivityOrderPageVo.getUserId()) != null) {
@@ -3175,7 +3260,7 @@
String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList()));
MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
mgtBaseBathDto.setIds(userJoinedString);
- List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+ List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData();
userMap = simpleMemberVoList.stream()
.collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
}
@@ -3888,6 +3973,7 @@
mgtTotalOrderTotalVo.setCycleTotal(0);
mgtTotalOrderTotalVo.setExperienceTotal(0);
mgtTotalOrderTotalVo.setServiceTotal(0);
+ mgtTotalOrderTotalVo.setItemTotal(0);
mgtTotalOrderTotalVo.setOrderMoney(new BigDecimal("0"));
mgtTotalOrderTotalVo.setOnlineMoney(new BigDecimal("0"));
mgtTotalOrderTotalVo.setOfflineMoney(new BigDecimal("0"));
@@ -3895,6 +3981,7 @@
mgtTotalOrderTotalVo.setCycleMoney(new BigDecimal("0"));
mgtTotalOrderTotalVo.setExperienceMoney(new BigDecimal("0"));
mgtTotalOrderTotalVo.setServiceMoney(new BigDecimal("0"));
+ mgtTotalOrderTotalVo.setItemMoney(new BigDecimal("0"));
mgtTotalOrderTotalVo.setOrderTotalKey(new String[0]);
mgtTotalOrderTotalVo.setOrderTotalValue(new Integer[0]);
mgtTotalOrderTotalVo.setOrderMoneyValue(new BigDecimal[0]);
@@ -3918,7 +4005,7 @@
mgtTotalOrderTotalVo.setOrderTotal(totalOrderTotalVo.getOrderTotal());
mgtTotalOrderTotalVo.setOnlineTotal(totalOrderTotalVo.getOnlineTotal());
mgtTotalOrderTotalVo.setOfflineTotal(totalOrderTotalVo.getOfflineTotal());
- mgtTotalOrderTotalVo.setActivityTotal(0);
+ mgtTotalOrderTotalVo.setActivityTotal(totalOrderTotalVo.getActivityTotal());
mgtTotalOrderTotalVo.setOrderMoney(totalOrderTotalVo.getOrderMoney());
mgtTotalOrderTotalVo.setOnlineMoney(totalOrderTotalVo.getOnlineMoney());
mgtTotalOrderTotalVo.setOfflineMoney(totalOrderTotalVo.getOfflineMoney());
@@ -3931,6 +4018,8 @@
mgtTotalOrderTotalVo.setCycleMoney(BigDecimal.ZERO);
mgtTotalOrderTotalVo.setServiceTotal(0);
mgtTotalOrderTotalVo.setServiceMoney(BigDecimal.ZERO);
+ mgtTotalOrderTotalVo.setItemTotal(0);
+ mgtTotalOrderTotalVo.setItemMoney(BigDecimal.ZERO);
mgtTotalOrderTotalVo.setExperienceTotal(0);
mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO);
if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
@@ -3967,6 +4056,8 @@
} else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
mgtMapIntTotalVo.setMapKey("单品");
mgtMapBigTotalVo.setMapKey("单品");
+ mgtTotalOrderTotalVo.setItemTotal(mgtTotalOrderTotalVo.getItemTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+ mgtTotalOrderTotalVo.setItemMoney(mgtTotalOrderTotalVo.getItemMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
noGoods = false;
}
goodsTypeTotalList.add(mgtMapIntTotalVo);
@@ -5053,7 +5144,7 @@
String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList()));
MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
mgtBaseBathDto.setIds(userJoinedString);
- List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+ List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData();
userMap = simpleMemberVoList.stream()
.collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
}
@@ -5113,6 +5204,9 @@
try {
redissonLock.lock(30, TimeUnit.SECONDS);
Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId());
+ if(null == surpNum){
+ surpNum = 0;
+ }
redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId(), surpNum + orderGoods.getBuyNum());
} finally {
redissonLock.unlock();
@@ -5374,6 +5468,9 @@
try {
redissonLock.lock(30, TimeUnit.SECONDS);
Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId());
+ if(null == surpNum){
+ surpNum = 0;
+ }
redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId(), surpNum + orderGoods.getBuyNum());
} finally {
redissonLock.unlock();
@@ -6107,6 +6204,9 @@
try {
redissonLock.lock(30, TimeUnit.SECONDS);
Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId());
+ if(null == surpNum){
+ surpNum = 0;
+ }
redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId(), surpNum + orderGoods.getBuyNum());
} finally {
redissonLock.unlock();
@@ -6186,7 +6286,7 @@
// 获取用户列表
MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
mgtBaseBathDto.setIds(userIdSj.toString());
- List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+ List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userIdSj.toString()).getData();
// 将用户列表转换为Map,以便根据用户ID快速查找用户信息
Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
.collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
--
Gitblit v1.7.1