bug
jiangqs
2023-09-13 026d15ddf508317942482da480cb79c0ee9f68fd
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
@@ -18,17 +18,18 @@
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.service.RemoteGoodsService;
import com.ruoyi.system.api.service.RemoteMemberService;
import com.ruoyi.system.api.service.RemoteShopService;
import io.seata.spring.annotation.GlobalTransactional;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -56,9 +57,6 @@
    @Resource
    private RemoteMemberService remoteMemberService;
    @Resource
    private RemoteShopService remoteShopService;
    @Resource
    private RemoteGoodsService remoteGoodsService;
@@ -110,16 +108,17 @@
            ConsumerGoods consumerGoods;
            Integer serviceCount = 0;
            Integer cycleService = 0;
            Integer cyclePerson = 0;
            //Integer cyclePerson = 0;
            Integer serviceService = 0;
            Integer servicePerson = 0;
            //Integer servicePerson = 0;
            Integer experienceService = 0;
            Integer experiencePerson = 0;
            //Integer experiencePerson = 0;
            Goods goods;
            GoodsFile goodsFile;
            String consumerGoodsId;
            List<ConsumerGoods> consumerGoodsList = new ArrayList<>();
            MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId());
            //获取用户各类型订单数
            //MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId());
            int sureNum = 0;
            for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){
                goods = remoteGoodsService.getGoods(merSureConsumerGoodsListDto.getGoodsId()).getData();
@@ -142,6 +141,7 @@
                        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());
@@ -165,6 +165,7 @@
                    }
                }
            }
            //判断商品确认次数
            if(sureNum>oldConsumerGoods.getSureNum()){
                throw new ServiceException(AppErrorConstant.GOODS_SURE_FAILED);
            }else{
@@ -178,7 +179,7 @@
            }
            this.saveBatch(consumerGoodsList);
            //判断是否加人
            if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) {
            /*if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) {
                cyclePerson = 1;
            }
            if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) {
@@ -186,7 +187,7 @@
            }
            if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) {
                experiencePerson = 1;
            }
            }*/
            serviceCount = cycleService + serviceService + experienceService;
            //更新商户和会员服务统计
            MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
@@ -194,7 +195,7 @@
            memberTotalChangeDto.setTypeService(1);
            memberTotalChangeDto.setServiceCount(serviceCount);
            remoteMemberService.changeMemberTotal(memberTotalChangeDto);
            ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
            /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
            shopTotalChangeDto.setShopId(merSureConsumerGoodsDto.getShopId());
            shopTotalChangeDto.setTypeCycleService(1);
            shopTotalChangeDto.setCycleService(cycleService);
@@ -205,7 +206,7 @@
            shopTotalChangeDto.setTypeExperienceService(1);
            shopTotalChangeDto.setExperienceService(experienceService);
            shopTotalChangeDto.setExperiencePerson(experiencePerson);
            remoteShopService.changeShopTotal(shopTotalChangeDto);
            remoteShopService.changeShopTotal(shopTotalChangeDto);*/
        }
    }
@@ -215,6 +216,7 @@
     */
    @Override
    @Transactional
    @GlobalTransactional(rollbackFor = Exception.class)
    public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){
        List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList();
        if (goodsList != null && !goodsList.isEmpty()) {
@@ -230,15 +232,16 @@
            Integer serviceType = 1;
            Integer serviceCount = 0;
            Integer cycleService = 0;
            Integer cyclePerson = 0;
            //Integer cyclePerson = 0;
            Integer serviceService = 0;
            Integer servicePerson = 0;
            //Integer servicePerson = 0;
            Integer experienceService = 0;
            Integer experiencePerson = 0;
            //Integer experiencePerson = 0;
            //获取会员商品总数
            List<ServiceRecordDetail> serviceRecordDetailList = new ArrayList<>();
            ServiceRecordDetail serviceRecordDetail;
            MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getMemberUserId(), merSureConsumerGoodsDto.getShopId());
            //MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getMemberUserId(), merSureConsumerGoodsDto.getShopId());
            List<String> consumerGoodsList = new ArrayList<>();
            for (MerSureConsumerGoodsListDto goodsDto : goodsList) {
                consumerGoods = this.getById(goodsDto.getConsumerGoodsId());
                serviceRecordDetail = new ServiceRecordDetail();
@@ -292,10 +295,14 @@
                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);
            }
            //判断是否减人
            if (cycleService > 0 && memberGoodsTotal.getCycleOrder() - cycleService < 1) {
            /*if (cycleService > 0 && memberGoodsTotal.getCycleOrder() - cycleService < 1) {
                cyclePerson = 1;
            }
            if (serviceService > 0 && memberGoodsTotal.getServiceOrder() - serviceService < 1) {
@@ -303,7 +310,7 @@
            }
            if (experienceService > 0 && memberGoodsTotal.getExperienceOrder() - experienceService < 1) {
                experiencePerson = 1;
            }
            }*/
            serviceCount = cycleService + serviceService + experienceService;
            UserServiceRecord serviceRecord = new UserServiceRecord();
            serviceRecord.setCreateTime(new Date());
@@ -314,6 +321,7 @@
            serviceRecord.setConsumerGoodsIds(goodsIds);
            serviceRecord.setConsumerGoodsNames(goodsNames);
            userServiceRecordService.saveOrUpdate(serviceRecord);
            //服务记录详情
            for(ServiceRecordDetail serviceRecordDetail1 : serviceRecordDetailList){
                serviceRecordDetail1.setRecordId(serviceRecord.getId());
            }
@@ -324,7 +332,7 @@
            memberTotalChange.setTypeService(2);
            memberTotalChange.setServiceCount(serviceCount);
            remoteMemberService.changeMemberTotal(memberTotalChange);
            ShopTotalChangeDto shopTotalChange = new ShopTotalChangeDto();
            /*ShopTotalChangeDto shopTotalChange = new ShopTotalChangeDto();
            shopTotalChange.setShopId(merSureConsumerGoodsDto.getShopId());
            shopTotalChange.setTypeCycleService(2);
            shopTotalChange.setCycleService(cycleService);
@@ -335,7 +343,15 @@
            shopTotalChange.setTypeExperienceService(2);
            shopTotalChange.setExperienceService(experienceService);
            shopTotalChange.setExperiencePerson(experiencePerson);
            remoteShopService.changeShopTotal(shopTotalChange);
            remoteShopService.changeShopTotal(shopTotalChange);*/
            if(!consumerGoodsList.isEmpty()){
                Member member = remoteMemberService.getMember(userId).getData();
                try {
                    MsgUtils.sendMsg(member.getMobile(),null,null);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }
@@ -420,6 +436,7 @@
                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());
@@ -447,14 +464,14 @@
    public boolean saveBatchConsumerGoods(List<ConsumerGoods> consumerGoodsList){
        Integer serviceCount = 0;
        Integer cycleService = 0;
        Integer cyclePerson = 0;
        //Integer cyclePerson = 0;
        Integer serviceService = 0;
        Integer servicePerson = 0;
        //Integer servicePerson = 0;
        Integer experienceService = 0;
        Integer experiencePerson = 0;
        //Integer experiencePerson = 0;
        Long shopId = consumerGoodsList.get(0).getShopId();
        Long userId = consumerGoodsList.get(0).getUserId();
        MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(userId, shopId);
        //MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(userId, shopId);
        for(ConsumerGoods consumerGoods : consumerGoodsList){
            //处理商品服务次数
            switch (consumerGoods.getGoodsType()) {
@@ -478,7 +495,7 @@
            }
        }
        //判断是否加人
        if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) {
        /*if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) {
            cyclePerson = 1;
        }
        if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) {
@@ -486,7 +503,7 @@
        }
        if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) {
            experiencePerson = 1;
        }
        }*/
        serviceCount = cycleService + serviceService + experienceService;
        //更新商户和会员服务统计
        MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
@@ -494,7 +511,7 @@
        memberTotalChangeDto.setTypeService(1);
        memberTotalChangeDto.setServiceCount(serviceCount);
        remoteMemberService.changeMemberTotal(memberTotalChangeDto);
        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
        shopTotalChangeDto.setShopId(shopId);
        shopTotalChangeDto.setOrderType(1);
        shopTotalChangeDto.setTypeCycleService(1);
@@ -506,7 +523,7 @@
        shopTotalChangeDto.setTypeExperienceService(1);
        shopTotalChangeDto.setExperienceService(experienceService);
        shopTotalChangeDto.setExperiencePerson(experiencePerson);
        remoteShopService.changeShopTotal(shopTotalChangeDto);
        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
        return this.saveBatch(consumerGoodsList);
    }
}