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 | 405 ++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 310 insertions(+), 95 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 84e8d05..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,12 +1,16 @@
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;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.pojo.order.ConsumerGoods;
+import com.ruoyi.order.domain.pojo.order.ServiceRecordDetail;
import com.ruoyi.order.domain.pojo.order.UserServiceRecord;
import com.ruoyi.order.domain.vo.AppConsumerPageVo;
import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo;
@@ -14,17 +18,31 @@
import com.ruoyi.order.domain.vo.MerMemberConsumerGoodsTotalVo;
import com.ruoyi.order.mapper.order.ConsumerGoodsMapper;
import com.ruoyi.order.service.order.ConsumerGoodsService;
+import com.ruoyi.order.service.order.ServiceRecordDetailService;
import com.ruoyi.order.service.order.UserServiceRecordService;
+import com.ruoyi.order.util.MsgUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
+import com.ruoyi.system.api.domain.dto.AppShopGoodsGetDto;
+import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto;
import com.ruoyi.system.api.domain.dto.MemberTotalChangeDto;
-import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto;
+import com.ruoyi.system.api.domain.poji.goods.Goods;
+import com.ruoyi.system.api.domain.poji.goods.GoodsFile;
+import com.ruoyi.system.api.domain.poji.goods.ShopGoods;
+import com.ruoyi.system.api.domain.poji.member.Member;
+import com.ruoyi.system.api.domain.poji.shop.Shop;
+import com.ruoyi.system.api.service.RemoteGoodsService;
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;
import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
/**
* <p>
@@ -36,6 +54,8 @@
*/
@Service
public class ConsumerGoodsServiceImpl extends ServiceImpl<ConsumerGoodsMapper, ConsumerGoods> implements ConsumerGoodsService {
+
+ private Logger log = LoggerFactory.getLogger(ConsumerGoodsServiceImpl.class);
@Resource
private ConsumerGoodsMapper consumerGoodsMapper;
@@ -47,7 +67,16 @@
private RemoteMemberService remoteMemberService;
@Resource
+ private RemoteGoodsService remoteGoodsService;
+
+ @Resource
+ private ServiceRecordDetailService serviceRecordDetailService;
+
+ @Resource
private RemoteShopService remoteShopService;
+
+
+
/**
* 获取用户服务
@@ -59,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;
}
@@ -82,79 +120,104 @@
* @param merSureConsumerGoodsDto
*/
@Override
+ @Transactional
public void sureMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){
+ ConsumerGoods oldConsumerGoods = this.getById(merSureConsumerGoodsDto.getConsumerGoodsId());
+ if(oldConsumerGoods.getSureNum()==null||oldConsumerGoods.getSureNum()<1){
+ throw new ServiceException(AppErrorConstant.GOODS_SURE_FAILED);
+ }
List<MerSureConsumerGoodsListDto> merSureConsumerGoodsListDtoList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList();
if(merSureConsumerGoodsListDtoList!=null && !merSureConsumerGoodsListDtoList.isEmpty()){
ConsumerGoods consumerGoods;
Integer serviceCount = 0;
Integer cycleService = 0;
- Integer cyclePerson = 0;
Integer serviceService = 0;
- Integer servicePerson = 0;
Integer experienceService = 0;
- Integer experiencePerson = 0;
- MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId());
+ Goods goods;
+ GoodsFile goodsFile;
+ String consumerGoodsId;
+ List<ConsumerGoods> consumerGoodsList = new ArrayList<>();
+ int sureNum = 0;
for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){
- consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId());
- consumerGoods.setCycleNumFlag(1);
- consumerGoods.setServiceNum(merSureConsumerGoodsListDto.getServiceNum());
- this.saveOrUpdate(consumerGoods);
- //处理商品服务次数
- switch (consumerGoods.getGoodsType()) {
- case 1:
- cycleService = cycleService + consumerGoods.getServiceNum();
- break;
- case 2:
- serviceService = serviceService + consumerGoods.getServiceNum();
- break;
- case 3:
- experienceService = experienceService + consumerGoods.getServiceNum();
- break;
- default:
- break;
+ goods = remoteGoodsService.getGoods(merSureConsumerGoodsListDto.getGoodsId()).getData();
+ goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData();
+ if(goods!=null&&goods.getGoodsType()==1&&goods.getCycleNumFlag()==1){
+ for(int i=0;i<merSureConsumerGoodsListDto.getGoodsNum();i++){
+ consumerGoods = new ConsumerGoods();
+ consumerGoodsId = IdUtils.simpleUUID();
+ consumerGoods.setConsumerGoodsId(consumerGoodsId);
+ consumerGoods.setDelFlag(0);
+ consumerGoods.setServiceStatus(1);
+ consumerGoods.setShopId(merSureConsumerGoodsDto.getShopId());
+ consumerGoods.setUserId(merSureConsumerGoodsDto.getMemberUserId());
+ consumerGoods.setOrderId(oldConsumerGoods.getOrderId());
+ consumerGoods.setOrderGoodsId(oldConsumerGoods.getOrderGoodsId());
+ consumerGoods.setGoodsId(goods.getGoodsId());
+ consumerGoods.setGoodsName(goods.getGoodsName());
+ consumerGoods.setCycleNumFlag(goods.getCycleNumFlag());
+ consumerGoods.setServiceNum(goods.getServiceNum());
+ consumerGoods.setUsedNum(0);
+ consumerGoods.setCreateTime(new Date());
+ consumerGoods.setGoodsType(goods.getGoodsType());
+ consumerGoods.setGoodsTag(goods.getGoodsTags());
+ consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
+ consumerGoods.setGoodsPicture(goodsFile.getFileUrl());
+ consumerGoods.setGoodsNurses(goods.getGoodsNurses());
+ consumerGoods.setSourceFrom(1);
+ consumerGoodsList.add(consumerGoods);
+ //处理商品服务次数
+ switch (consumerGoods.getGoodsType()) {
+ case 1:
+ cycleService = cycleService + consumerGoods.getServiceNum();
+ break;
+ case 2:
+ serviceService = serviceService + consumerGoods.getServiceNum();
+ break;
+ case 3:
+ experienceService = experienceService + consumerGoods.getServiceNum();
+ break;
+ default:
+ break;
+ }
+ sureNum = sureNum + 1;
+ }
}
}
- //判断是否加人
- if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) {
- cyclePerson = 1;
+ //判断商品确认次数
+ if (sureNum > oldConsumerGoods.getSureNum()) {
+ throw new ServiceException(AppErrorConstant.GOODS_SURE_FAILED);
+ } else {
+ int surpNum = oldConsumerGoods.getSureNum();
+ surpNum = surpNum - sureNum;
+ oldConsumerGoods.setSureNum(surpNum);
+ if (surpNum == 0) {
+ oldConsumerGoods.setDelFlag(1);
+ }
+ this.saveOrUpdate(oldConsumerGoods);
}
- if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) {
- servicePerson = 1;
- }
- if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) {
- experiencePerson = 1;
- }
+ this.saveBatch(consumerGoodsList);
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);
}
}
/**
- * 确认商品次数
+ * 消费服务商品
* @param merSureConsumerGoodsDto
*/
@Override
+ @Transactional
+// @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){
List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList();
if (goodsList != null && !goodsList.isEmpty()) {
- ConsumerGoods goods;
+ ConsumerGoods consumerGoods;
Integer serviceNum;
Integer usedNum;
Integer useNum;
@@ -166,48 +229,58 @@
Integer serviceType = 1;
Integer serviceCount = 0;
Integer cycleService = 0;
- Integer cyclePerson = 0;
Integer serviceService = 0;
- Integer servicePerson = 0;
Integer experienceService = 0;
- Integer experiencePerson = 0;
//获取会员商品总数
- MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId());
+ List<ServiceRecordDetail> serviceRecordDetailList = new ArrayList<>();
+ ServiceRecordDetail serviceRecordDetail;
+ List<String> consumerGoodsList = new ArrayList<>();
+ List<Map<String, Object>> sendData = new ArrayList<>();
for (MerSureConsumerGoodsListDto goodsDto : goodsList) {
- goods = this.getById(goodsDto.getConsumerGoodsId());
- serviceNum = goods.getServiceNum();
- usedNum = goods.getUsedNum();
+ consumerGoods = this.getById(goodsDto.getConsumerGoodsId());
+ serviceRecordDetail = new ServiceRecordDetail();
+ serviceNum = consumerGoods.getServiceNum();
+ usedNum = consumerGoods.getUsedNum();
surplusNum = serviceNum - usedNum;
useNum = goodsDto.getServiceNum();
//判断使用数量是否超过剩余数量
if (useNum > surplusNum) {
throw new ServiceException(AppErrorConstant.BEYOND_SURP_NUM);
}
- goods.setUsedNum(usedNum + useNum);
- goods.setUseTime(new Date());
+ consumerGoods.setUsedNum(usedNum + useNum);
+ consumerGoods.setUseTime(new Date());
//判断商品是否已使用完
- if (goods.getUsedNum().equals(serviceNum)) {
- goods.setServiceStatus(2);
- goods.setCompleteTime(new Date());
+ if (consumerGoods.getUsedNum().equals(serviceNum)) {
+ consumerGoods.setServiceStatus(2);
+ consumerGoods.setCompleteTime(new Date());
}
- this.saveOrUpdate(goods);
- shopId = goods.getShopId();
- userId = goods.getUserId();
- serviceType = goods.getGoodsType();
+ this.saveOrUpdate(consumerGoods);
+
+ 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);
+ }
+
+ shopId = consumerGoods.getShopId();
+ userId = consumerGoods.getUserId();
+ serviceType = consumerGoods.getGoodsType();
//拼接商品ID
if (StringUtils.isBlank(goodsIds)) {
- goodsIds = goods.getConsumerGoodsId();
+ goodsIds = consumerGoods.getConsumerGoodsId();
} else {
- goodsIds = goodsIds + "," + goods.getConsumerGoodsId();
+ goodsIds = goodsIds + "," + consumerGoods.getConsumerGoodsId();
}
//拼接商品名称
if (StringUtils.isBlank(goodsNames)) {
- goodsNames = goods.getGoodsName();
+ goodsNames = consumerGoods.getGoodsName();
} else {
- goodsNames = goodsNames + "、" + goods.getGoodsName();
+ goodsNames = goodsNames + "、" + consumerGoods.getGoodsName();
}
//处理商品服务次数
- switch (goods.getGoodsType()) {
+ switch (consumerGoods.getGoodsType()) {
case 1:
cycleService = cycleService + useNum;
break;
@@ -220,16 +293,15 @@
default:
break;
}
- }
- //判断是否减人
- 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;
+ serviceRecordDetail.setDelFlag(0);
+ serviceRecordDetail.setConsumerGoodsId(consumerGoods.getConsumerGoodsId());
+ serviceRecordDetail.setConsumerGoodsName(consumerGoods.getGoodsName());
+ serviceRecordDetail.setServiceNum(consumerGoods.getServiceNum());
+ serviceRecordDetail.setSurpNum(consumerGoods.getServiceNum()-consumerGoods.getUsedNum());
+ if(serviceRecordDetail.getSurpNum()==0){
+ consumerGoodsList.add(consumerGoods.getGoodsName());
+ }
+ serviceRecordDetailList.add(serviceRecordDetail);
}
serviceCount = cycleService + serviceService + experienceService;
UserServiceRecord serviceRecord = new UserServiceRecord();
@@ -241,24 +313,47 @@
serviceRecord.setConsumerGoodsIds(goodsIds);
serviceRecord.setConsumerGoodsNames(goodsNames);
userServiceRecordService.saveOrUpdate(serviceRecord);
+ //服务记录详情
+ 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.getUserId());
+ 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()) {
+ R<Shop> r = remoteShopService.getShop(shopId);
+ if (r.getCode() != 200) {
+ throw new ServiceException(r.getMsg());
+ }
+ Shop shop = r.getData();
+ try {
+ for (Map<String, Object> sendDatum : sendData) {
+ String product = sendDatum.get("product").toString();
+ 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 == 0) {
+ MsgUtils.sendMsg(member.getMobile(), "SMS_464321234", msg);
+ } else {
+ MsgUtils.sendMsg(member.getMobile(), "SMS_464376210", msg);
+ }
+ }
+
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
}
}
@@ -286,4 +381,124 @@
public MerMemberConsumerGoodsTotalVo getMemberConsumerGoodsTotalVo(Long userId, Long shopId){
return consumerGoodsMapper.getMemberConsumerGoodsTotalVo(userId, shopId);
}
+
+ /**
+ * @description 发放用户商品礼物
+ * @author jqs
+ * @date 2023/7/7 18:51
+ * @param giftSendDtoList
+ * @return void
+ */
+ @Override
+ public void sendGoodsGift(List<BirthdayGiftSendDto> giftSendDtoList){
+ // 使用StringJoiner拼接goodsId
+ StringJoiner goodsSj = new StringJoiner(",");
+ for (BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList) {
+ goodsSj.add(birthdayGiftSendDto.getGoodsId());
+ }
+ String goodsIds = goodsSj.toString();
+ // 获取商品列表
+ List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIds).getData();
+ // 初始化变量
+ List<ConsumerGoods> consumerGoodsList = new ArrayList<>();
+ Map<String, Goods> goodsMap = goodsList.stream()
+ .collect(Collectors.toMap(Goods::getGoodsId, Function.identity()));
+ ConsumerGoods consumerGoods;
+ String consumerGoodsId;
+ Goods goods;
+ String goodsId;
+ GoodsFile goodsFile;
+ AppShopGoodsGetDto appShopGoodsGetDto;
+ ShopGoods shopGoods = null;
+ // 遍历giftSendDtoList
+ for (BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList) {
+ goodsId = birthdayGiftSendDto.getGoodsId();
+ goods = goodsMap.get(goodsId);
+ goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData();
+ // 获取商户服务次数
+ if (birthdayGiftSendDto.getGiftFrom() == 2) {
+ appShopGoodsGetDto = new AppShopGoodsGetDto();
+ appShopGoodsGetDto.setGoodsId(goodsId);
+ appShopGoodsGetDto.setShopId(birthdayGiftSendDto.getShopId());
+ shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
+ }
+ // 根据goodsNumber创建ConsumerGoods对象并添加到列表中
+ for (int i = 0; i < birthdayGiftSendDto.getGoodsNumber(); i++) {
+ consumerGoods = new ConsumerGoods();
+ consumerGoodsId = IdUtils.simpleUUID();
+ consumerGoods.setConsumerGoodsId(consumerGoodsId);
+ consumerGoods.setDelFlag(0);
+ consumerGoods.setServiceStatus(1);
+ consumerGoods.setShopId(birthdayGiftSendDto.getShopId());
+ consumerGoods.setUserId(birthdayGiftSendDto.getUserId());
+ consumerGoods.setGoodsId(goodsId);
+ consumerGoods.setGoodsName(goods.getGoodsName());
+ consumerGoods.setCycleNumFlag(goods.getCycleNumFlag());
+ consumerGoods.setServiceNum(goods.getServiceNum());
+ consumerGoods.setUsedNum(0);
+ consumerGoods.setCreateTime(new Date());
+ consumerGoods.setGoodsType(goods.getGoodsType());
+ consumerGoods.setGoodsTag(goods.getGoodsTags());
+ consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
+ consumerGoods.setGoodsPicture(goodsFile.getFileUrl());
+ consumerGoods.setGoodsNurses(goods.getGoodsNurses());
+ consumerGoods.setSourceFrom(3);
+ // 如果shopGoods不为空,则使用shopGoods的serviceNum
+ if (shopGoods != null) {
+ consumerGoods.setServiceNum(shopGoods.getServiceNum());
+ }
+ consumerGoodsList.add(consumerGoods);
+ }
+ }
+ // 批量保存consumerGoodsList
+ this.saveBatchConsumerGoods(consumerGoodsList);
+ }
+
+
+ /**
+ * @description
+ * @author jqs
+ * @date 2023/7/7 19:31
+ * @param consumerGoodsList
+ * @return boolean
+ */
+ @Override
+ public boolean saveBatchConsumerGoods(List<ConsumerGoods> consumerGoodsList){
+ Integer serviceCount = 0;
+ Integer cycleService = 0;
+ Integer serviceService = 0;
+ Integer experienceService = 0;
+ Long shopId = consumerGoodsList.get(0).getShopId();
+ Long userId = consumerGoodsList.get(0).getUserId();
+ for(ConsumerGoods consumerGoods : consumerGoodsList){
+ //处理商品服务次数
+ switch (consumerGoods.getGoodsType()) {
+ case 1:
+ if(consumerGoods.getServiceNum()!=null){
+ cycleService = cycleService + consumerGoods.getServiceNum();
+ }
+ break;
+ case 2:
+ if(consumerGoods.getServiceNum()!=null){
+ serviceService = serviceService + consumerGoods.getServiceNum();
+ }
+ break;
+ case 3:
+ if(consumerGoods.getServiceNum()!=null) {
+ experienceService = experienceService + consumerGoods.getServiceNum();
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ serviceCount = cycleService + serviceService + experienceService;
+ //更新商户和会员服务统计
+ MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
+ memberTotalChangeDto.setUserId(userId);
+ memberTotalChangeDto.setTypeService(1);
+ memberTotalChangeDto.setServiceCount(serviceCount);
+ remoteMemberService.changeMemberTotal(memberTotalChangeDto);
+ return this.saveBatch(consumerGoodsList);
+ }
}
--
Gitblit v1.7.1