huliguo
1 天以前 a966dafb8877552267a94fe8c544c5ea72cf5650
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);*/
        }
    }
@@ -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);
    }
}