From 1af77abfa06a1a0d537bb120ae0c362aae9d3b83 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期三, 30 七月 2025 10:14:40 +0800
Subject: [PATCH] bug修改
---
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java | 137 ++++++++++++---------------------------------
1 files changed, 38 insertions(+), 99 deletions(-)
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
index 2c0769a..806d05e 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.order.service.impl.order;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.R;
@@ -33,6 +34,8 @@
import com.ruoyi.system.api.service.RemoteMemberService;
import com.ruoyi.system.api.service.RemoteShopService;
import io.seata.spring.annotation.GlobalTransactional;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -51,6 +54,8 @@
*/
@Service
public class ConsumerGoodsServiceImpl extends ServiceImpl<ConsumerGoodsMapper, ConsumerGoods> implements ConsumerGoodsService {
+
+ private Logger log = LoggerFactory.getLogger(ConsumerGoodsServiceImpl.class);
@Resource
private ConsumerGoodsMapper consumerGoodsMapper;
@@ -83,20 +88,29 @@
public List<AppConsumerPageVo> pageUserConsumerGoods(Page page, AppConsumerPageDto appConsumerPageDto){
return consumerGoodsMapper.pageUserConsumerGoods(page, appConsumerPageDto);
}
-
+
/**
* 获取会员服务商品
+ *
* @param merConsumerGoodsDto
* @return
*/
@Override
- public MerConsumerGoodsVo listMerConsumerGoods(MerConsumerGoodsDto merConsumerGoodsDto){
+ public MerConsumerGoodsVo listMerConsumerGoods(MerConsumerGoodsDto merConsumerGoodsDto) {
MerConsumerGoodsVo merConsumerGoodsVo = new MerConsumerGoodsVo();
- if(merConsumerGoodsDto.getGoodsType()==1){
+ if (merConsumerGoodsDto.getGoodsType() == 1) {
List<MerConsumerGoodsListVo> noSureList = consumerGoodsMapper.listMerNoSureConsumerGoods(merConsumerGoodsDto);
merConsumerGoodsVo.setNoSureList(noSureList);
}
List<MerConsumerGoodsListVo> sureList = consumerGoodsMapper.listMerConsumerGoods(merConsumerGoodsDto);
+ Member member = remoteMemberService.getMember(merConsumerGoodsDto.getUserId()).getData();
+ String lastServiceId = member.getLastServiceId();
+ if (StringUtils.isNotEmpty(lastServiceId)) {
+ List<String> list = JSON.parseArray(lastServiceId, String.class);
+ sureList.forEach(s -> {
+ s.setOptionFlag(list.contains(s.getConsumerGoodsId()));
+ });
+ }
merConsumerGoodsVo.setSureList(sureList);
return merConsumerGoodsVo;
}
@@ -117,17 +131,12 @@
ConsumerGoods consumerGoods;
Integer serviceCount = 0;
Integer cycleService = 0;
- //Integer cyclePerson = 0;
Integer serviceService = 0;
- //Integer servicePerson = 0;
Integer experienceService = 0;
- //Integer experiencePerson = 0;
Goods goods;
GoodsFile goodsFile;
String consumerGoodsId;
List<ConsumerGoods> consumerGoodsList = new ArrayList<>();
- //获取用户各类型订单数
- //MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId());
int sureNum = 0;
for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){
goods = remoteGoodsService.getGoods(merSureConsumerGoodsListDto.getGoodsId()).getData();
@@ -175,47 +184,26 @@
}
}
//判断商品确认次数
- if(sureNum>oldConsumerGoods.getSureNum()){
+ if (sureNum > oldConsumerGoods.getSureNum()) {
throw new ServiceException(AppErrorConstant.GOODS_SURE_FAILED);
- }else{
+ } else {
int surpNum = oldConsumerGoods.getSureNum();
surpNum = surpNum - sureNum;
oldConsumerGoods.setSureNum(surpNum);
- if(surpNum==0){
+ if (surpNum == 0) {
oldConsumerGoods.setDelFlag(1);
}
this.saveOrUpdate(oldConsumerGoods);
}
this.saveBatch(consumerGoodsList);
- //判断是否加人
- /*if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) {
- cyclePerson = 1;
- }
- if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) {
- servicePerson = 1;
- }
- if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) {
- experiencePerson = 1;
- }*/
serviceCount = cycleService + serviceService + experienceService;
//更新商户和会员服务统计
MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
- memberTotalChangeDto.setUserId(merSureConsumerGoodsDto.getUserId());
+ memberTotalChangeDto.setUserId(merSureConsumerGoodsDto.getMemberUserId());
memberTotalChangeDto.setTypeService(1);
memberTotalChangeDto.setServiceCount(serviceCount);
+ log.info("更新商户和会员服务统计---》" + memberTotalChangeDto.toString());
remoteMemberService.changeMemberTotal(memberTotalChangeDto);
- /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
- shopTotalChangeDto.setShopId(merSureConsumerGoodsDto.getShopId());
- shopTotalChangeDto.setTypeCycleService(1);
- shopTotalChangeDto.setCycleService(cycleService);
- shopTotalChangeDto.setCyclePerson(cyclePerson);
- shopTotalChangeDto.setTypeServiceService(1);
- shopTotalChangeDto.setServiceService(serviceService);
- shopTotalChangeDto.setServicePerson(servicePerson);
- shopTotalChangeDto.setTypeExperienceService(1);
- shopTotalChangeDto.setExperienceService(experienceService);
- shopTotalChangeDto.setExperiencePerson(experiencePerson);
- remoteShopService.changeShopTotal(shopTotalChangeDto);*/
}
}
@@ -225,7 +213,7 @@
*/
@Override
@Transactional
- @GlobalTransactional(rollbackFor = Exception.class)
+// @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){
List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList();
if (goodsList != null && !goodsList.isEmpty()) {
@@ -241,19 +229,14 @@
Integer serviceType = 1;
Integer serviceCount = 0;
Integer cycleService = 0;
- //Integer cyclePerson = 0;
Integer serviceService = 0;
- //Integer servicePerson = 0;
Integer experienceService = 0;
- //Integer experiencePerson = 0;
//获取会员商品总数
List<ServiceRecordDetail> serviceRecordDetailList = new ArrayList<>();
ServiceRecordDetail serviceRecordDetail;
- //MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getMemberUserId(), merSureConsumerGoodsDto.getShopId());
List<String> consumerGoodsList = new ArrayList<>();
List<Map<String, Object>> sendData = new ArrayList<>();
for (MerSureConsumerGoodsListDto goodsDto : goodsList) {
- Map<String, Object> map = new HashMap<>();
consumerGoods = this.getById(goodsDto.getConsumerGoodsId());
serviceRecordDetail = new ServiceRecordDetail();
serviceNum = consumerGoods.getServiceNum();
@@ -275,6 +258,7 @@
int number = consumerGoods.getServiceNum() - consumerGoods.getUsedNum();
if(number < 3){
+ Map<String, Object> map = new HashMap<>();
map.put("product", consumerGoods.getGoodsName());
map.put("number", number);
sendData.add(map);
@@ -319,17 +303,6 @@
}
serviceRecordDetailList.add(serviceRecordDetail);
}
-
- //判断是否减人
- /*if (cycleService > 0 && memberGoodsTotal.getCycleOrder() - cycleService < 1) {
- cyclePerson = 1;
- }
- if (serviceService > 0 && memberGoodsTotal.getServiceOrder() - serviceService < 1) {
- servicePerson = 1;
- }
- if (experienceService > 0 && memberGoodsTotal.getExperienceOrder() - experienceService < 1) {
- experiencePerson = 1;
- }*/
serviceCount = cycleService + serviceService + experienceService;
UserServiceRecord serviceRecord = new UserServiceRecord();
serviceRecord.setCreateTime(new Date());
@@ -341,32 +314,26 @@
serviceRecord.setConsumerGoodsNames(goodsNames);
userServiceRecordService.saveOrUpdate(serviceRecord);
//服务记录详情
- for(ServiceRecordDetail serviceRecordDetail1 : serviceRecordDetailList){
+ for (ServiceRecordDetail serviceRecordDetail1 : serviceRecordDetailList) {
serviceRecordDetail1.setRecordId(serviceRecord.getId());
}
serviceRecordDetailService.saveBatch(serviceRecordDetailList);
+
+ //保存本次确认的服务商品id,用于下次进入页面后默认勾选上
+ List<String> collect = goodsList.stream().map(MerSureConsumerGoodsListDto::getConsumerGoodsId).collect(Collectors.toList());
+ Member member = remoteMemberService.getMember(merSureConsumerGoodsDto.getUserId()).getData();
+ member.setLastServiceId(JSON.toJSONString(collect));
+ remoteMemberService.editMember(member);
+
//更新商户和会员服务统计
MemberTotalChangeDto memberTotalChange = new MemberTotalChangeDto();
memberTotalChange.setUserId(merSureConsumerGoodsDto.getMemberUserId());
memberTotalChange.setTypeService(2);
memberTotalChange.setServiceCount(serviceCount);
remoteMemberService.changeMemberTotal(memberTotalChange);
- /*ShopTotalChangeDto shopTotalChange = new ShopTotalChangeDto();
- shopTotalChange.setShopId(merSureConsumerGoodsDto.getShopId());
- shopTotalChange.setTypeCycleService(2);
- shopTotalChange.setCycleService(cycleService);
- shopTotalChange.setCyclePerson(cyclePerson);
- shopTotalChange.setTypeServiceService(2);
- shopTotalChange.setServiceService(serviceService);
- shopTotalChange.setServicePerson(servicePerson);
- shopTotalChange.setTypeExperienceService(2);
- shopTotalChange.setExperienceService(experienceService);
- shopTotalChange.setExperiencePerson(experiencePerson);
- remoteShopService.changeShopTotal(shopTotalChange);*/
- if(!sendData.isEmpty()){
- Member member = remoteMemberService.getMember(userId).getData();
+ if (!sendData.isEmpty()) {
R<Shop> r = remoteShopService.getShop(shopId);
- if(r.getCode() != 200){
+ if (r.getCode() != 200) {
throw new ServiceException(r.getMsg());
}
Shop shop = r.getData();
@@ -376,11 +343,10 @@
Integer number = Integer.valueOf(sendDatum.get("number").toString());
String msg = "{\"name\":\"" + (StringUtils.isEmpty(member.getRealName()) ? member.getNickName() : member.getRealName()) + "\"," +
"\"store\":\"" + shop.getShopName() + "\",\"product\":\"" + product + "\"}";
- if(number == 2){
- MsgUtils.sendMsg(member.getMobile(),"SMS_464376210",msg);
- }
- if(number == 0){
- MsgUtils.sendMsg(member.getMobile(),"SMS_464321234",msg);
+ if (number == 0) {
+ MsgUtils.sendMsg(member.getMobile(), "SMS_464321234", msg);
+ } else {
+ MsgUtils.sendMsg(member.getMobile(), "SMS_464376210", msg);
}
}
@@ -500,14 +466,10 @@
public boolean saveBatchConsumerGoods(List<ConsumerGoods> consumerGoodsList){
Integer serviceCount = 0;
Integer cycleService = 0;
- //Integer cyclePerson = 0;
Integer serviceService = 0;
- //Integer servicePerson = 0;
Integer experienceService = 0;
- //Integer experiencePerson = 0;
Long shopId = consumerGoodsList.get(0).getShopId();
Long userId = consumerGoodsList.get(0).getUserId();
- //MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(userId, shopId);
for(ConsumerGoods consumerGoods : consumerGoodsList){
//处理商品服务次数
switch (consumerGoods.getGoodsType()) {
@@ -530,16 +492,6 @@
break;
}
}
- //判断是否加人
- /*if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) {
- cyclePerson = 1;
- }
- if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) {
- servicePerson = 1;
- }
- if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) {
- experiencePerson = 1;
- }*/
serviceCount = cycleService + serviceService + experienceService;
//更新商户和会员服务统计
MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
@@ -547,19 +499,6 @@
memberTotalChangeDto.setTypeService(1);
memberTotalChangeDto.setServiceCount(serviceCount);
remoteMemberService.changeMemberTotal(memberTotalChangeDto);
- /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
- shopTotalChangeDto.setShopId(shopId);
- shopTotalChangeDto.setOrderType(1);
- shopTotalChangeDto.setTypeCycleService(1);
- shopTotalChangeDto.setCycleService(cycleService);
- shopTotalChangeDto.setCyclePerson(cyclePerson);
- shopTotalChangeDto.setTypeServiceService(1);
- shopTotalChangeDto.setServiceService(serviceService);
- shopTotalChangeDto.setServicePerson(servicePerson);
- shopTotalChangeDto.setTypeExperienceService(1);
- shopTotalChangeDto.setExperienceService(experienceService);
- shopTotalChangeDto.setExperiencePerson(experiencePerson);
- remoteShopService.changeShopTotal(shopTotalChangeDto);*/
return this.saveBatch(consumerGoodsList);
}
}
--
Gitblit v1.7.1