| | |
| | | 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.common.redis.service.RedisService; |
| | | import com.ruoyi.common.security.utils.CodeFactoryUtil; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.order.domain.dto.*; |
| | |
| | | import com.ruoyi.order.domain.pojo.order.OrderGoods; |
| | | import com.ruoyi.order.domain.vo.*; |
| | | import com.ruoyi.order.mapper.order.OrderMapper; |
| | | import com.ruoyi.order.mapper.order.UserServiceRecordMapper; |
| | | import com.ruoyi.order.service.order.ConsumerGoodsService; |
| | | import com.ruoyi.order.service.order.OrderGoodsService; |
| | | import com.ruoyi.order.service.order.OrderService; |
| | | import com.ruoyi.order.service.order.UserServiceRecordService; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.constant.SecurityConstant; |
| | | import com.ruoyi.system.api.domain.dto.*; |
| | | 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.member.MemberCoupon; |
| | | import com.ruoyi.system.api.domain.poji.member.MemberGiftRecord; |
| | | import com.ruoyi.system.api.domain.poji.shop.Shop; |
| | | import com.ruoyi.system.api.domain.poji.sys.SysUser; |
| | | import com.ruoyi.system.api.domain.vo.*; |
| | |
| | | |
| | | @Resource |
| | | private RemoteActivityService remoteActivityService; |
| | | |
| | | @Resource |
| | | private UserServiceRecordMapper userServiceRecordMapper; |
| | | |
| | | @Resource |
| | | private RedisService redisService; |
| | | |
| | | /** |
| | | * @description: buyGoods |
| | |
| | | String activityId = appPlaceActivityDto.getActivityId(); |
| | | String goodsId = appPlaceActivityDto.getGoodsId(); |
| | | Integer buyNum = appPlaceActivityDto.getBuyNum(); |
| | | //redis库存控制极简版 |
| | | Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+goodsId); |
| | | if(surpNum==null||surpNum<buyNum){ |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); |
| | | }else{ |
| | | redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+goodsId,surpNum-buyNum); |
| | | } |
| | | // 定义购买数量,服务数量,商品数量 |
| | | BigDecimal buyNumBig; |
| | | Integer serviceNum; |
| | |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_END); |
| | | } |
| | | if (activityGoodsGetVo.getAvailableBuyNum() < 1) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); |
| | | } |
| | | if (buyNum < activityGoodsGetVo.getAvailableBuyNum()) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); |
| | | } |
| | | // 创建订单ID和订单号 |
| | |
| | | */ |
| | | @Override |
| | | public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { |
| | | Long shopId = merHomeShopTotalVo.getShopId(); |
| | | Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); |
| | | merHomeShopTotalVo.setTodayShop(todayShop); |
| | | merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); |
| | | List<Long> shopIds = merHomeShopTotalVo.getShopIds(); |
| | | if (null != shopIds && shopIds.size() != 0) { |
| | | Integer todayShop = userServiceRecordMapper.countShopServicePersons(shopIds); |
| | | merHomeShopTotalVo = orderMapper.getMerHomeShopsTotalVo(shopIds); |
| | | merHomeShopTotalVo.setTodayShop(todayShop); |
| | | }else{ |
| | | Long shopId = merHomeShopTotalVo.getShopId(); |
| | | Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); |
| | | merHomeShopTotalVo.setTodayShop(todayShop); |
| | | merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); |
| | | |
| | | } |
| | | return merHomeShopTotalVo; |
| | | } |
| | | |
| | |
| | | merVerifyCouponVo.setUserName(member.getNickName()); |
| | | merVerifyCouponVo.setUserMobile(member.getMobile()); |
| | | merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom()); |
| | | merVerifyCouponVo.setCouponName(verifyCouponGetVo.getMemberCoupon().getCouponName()); |
| | | merVerifyCouponVo.setCreateTime(verifyCouponGetVo.getMemberCoupon().getReceiveTime()); |
| | | // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性 |
| | | List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream() |
| | | .map(goods -> { |
| | | MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo(); |
| | | merCouponGoods.setGoodsId(goods.getGoodsId()); |
| | | merCouponGoods.setGoodsName(goods.getGoodsName()); |
| | | if (goods.getGoodsType() == 1) { |
| | | merCouponGoods.setGoodsType("周期"); |
| | | } else if (goods.getGoodsType() == 2) { |
| | | merCouponGoods.setGoodsType("服务"); |
| | | } else if (goods.getGoodsType() == 3) { |
| | | merCouponGoods.setGoodsType("体验"); |
| | | } else if (goods.getGoodsType() == 4) { |
| | | merCouponGoods.setGoodsType("单品"); |
| | | } |
| | | // 设置其他属性 |
| | | return merCouponGoods; |
| | | }) |
| | |
| | | consumerGoodsList.add(consumerGoods); |
| | | } |
| | | consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); |
| | | merVerifyCouponVo.setVerifyStatus(2); |
| | | return merVerifyCouponVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description 确认核销奖品 |
| | | * @author jqs |
| | | * @date 2023/7/9 9:54 |
| | | * @param merVerifyPrizeDto |
| | | * @return MerVerifyAwardVo |
| | | */ |
| | | @Override |
| | | public MerVerifyAwardVo sureVerifyPrize(MerVerifyPrizeDto merVerifyPrizeDto){ |
| | | MerVerifyAwardVo merVerifyAwardVo = new MerVerifyAwardVo(); |
| | | MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrize(merVerifyPrizeDto.getPrizeId()).getData(); |
| | | if(memberGiftRecord==null||memberGiftRecord.getVerifyStatus()!=1){ |
| | | throw new ServiceException(AppErrorConstant.COUPON_USED); |
| | | } |
| | | Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData(); |
| | | merVerifyAwardVo.setUserName(member.getNickName()); |
| | | merVerifyAwardVo.setUserMobile(member.getMobile()); |
| | | if(memberGiftRecord.getGiftFrom()==1){ |
| | | merVerifyAwardVo.setGiftFrom("平台生日卡"); |
| | | }else{ |
| | | merVerifyAwardVo.setGiftFrom("商户生日卡"); |
| | | } |
| | | merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType()); |
| | | List<BirthdayGiftSendDto> giftSendDtoList = new ArrayList<>(); |
| | | BirthdayGiftSendDto birthdayGiftSendDto = new BirthdayGiftSendDto(); |
| | | switch(memberGiftRecord.getGiftType()){ |
| | | case 1: |
| | | merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName()); |
| | | merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getCouponNumber())); |
| | | birthdayGiftSendDto.setUserId(memberGiftRecord.getUserId()); |
| | | birthdayGiftSendDto.setGiftType(memberGiftRecord.getGiftType()); |
| | | birthdayGiftSendDto.setGiftFrom(memberGiftRecord.getGiftFrom()); |
| | | birthdayGiftSendDto.setShopId(memberGiftRecord.getShopId()); |
| | | birthdayGiftSendDto.setCouponId(memberGiftRecord.getCouponId()); |
| | | birthdayGiftSendDto.setCouponNumber(memberGiftRecord.getCouponNumber()); |
| | | giftSendDtoList.add(birthdayGiftSendDto); |
| | | remoteCouponService.sendCouponGift(giftSendDtoList); |
| | | break; |
| | | case 2: |
| | | Goods goods = remoteGoodsService.getGoods(memberGiftRecord.getGoodsId()).getData(); |
| | | merVerifyAwardVo.setGiftName(memberGiftRecord.getGoodsName()); |
| | | merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getGoodsNumber())); |
| | | if (goods.getGoodsType() == 1) { |
| | | merVerifyAwardVo.setGiftRemark("周期"); |
| | | } else if (goods.getGoodsType() == 2) { |
| | | merVerifyAwardVo.setGiftRemark("服务"); |
| | | } else if (goods.getGoodsType() == 3) { |
| | | merVerifyAwardVo.setGiftRemark("体验"); |
| | | } else if (goods.getGoodsType() == 4) { |
| | | merVerifyAwardVo.setGiftRemark("单品"); |
| | | } |
| | | birthdayGiftSendDto.setUserId(memberGiftRecord.getUserId()); |
| | | birthdayGiftSendDto.setGiftType(memberGiftRecord.getGiftType()); |
| | | birthdayGiftSendDto.setGiftFrom(memberGiftRecord.getGiftFrom()); |
| | | birthdayGiftSendDto.setShopId(memberGiftRecord.getShopId()); |
| | | birthdayGiftSendDto.setGoodsId(memberGiftRecord.getGoodsId()); |
| | | birthdayGiftSendDto.setGoodsNumber(memberGiftRecord.getGoodsNumber()); |
| | | giftSendDtoList.add(birthdayGiftSendDto); |
| | | consumerGoodsService.sendGoodsGift(giftSendDtoList); |
| | | break; |
| | | case 3: |
| | | merVerifyAwardVo.setGiftName("现金"); |
| | | merVerifyAwardVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); |
| | | break; |
| | | case 4: |
| | | merVerifyAwardVo.setGiftName(memberGiftRecord.getGiftName()); |
| | | merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getGiftNumber())); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | merVerifyAwardVo.setCreateTime(memberGiftRecord.getCreateTime()); |
| | | memberGiftRecord.setVerifyStatus(2); |
| | | memberGiftRecord.setVerifyTime(new Date()); |
| | | if(member.getBindingFlag()!=1){ |
| | | AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); |
| | | appMemberBindingDto.setBindingFlag(1); |
| | | appMemberBindingDto.setShopId(merVerifyPrizeDto.getShopId()); |
| | | Shop shop = remoteShopService.getShop(merVerifyPrizeDto.getShopId()).getData(); |
| | | appMemberBindingDto.setShopName(shop.getShopName()); |
| | | appMemberBindingDto.setUserId(merVerifyPrizeDto.getUserId()); |
| | | remoteMemberService.updateMemberBinding(appMemberBindingDto); |
| | | } |
| | | merVerifyAwardVo.setPrizeId(merVerifyPrizeDto.getPrizeId()); |
| | | merVerifyAwardVo.setVerifyStatus(2); |
| | | return merVerifyAwardVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 收银未结清订单列表 |
| | |
| | | merVerifyCouponVo.setUserName(member.getNickName()); |
| | | merVerifyCouponVo.setUserMobile(member.getMobile()); |
| | | merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom()); |
| | | merVerifyCouponVo.setCouponName(verifyCouponGetVo.getMemberCoupon().getCouponName()); |
| | | merVerifyCouponVo.setCreateTime(verifyCouponGetVo.getMemberCoupon().getReceiveTime()); |
| | | // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性 |
| | | List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream() |
| | | .map(goods -> { |
| | | MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo(); |
| | | merCouponGoods.setGoodsId(goods.getGoodsId()); |
| | | merCouponGoods.setGoodsName(goods.getGoodsName()); |
| | | if (goods.getGoodsType() == 1) { |
| | | merCouponGoods.setGoodsType("周期"); |
| | | } else if (goods.getGoodsType() == 2) { |
| | | merCouponGoods.setGoodsType("服务"); |
| | | } else if (goods.getGoodsType() == 3) { |
| | | merCouponGoods.setGoodsType("体验"); |
| | | } else if (goods.getGoodsType() == 4) { |
| | | merCouponGoods.setGoodsType("单品"); |
| | | } |
| | | // 设置其他属性 |
| | | return merCouponGoods; |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList |
| | | merVerifyCouponVo.setGoodsList(merCouponGoodsList); |
| | | merVerifyCouponVo.setVerifyStatus(1); |
| | | return merVerifyCouponVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取核销奖品 |
| | | * @author jqs |
| | | * @date 2023/7/8 17:46 |
| | | * @param verifyCode |
| | | * @param shopId |
| | | * @return MerVerifyAwardVo |
| | | */ |
| | | @Override |
| | | public MerVerifyAwardVo verifyPrize(String verifyCode,Long shopId){ |
| | | MerVerifyAwardVo merVerifyAwardVo = new MerVerifyAwardVo(); |
| | | MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrize(verifyCode).getData(); |
| | | if(memberGiftRecord==null||memberGiftRecord.getVerifyStatus()!=1){ |
| | | throw new ServiceException(AppErrorConstant.COUPON_USED); |
| | | } |
| | | if(memberGiftRecord.getGiftFrom()==2&&!memberGiftRecord.getShopId().equals(shopId)){ |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData(); |
| | | merVerifyAwardVo.setUserName(member.getNickName()); |
| | | merVerifyAwardVo.setUserMobile(member.getMobile()); |
| | | if(memberGiftRecord.getGiftFrom()==1){ |
| | | merVerifyAwardVo.setGiftFrom("平台生日卡"); |
| | | }else{ |
| | | merVerifyAwardVo.setGiftFrom("商户生日卡"); |
| | | } |
| | | |
| | | merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType()); |
| | | switch(memberGiftRecord.getGiftType()){ |
| | | case 1: |
| | | merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName()); |
| | | merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getCouponNumber())); |
| | | break; |
| | | case 2: |
| | | Goods goods = remoteGoodsService.getGoods(memberGiftRecord.getGoodsId()).getData(); |
| | | merVerifyAwardVo.setGiftName(memberGiftRecord.getGoodsName()); |
| | | merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getGoodsNumber())); |
| | | if (goods.getGoodsType() == 1) { |
| | | merVerifyAwardVo.setGiftRemark("周期"); |
| | | } else if (goods.getGoodsType() == 2) { |
| | | merVerifyAwardVo.setGiftRemark("服务"); |
| | | } else if (goods.getGoodsType() == 3) { |
| | | merVerifyAwardVo.setGiftRemark("体验"); |
| | | } else if (goods.getGoodsType() == 4) { |
| | | merVerifyAwardVo.setGiftRemark("单品"); |
| | | } |
| | | break; |
| | | case 3: |
| | | merVerifyAwardVo.setGiftName("现金"); |
| | | merVerifyAwardVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); |
| | | break; |
| | | case 4: |
| | | merVerifyAwardVo.setGiftName(memberGiftRecord.getGiftName()); |
| | | merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getGiftNumber())); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | merVerifyAwardVo.setCreateTime(memberGiftRecord.getCreateTime()); |
| | | merVerifyAwardVo.setVerifyStatus(1); |
| | | merVerifyAwardVo.setPrizeId(verifyCode); |
| | | return merVerifyAwardVo; |
| | | } |
| | | |
| | | /** |
| | |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | MerOrderTotalVo orderTotalVo = orderMapper.getMerOrderTotalOrderFrom(merTotalDto); |
| | | MerOrderTotalVo goodsTypeVo = orderMapper.getMerTotalOrderTotalGoodsType(merTotalDto); |
| | | orderTotalVo.setCycleTotal(goodsTypeVo.getCycleTotal()); |
| | | orderTotalVo.setCycleMoney(goodsTypeVo.getCycleMoney()); |
| | | orderTotalVo.setExperienceTotal(goodsTypeVo.getExperienceTotal()); |
| | | orderTotalVo.setExperienceMoney(goodsTypeVo.getExperienceMoney()); |
| | | orderTotalVo.setServiceTotal(goodsTypeVo.getServiceTotal()); |
| | | orderTotalVo.setServiceMoney(goodsTypeVo.getServiceMoney()); |
| | | return orderTotalVo; |
| | | } |
| | | |