| | |
| | | import com.ruoyi.common.redis.service.RedisService; |
| | | import com.ruoyi.common.security.utils.CodeFactoryUtil; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.goods.api.domain.GetLotteryEventList; |
| | | import com.ruoyi.goods.api.domain.TLotteryEvent; |
| | | import com.ruoyi.goods.api.service.LotteryEventClient; |
| | | import com.ruoyi.order.config.WxPayConfiguration; |
| | |
| | | appSureOrderVo.setAppSureOrderGoodsVoList(appSureOrderGoodsVoList); |
| | | appSureOrderVo.setLotteryDraw(false); |
| | | // 返回AppPlaceOrderVo对象 |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData(); |
| | | GetLotteryEventList getLotteryEventList = new GetLotteryEventList(); |
| | | getLotteryEventList.setActivityType(2); |
| | | getLotteryEventList.setUserId(SecurityUtils.getUserId()); |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData(); |
| | | if (data.size() > 0) { |
| | | BigDecimal finalOrderPayMoney = orderPayMoney; |
| | | List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(finalOrderPayMoney) <= 0).collect(Collectors.toList()); |
| | |
| | | appPanicBuyVo.setOrderPayMoney(orderPayMoney); |
| | | appPanicBuyVo.setLotteryDraw(false); |
| | | // 返回AppPlaceOrderVo对象 |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData(); |
| | | GetLotteryEventList getLotteryEventList = new GetLotteryEventList(); |
| | | getLotteryEventList.setActivityType(2); |
| | | getLotteryEventList.setUserId(SecurityUtils.getUserId()); |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData(); |
| | | if (data.size() > 0) { |
| | | BigDecimal finalOrderPayMoney = orderPayMoney; |
| | | List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(finalOrderPayMoney) <= 0).collect(Collectors.toList()); |
| | |
| | | |
| | | appPlaceOrderVo.setLotteryDraw(false); |
| | | // 返回AppPlaceOrderVo对象 |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData(); |
| | | GetLotteryEventList getLotteryEventList = new GetLotteryEventList(); |
| | | getLotteryEventList.setActivityType(2); |
| | | getLotteryEventList.setUserId(SecurityUtils.getUserId()); |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData(); |
| | | if (data.size() > 0) { |
| | | BigDecimal finalOrderPayMoney = orderPayMoney; |
| | | List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(finalOrderPayMoney) <= 0).collect(Collectors.toList()); |
| | |
| | | remoteActivityService.addActivityRecord(activityRecord); |
| | | //扣除redis库存 |
| | | redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + activityId + "-" + goodsId, surpNum - buyNum); |
| | | appPlaceOrderVo.setLotteryDraw(false); |
| | | // 返回AppPlaceOrderVo对象 |
| | | GetLotteryEventList getLotteryEventList = new GetLotteryEventList(); |
| | | getLotteryEventList.setActivityType(2); |
| | | getLotteryEventList.setUserId(SecurityUtils.getUserId()); |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData(); |
| | | if (data.size() > 0) { |
| | | BigDecimal finalOrderPayMoney = orderPayMoney; |
| | | List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(finalOrderPayMoney) <= 0).collect(Collectors.toList()); |
| | | if (collect.size() > 0) { |
| | | appPlaceOrderVo.setLotteryDraw(true); |
| | | appPlaceOrderVo.setLotteryEventId(collect.get(0).getId()); |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("活动订单购买失败:"+e.getMessage()); |
| | | throw new ServiceException(e.getMessage()); |
| | |
| | | appPlaceOrderVo.setPrepayId(orderPayment.getPrepayId()); |
| | | appPlaceOrderVo.setLotteryDraw(false); |
| | | // 返回AppPlaceOrderVo对象 |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData(); |
| | | GetLotteryEventList getLotteryEventList = new GetLotteryEventList(); |
| | | getLotteryEventList.setActivityType(2); |
| | | getLotteryEventList.setUserId(SecurityUtils.getUserId()); |
| | | List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData(); |
| | | if (data.size() > 0) { |
| | | List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(order.getPayMoney()) <= 0).collect(Collectors.toList()); |
| | | if (collect.size() > 0) { |
| | |
| | | merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); |
| | | } |
| | | } |
| | | if(null == merVerifyOrderVo.getRealReceiveMoney()){ |
| | | merVerifyOrderVo.setRealReceiveMoney(BigDecimal.ZERO); |
| | | } |
| | | if(null == merVerifyOrderVo.getReceiveMoney()){ |
| | | merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); |
| | | } |
| | | merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(merVerifyOrderVo.getReceiveMoney())); |
| | | merVerifyOrderVo.setUserId(order.getUserId()); |
| | | merVerifyOrderVo.setUserName(member.getRealName()); |
| | |
| | | } |
| | | Member member = remoteMemberService.getMember(order.getUserId()).getData(); |
| | | //获取核销商户 |
| | | ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyOrderDto.getUserId()).getData(); |
| | | Long shopId = shopRelUserVo.getShopId(); |
| | | log.info("当前核销员工【" + shopRelUserVo.getUserName() + "】门店ID:" + shopId); |
| | | // ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyOrderDto.getUserId()).getData(); |
| | | Long shopId = member.getRelationShopId(); |
| | | // log.info("当前核销员工【" + shopRelUserVo.getUserName() + "】门店ID:" + shopId); |
| | | //获取订单商品列表 |
| | | List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); |
| | | //绑定用户判断核销商户 |
| | |
| | | ConsumerGoods consumerGoods; |
| | | String consumerGoodsId; |
| | | Goods goods; |
| | | //循环生成商品服务 |
| | | List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); |
| | | for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { |
| | | Integer buyNum = appUserOrderGoodsPageVo.getBuyNum(); |
| | | //判断是否次数未确认商品 是则创建未确认周期商品服务 否则循环创建商品服务 |
| | | if (appUserOrderGoodsPageVo.getCycleNumFlag() == 0) { |
| | | consumerGoods = new ConsumerGoods(); |
| | | goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId()); |
| | | consumerGoodsId = IdUtils.simpleUUID(); |
| | | consumerGoods.setConsumerGoodsId(consumerGoodsId); |
| | | consumerGoods.setDelFlag(0); |
| | | consumerGoods.setServiceStatus(1); |
| | | consumerGoods.setShopId(order.getShopId()); |
| | | consumerGoods.setUserId(order.getUserId()); |
| | | consumerGoods.setOrderId(orderId); |
| | | consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId()); |
| | | consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId()); |
| | | consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName()); |
| | | consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag()); |
| | | consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); |
| | | consumerGoods.setUsedNum(0); |
| | | consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); |
| | | consumerGoods.setGoodsTag(appUserOrderGoodsPageVo.getGoodsTag()); |
| | | consumerGoods.setCreateTime(nowTime); |
| | | consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); |
| | | consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); |
| | | consumerGoods.setGoodsNurses(goods.getGoodsNurses()); |
| | | consumerGoods.setSourceFrom(1); |
| | | consumerGoods.setSureNum(buyNum); |
| | | consumerGoodsList.add(consumerGoods); |
| | | } else { |
| | | for (int i = 0; i < buyNum; i++) { |
| | | if(null != appUserOrderGoodsPageVoList.get(0).getGoodsId()){ |
| | | //循环生成商品服务 |
| | | List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); |
| | | for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { |
| | | Integer buyNum = appUserOrderGoodsPageVo.getBuyNum(); |
| | | //判断是否次数未确认商品 是则创建未确认周期商品服务 否则循环创建商品服务 |
| | | if (appUserOrderGoodsPageVo.getCycleNumFlag() == 0) { |
| | | consumerGoods = new ConsumerGoods(); |
| | | goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId()); |
| | | consumerGoodsId = IdUtils.simpleUUID(); |
| | |
| | | consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); |
| | | consumerGoods.setGoodsNurses(goods.getGoodsNurses()); |
| | | consumerGoods.setSourceFrom(1); |
| | | consumerGoods.setSureNum(buyNum); |
| | | consumerGoodsList.add(consumerGoods); |
| | | } else { |
| | | for (int i = 0; i < buyNum; i++) { |
| | | consumerGoods = new ConsumerGoods(); |
| | | goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId()); |
| | | consumerGoodsId = IdUtils.simpleUUID(); |
| | | consumerGoods.setConsumerGoodsId(consumerGoodsId); |
| | | consumerGoods.setDelFlag(0); |
| | | consumerGoods.setServiceStatus(1); |
| | | consumerGoods.setShopId(order.getShopId()); |
| | | consumerGoods.setUserId(order.getUserId()); |
| | | consumerGoods.setOrderId(orderId); |
| | | consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId()); |
| | | consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId()); |
| | | consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName()); |
| | | consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag()); |
| | | consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); |
| | | consumerGoods.setUsedNum(0); |
| | | consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); |
| | | consumerGoods.setGoodsTag(appUserOrderGoodsPageVo.getGoodsTag()); |
| | | consumerGoods.setCreateTime(nowTime); |
| | | consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); |
| | | consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); |
| | | consumerGoods.setGoodsNurses(goods.getGoodsNurses()); |
| | | consumerGoods.setSourceFrom(1); |
| | | consumerGoodsList.add(consumerGoods); |
| | | } |
| | | } |
| | | } |
| | | consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); |
| | | } |
| | | consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); |
| | | //生成返回 |
| | | MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); |
| | | merVerifyOrderVo.setOrderId(orderId); |
| | |
| | | order.setNewMemberFlag(0); |
| | | } |
| | | this.saveOrUpdate(order); |
| | | // 订单金额大于0时进行分账 |
| | | OrderPayment orderPayment = orderPaymentService.getOne(new QueryWrapper<OrderPayment>() |
| | | .eq("order_id", order.getOrderId()).eq("pay_status", 2) |
| | | .eq("del_flag", 0)); |
| | | BigDecimal bigDecimal = orderPayment.getPayMoney().subtract(orderPayment.getFeeAmount()).setScale(2, BigDecimal.ROUND_HALF_EVEN); |
| | | if (bigDecimal.compareTo(BigDecimal.ZERO)>0) { |
| | | // TODO: 2023/10/17 更换分账渠道(汇付天下) |
| | | if(4 != order.getOrderFrom()){ |
| | | // 订单金额大于0时进行分账 |
| | | OrderPayment orderPayment = orderPaymentService.getOne(new QueryWrapper<OrderPayment>() |
| | | .eq("order_id", order.getOrderId()).eq("pay_status", 2) |
| | | .eq("del_flag", 0)); |
| | | BigDecimal bigDecimal = orderPayment.getPayMoney().subtract(orderPayment.getFeeAmount()).setScale(2, BigDecimal.ROUND_HALF_EVEN); |
| | | if (bigDecimal.compareTo(BigDecimal.ZERO)>0) { |
| | | // TODO: 2023/10/17 更换分账渠道(汇付天下) |
| | | // submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOnlinePayMoney(),order.getOrderFrom()); |
| | | submitProfitSharing1(orderId, order.getOrderNo(), order.getShopId(), bigDecimal, order.getOrderFrom()); |
| | | } |
| | | //创建支付记录 |
| | | if(merVerifyOrderDto.getRelPayMoney().compareTo(BigDecimal.ZERO)>0){ |
| | | PayRecord payRecord = new PayRecord(); |
| | | payRecord.setDelFlag(0); |
| | | payRecord.setOrderId(order.getOrderId()); |
| | | payRecord.setPayMoney(merVerifyOrderDto.getRelPayMoney()); |
| | | payRecord.setPayTime(new Date()); |
| | | payRecord.setPayType(merVerifyOrderDto.getPayType()); |
| | | payRecordService.save(payRecord); |
| | | submitProfitSharing1(orderId, order.getOrderNo(), order.getShopId(), bigDecimal, order.getOrderFrom()); |
| | | } |
| | | //创建支付记录 |
| | | if(merVerifyOrderDto.getRelPayMoney().compareTo(BigDecimal.ZERO)>0){ |
| | | PayRecord payRecord = new PayRecord(); |
| | | payRecord.setDelFlag(0); |
| | | payRecord.setOrderId(order.getOrderId()); |
| | | payRecord.setPayMoney(merVerifyOrderDto.getRelPayMoney()); |
| | | payRecord.setPayTime(new Date()); |
| | | payRecord.setPayType(merVerifyOrderDto.getPayType()); |
| | | payRecordService.save(payRecord); |
| | | } |
| | | } |
| | | //更新用户积分和消费统计 |
| | | MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); |
| | |
| | | // @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解 |
| | | public MerVerifyOrderVo sureVerifyOrderDouYin(MerVerifyOrderDto merVerifyOrderDto) { |
| | | String phone = merVerifyOrderDto.getPhone(); |
| | | String name = merVerifyOrderDto.getName(); |
| | | String orderId = merVerifyOrderDto.getOrderId(); |
| | | Long shopId = merVerifyOrderDto.getShopId(); |
| | | if(StringUtils.isEmpty(phone)){ |
| | | throw new ServiceException("请填写核销用户电话号码"); |
| | | } |
| | | if(StringUtils.isEmpty(name)){ |
| | | throw new ServiceException("请填写核销用户姓名"); |
| | | } |
| | | //获取核销商户 |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | CertificatePrepareResponseData data = VerifyUtil.certificatePrepare(orderId); |
| | |
| | | if (null == itemList && itemList.isEmpty()) { |
| | | throw new ServiceException("查询券信息失败"); |
| | | } |
| | | CertificatePrepareResponseDataCertificatesItem certificatesItem = itemList.get(0); |
| | | List<CertificatePrepareResponseDataCertificatesItem> collect = itemList.stream().filter(s -> s.getStatus().intValue() == 1).collect(Collectors.toList()); |
| | | if(collect.size() < merVerifyOrderDto.getNumber()){ |
| | | throw new ServiceException("验券数量超过可使用数量"); |
| | | } |
| | | List<CertificatePrepareResponseDataCertificatesItem> certificatePrepareResponseDataCertificatesItems = collect.subList(0, merVerifyOrderDto.getNumber()); |
| | | |
| | | |
| | | CertificatePrepareResponseDataCertificatesItem certificatesItem = certificatePrepareResponseDataCertificatesItems.get(0); |
| | | //商品信息 |
| | | CertificatePrepareResponseDataCertificatesItemSku sku = certificatesItem.getSku(); |
| | | //次卡信息 |
| | |
| | | } |
| | | Member member = remoteMemberService.getMemberByMobile(phone).getData();//绑定用户判断核销商户 |
| | | if(null == member){ |
| | | throw new ServiceException("手机号还未注册账户,请先进行注册"); |
| | | //创建新用户 |
| | | String memberId = IdUtils.simpleUUID(); |
| | | SysUser sysUser = new SysUser(); |
| | | sysUser.setUserName(memberId); |
| | | sysUser.setUserType("03"); |
| | | sysUser.setNickName(name); |
| | | sysUser.setPhonenumber(phone); |
| | | sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); |
| | | String password = "hongruitang"; |
| | | sysUser.setPassword(SecurityUtils.encryptPassword(password)); |
| | | sysUser = remoteUserService.registerUser(sysUser).getData(); |
| | | member = new Member(); |
| | | member.setMemberId(memberId); |
| | | member.setUserId(sysUser.getUserId()); |
| | | member.setMobile(phone); |
| | | member.setRealName(name); |
| | | member.setNickName(name); |
| | | member.setBindingFlag(1); |
| | | member.setBindingType(3); |
| | | member.setRelationShopId(shopId); |
| | | member.setRelationShopName(shop.getShopName()); |
| | | remoteMemberService.createNewMember(member); |
| | | } |
| | | if (member.getBindingFlag() == 1) { |
| | | if (!member.getRelationShopId().equals(shopId)) { |
| | |
| | | throw new ServiceException("该抖音券不能重复核销"); |
| | | } |
| | | } |
| | | String encryptedCode = certificatesItem.getEncryptedCode(); |
| | | List<CertificateVerifyResponseDataVerifyResultsItem> items = VerifyUtil.certificateVerify(data.getVerifyToken(), shop.getDyPoiId(), new ArrayList<String>() {{ |
| | | add(encryptedCode); |
| | | }}); |
| | | List<String> encryptedCodes = new ArrayList<>(); |
| | | for (CertificatePrepareResponseDataCertificatesItem certificatePrepareResponseDataCertificatesItem : certificatePrepareResponseDataCertificatesItems) { |
| | | encryptedCodes.add(certificatePrepareResponseDataCertificatesItem.getEncryptedCode()); |
| | | } |
| | | List<CertificateVerifyResponseDataVerifyResultsItem> items = VerifyUtil.certificateVerify(data.getVerifyToken(), shop.getDyPoiId(), encryptedCodes); |
| | | if (null == items || items.isEmpty()) { |
| | | throw new ServiceException("抖音券核销失败"); |
| | | } |
| | |
| | | order.setUseTime(nowTime); |
| | | order.setUseUserId(merVerifyOrderDto.getUserId()); |
| | | order.setCloseFlag(1); |
| | | order.setGoodsNum(1); |
| | | order.setGoodsNum(itemList.size()); |
| | | order.setCouponMoney(BigDecimal.ZERO); |
| | | this.save(order); |
| | | //创建服务商品 |
| | |
| | | orderGoods.setGoodsPrice(originAmount); |
| | | orderGoods.setGoodsTotalMoney(originAmount); |
| | | orderGoods.setGoodsReceivableMoney(originAmount); |
| | | orderGoods.setBuyNum(1); |
| | | orderGoods.setBuyNum(itemList.size()); |
| | | |
| | | ConsumerGoods consumerGoods = new ConsumerGoods(); |
| | | consumerGoods.setUsedNum(merVerifyOrderDto.getNumber()); |
| | | if(null != timeCard){ |
| | | //核销一次加一次 |
| | | orderGoods.setBuyNum(1); |
| | | orderGoods.setServiceNum(1); |
| | | consumerGoods.setServiceNum(timeCard.getTimesCount()); |
| | | consumerGoods.setUsedNum(1); |
| | | orderGoods.setBuyNum(itemList.size()); |
| | | orderGoods.setServiceNum(merVerifyOrderDto.getNumber()); |
| | | consumerGoods.setServiceNum(itemList.size()); |
| | | consumerGoods.setUseTime(new Date()); |
| | | } |
| | | orderGoods.setCycleNumFlag(1); |
| | |
| | | consumerGoods.setServiceStatus(1); |
| | | consumerGoods.setShopId(order.getShopId()); |
| | | consumerGoods.setUserId(order.getUserId()); |
| | | consumerGoods.setOrderId(orderId); |
| | | consumerGoods.setOrderId(order.getOrderId()); |
| | | consumerGoods.setOrderGoodsId(orderGoods.getOrderGoodsId()); |
| | | consumerGoods.setGoodsName(sku.getTitle()); |
| | | consumerGoods.setCycleNumFlag(1); |
| | |
| | | |
| | | //生成返回 |
| | | MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); |
| | | merVerifyOrderVo.setOrderId(orderId); |
| | | merVerifyOrderVo.setOrderId(order.getOrderId()); |
| | | merVerifyOrderVo.setOrderNo(order.getOrderNo()); |
| | | merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); |
| | | merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); |
| | |
| | | if (integral > 0) { |
| | | memberTotalChangeDto.setChangeIntegral(integral); |
| | | memberTotalChangeDto.setTypeIntegral(1); |
| | | memberTotalChangeDto.setOrderId(orderId); |
| | | memberTotalChangeDto.setOrderId(order.getOrderId()); |
| | | memberTotalChangeDto.setOrderNo(order.getOrderNo()); |
| | | } |
| | | } |
| | |
| | | }else{ |
| | | //扣减剩余次数 |
| | | OrderGoods orderGoods = orderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, order.getOrderId())); |
| | | //核销一次加一次数量 |
| | | orderGoods.setBuyNum(orderGoods.getBuyNum() + 1); |
| | | if(null != orderGoods.getServiceNum()){ |
| | | orderGoods.setServiceNum(orderGoods.getServiceNum() + 1); |
| | | orderGoods.setServiceNum(orderGoods.getServiceNum() + merVerifyOrderDto.getNumber()); |
| | | } |
| | | orderGoodsService.updateById(orderGoods); |
| | | ConsumerGoods consumerGoods = consumerGoodsService.getOne(new LambdaQueryWrapper<ConsumerGoods>().eq(ConsumerGoods::getOrderId, order.getOrderId()).eq(ConsumerGoods::getOrderGoodsId, orderGoods.getOrderGoodsId())); |
| | | consumerGoods.setUsedNum(consumerGoods.getUsedNum() + 1); |
| | | consumerGoods.setUsedNum(consumerGoods.getUsedNum() + merVerifyOrderDto.getNumber()); |
| | | consumerGoods.setUseTime(new Date()); |
| | | if(consumerGoods.getUsedNum() == consumerGoods.getServiceNum()){ |
| | | consumerGoods.setCompleteTime(new Date()); |
| | |
| | | consumerGoodsService.updateById(consumerGoods); |
| | | //生成返回 |
| | | MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); |
| | | merVerifyOrderVo.setOrderId(orderId); |
| | | merVerifyOrderVo.setOrderId(order.getOrderId()); |
| | | merVerifyOrderVo.setOrderNo(order.getOrderNo()); |
| | | merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); |
| | | merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); |
| | |
| | | // @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解 |
| | | public MerVerifyOrderVo sureVerifyOrderKuaiShou(MerVerifyOrderDto merVerifyOrderDto) { |
| | | String phone = merVerifyOrderDto.getPhone(); |
| | | String name = merVerifyOrderDto.getName(); |
| | | String orderId = merVerifyOrderDto.getOrderId(); |
| | | Long shopId = merVerifyOrderDto.getShopId(); |
| | | if(StringUtils.isEmpty(phone)){ |
| | | throw new ServiceException("请填写核销用户电话号码"); |
| | | } |
| | | if(StringUtils.isEmpty(name)){ |
| | | throw new ServiceException("请填写核销用户姓名"); |
| | | } |
| | | //获取核销商户 |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | VerifyPrepareDataNew data = KSVerifyUtil.certificatePrepare(redisService, orderId); |
| | |
| | | if (null == itemList || itemList.isEmpty()) { |
| | | throw new ServiceException("查询券信息失败"); |
| | | } |
| | | SimpleCertificateTimesCard certificatesItem = itemList.get(0); |
| | | List<SimpleCertificateTimesCard> timesCards = itemList.subList(0, merVerifyOrderDto.getNumber()); |
| | | SimpleCertificateTimesCard certificatesItem = timesCards.get(0); |
| | | Long expire_time = certificatesItem.getExpire_time(); |
| | | if(LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) > expire_time){ |
| | | throw new ServiceException("优惠券已过期"); |
| | |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | } |
| | | |
| | | String encryptedCode = certificatesItem.getEncrypted_code(); |
| | | List<VerifyResult> items = KSVerifyUtil.certificateVerify(redisService, data.getVerify_token(), shop.getKsPoiId(), new ArrayList<String>() {{ |
| | | add(encryptedCode); |
| | | }}, data.getOrder_id()); |
| | | |
| | | List<String> encryptedCodes = new ArrayList<>(); |
| | | for (SimpleCertificateTimesCard timesCard : timesCards) { |
| | | encryptedCodes.add(timesCard.getEncrypted_code()); |
| | | } |
| | | List<VerifyResult> items = KSVerifyUtil.certificateVerify(redisService, data.getVerify_token(), shop.getKsPoiId(), encryptedCodes, data.getOrder_id()); |
| | | if (null == items || items.isEmpty()) { |
| | | throw new ServiceException("快手券核销失败"); |
| | | } |
| | |
| | | order.setUseTime(nowTime); |
| | | order.setUseUserId(merVerifyOrderDto.getUserId()); |
| | | order.setCloseFlag(1); |
| | | order.setGoodsNum(1); |
| | | order.setGoodsNum(itemList.size()); |
| | | order.setCouponMoney(BigDecimal.ZERO); |
| | | this.save(order); |
| | | //创建服务商品 |
| | |
| | | orderGoods.setDelFlag(0); |
| | | orderGoods.setOrderId(order.getOrderId()); |
| | | orderGoods.setGoodsId(sku.getSku_id()); |
| | | orderGoods.setBuyNum(1); |
| | | orderGoods.setServiceNum(1); |
| | | orderGoods.setBuyNum(itemList.size()); |
| | | orderGoods.setGoodsPrice(originAmount); |
| | | orderGoods.setGoodsTotalMoney(originAmount); |
| | | orderGoods.setGoodsReceivableMoney(originAmount); |
| | | orderGoods.setCycleNumFlag(1); |
| | | orderGoods.setServiceNum(sku.getTimes_count()); |
| | | orderGoods.setServiceNum(merVerifyOrderDto.getNumber()); |
| | | orderGoods.setGoodsType(2); |
| | | orderGoods.setGoodsName(sku.getTitle()); |
| | | orderGoodsService.save(orderGoods); |
| | |
| | | consumerGoods.setServiceStatus(1); |
| | | consumerGoods.setShopId(order.getShopId()); |
| | | consumerGoods.setUserId(order.getUserId()); |
| | | consumerGoods.setOrderId(orderId); |
| | | consumerGoods.setOrderId(order.getOrderId()); |
| | | consumerGoods.setGoodsId(sku.getSku_id()); |
| | | consumerGoods.setOrderGoodsId(orderGoods.getOrderGoodsId()); |
| | | consumerGoods.setGoodsName(sku.getTitle()); |
| | | consumerGoods.setCycleNumFlag(1); |
| | | consumerGoods.setServiceNum(sku.getTimes_count()); |
| | | consumerGoods.setUsedNum(1); |
| | | consumerGoods.setServiceNum(itemList.size()); |
| | | consumerGoods.setUsedNum(merVerifyOrderDto.getNumber()); |
| | | consumerGoods.setUseTime(new Date()); |
| | | consumerGoods.setCreateTime(nowTime); |
| | | consumerGoods.setGoodsType(2); |
| | |
| | | consumerGoodsService.save(consumerGoods); |
| | | //生成返回 |
| | | MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); |
| | | merVerifyOrderVo.setOrderId(orderId); |
| | | merVerifyOrderVo.setOrderId(order.getOrderId()); |
| | | merVerifyOrderVo.setOrderNo(order.getOrderNo()); |
| | | merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); |
| | | merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); |
| | |
| | | if (integral > 0) { |
| | | memberTotalChangeDto.setChangeIntegral(integral); |
| | | memberTotalChangeDto.setTypeIntegral(1); |
| | | memberTotalChangeDto.setOrderId(orderId); |
| | | memberTotalChangeDto.setOrderId(order.getOrderId()); |
| | | memberTotalChangeDto.setOrderNo(order.getOrderNo()); |
| | | } |
| | | } |
| | |
| | | }else{ |
| | | //扣减剩余次数 |
| | | OrderGoods orderGoods = orderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, order.getOrderId())); |
| | | orderGoods.setBuyNum(orderGoods.getBuyNum() + 1); |
| | | orderGoods.setServiceNum(orderGoods.getServiceNum() + 1); |
| | | orderGoods.setServiceNum(orderGoods.getServiceNum() + itemList.size()); |
| | | orderGoodsService.updateById(orderGoods); |
| | | |
| | | ConsumerGoods consumerGoods = consumerGoodsService.getOne(new LambdaQueryWrapper<ConsumerGoods>().eq(ConsumerGoods::getOrderId, order.getOrderId()).eq(ConsumerGoods::getOrderGoodsId, orderGoods.getOrderGoodsId())); |
| | | consumerGoods.setUsedNum(consumerGoods.getUsedNum() + 1); |
| | | consumerGoods.setUsedNum(consumerGoods.getUsedNum() + itemList.size()); |
| | | consumerGoods.setUseTime(new Date()); |
| | | if(consumerGoods.getUsedNum() == consumerGoods.getServiceNum()){ |
| | | consumerGoods.setCompleteTime(new Date()); |
| | |
| | | consumerGoodsService.updateById(consumerGoods); |
| | | //生成返回 |
| | | MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); |
| | | merVerifyOrderVo.setOrderId(orderId); |
| | | merVerifyOrderVo.setOrderId(order.getOrderId()); |
| | | merVerifyOrderVo.setOrderNo(order.getOrderNo()); |
| | | merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); |
| | | merVerifyOrderVo.setOrderFrom(order.getOrderFrom()); |
| | |
| | | mgtOrderTotal.setActivityOrderMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal()); |
| | | mgtOrderTotal.setActivityPayMoneyTotal(mgtOrderTotalThird.getActivityPayMoneyTotal()); |
| | | mgtOrderTotal.setActivityUnPayMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal().subtract(mgtOrderTotalThird.getActivityPayMoneyTotal())); |
| | | |
| | | mgtOrderTotal.setThirdOrderTotal(mgtOrderTotalFour.getThirdOrderTotal()); |
| | | mgtOrderTotal.setThirdOrderMoneyTotal(mgtOrderTotalFour.getThirdOrderMoneyTotal()); |
| | | mgtOrderTotal.setThirdPayMoneyTotal(mgtOrderTotalFour.getThirdPayMoneyTotal()); |
| | | mgtOrderTotal.setThirdUnPayMoneyTotal(mgtOrderTotalFour.getThirdOrderMoneyTotal().subtract(mgtOrderTotalFour.getThirdPayMoneyTotal())); |
| | | |
| | | return mgtOrderTotal; |
| | | } |
| | | |
| | |
| | | */ |
| | | private List<MgtMapBigTotalVo> bigListRemoveNull(List<MgtMapBigTotalVo> MgtMapIntTotalVos) { |
| | | for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { |
| | | if(null != MgtMapIntTotalVos.get(i).getMapKey() && MgtMapIntTotalVos.get(i).getMapKey().isEmpty()){ |
| | | if(null == MgtMapIntTotalVos.get(i).getMapKey() || MgtMapIntTotalVos.get(i).getMapKey().isEmpty()){ |
| | | MgtMapIntTotalVos.remove(i); |
| | | } |
| | | } |
| | |
| | | for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { |
| | | mgtMapIntTotalVo = new MgtMapIntTotalVo(); |
| | | mgtMapBigTotalVo = new MgtMapBigTotalVo(); |
| | | if(null == MgtMapIntTotalVoGoodsType.get(i).getMapKey()){ |
| | | continue; |
| | | } |
| | | mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { |
| | |
| | | if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shopId)) { |
| | | throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); |
| | | } |
| | | |
| | | |
| | | merVerifyAwardVo.setUserId(member.getUserId()); |
| | | merVerifyAwardVo.setUserName(member.getRealName()); |
| | | merVerifyAwardVo.setUserMobile(member.getMobile()); |
| | | if (1 == memberGiftRecord.getPrizeFrom()) { |