| | |
| | | |
| | | 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.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; |
| | | |
| | |
| | | */ |
| | | @Service |
| | | public class ConsumerGoodsServiceImpl extends ServiceImpl<ConsumerGoodsMapper, ConsumerGoods> implements ConsumerGoodsService { |
| | | |
| | | private Logger log = LoggerFactory.getLogger(ConsumerGoodsServiceImpl.class); |
| | | |
| | | @Resource |
| | | private ConsumerGoodsMapper consumerGoodsMapper; |
| | |
| | | private RemoteMemberService remoteMemberService; |
| | | |
| | | @Resource |
| | | private RemoteShopService remoteShopService; |
| | | |
| | | @Resource |
| | | private RemoteGoodsService remoteGoodsService; |
| | | |
| | | @Resource |
| | | private ServiceRecordDetailService serviceRecordDetailService; |
| | | |
| | | @Resource |
| | | private RemoteShopService remoteShopService; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取用户服务 |
| | |
| | | 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(); |
| | |
| | | } |
| | | } |
| | | } |
| | | //判断商品确认次数 |
| | | if(sureNum>oldConsumerGoods.getSureNum()){ |
| | | throw new ServiceException(AppErrorConstant.GOODS_SURE_FAILED); |
| | | }else{ |
| | |
| | | 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);*/ |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | @GlobalTransactional(rollbackFor = Exception.class) |
| | | public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){ |
| | | List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); |
| | | if (goodsList != null && !goodsList.isEmpty()) { |
| | |
| | | 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) { |
| | | consumerGoods = this.getById(goodsDto.getConsumerGoodsId()); |
| | | serviceRecordDetail = new ServiceRecordDetail(); |
| | |
| | | consumerGoods.setCompleteTime(new Date()); |
| | | } |
| | | 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(); |
| | |
| | | } |
| | | 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()); |
| | |
| | | serviceRecord.setConsumerGoodsIds(goodsIds); |
| | | serviceRecord.setConsumerGoodsNames(goodsNames); |
| | | userServiceRecordService.saveOrUpdate(serviceRecord); |
| | | //服务记录详情 |
| | | for(ServiceRecordDetail serviceRecordDetail1 : serviceRecordDetailList){ |
| | | serviceRecordDetail1.setRecordId(serviceRecord.getId()); |
| | | } |
| | |
| | | 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(!consumerGoodsList.isEmpty()){ |
| | | if(!sendData.isEmpty()){ |
| | | Member member = remoteMemberService.getMember(userId).getData(); |
| | | R<Shop> r = remoteShopService.getShop(shopId); |
| | | if(r.getCode() != 200){ |
| | | throw new ServiceException(r.getMsg()); |
| | | } |
| | | Shop shop = r.getData(); |
| | | try { |
| | | MsgUtils.sendMsg(member.getMobile(),null,null); |
| | | 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 == 2){ |
| | | MsgUtils.sendMsg(member.getMobile(),"SMS_464376210",msg); |
| | | } |
| | | if(number == 0){ |
| | | MsgUtils.sendMsg(member.getMobile(),"SMS_464321234",msg); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | |
| | | 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()) { |
| | |
| | | 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(); |
| | |
| | | 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); |
| | | } |
| | | } |