diff --git a/bweb/src/main/java/com/bweb/controller/TestController.java b/bweb/src/main/java/com/bweb/controller/TestController.java index 20b11dc..a7774f5 100644 --- a/bweb/src/main/java/com/bweb/controller/TestController.java +++ b/bweb/src/main/java/com/bweb/controller/TestController.java @@ -8,6 +8,7 @@ import com.hfkj.common.utils.*; import com.hfkj.config.CommonSysConst; import com.hfkj.entity.*; +import com.hfkj.haioil.HaiOilService; import com.hfkj.jd.JdPostService; import com.hfkj.jd.JdService; import com.hfkj.mer.BsMerPayConfigService; @@ -26,6 +27,7 @@ import com.hfkj.service.order.BsOrderRefundService; import com.hfkj.service.order.BsOrderService; import com.hfkj.service.order.OrderPayService; import com.hfkj.service.pay.huift.TradeService; +import com.hfkj.sysenum.order.OrderCouponNoStatusEnum; import com.hfkj.sysenum.order.OrderLogisticsStatusEnum; import com.jd.open.api.sdk.domain.vopsp.CategoryInfoGoodsProvider.response.getCategoryInfoList.GetCategoryInfoGoodsResp; import com.jd.open.api.sdk.domain.vopsp.SkuInfoGoodsProvider.response.getSkuDetailInfo.GetSkuPoolInfoGoodsResp; @@ -129,6 +131,61 @@ public class TestController { } } + @RequestMapping(value="/confirmReceipt",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "订单完成") + public ResponseData confirmReceipt() { + try { + Map map = new HashMap<>(); + + map.put("logisticsStatus" , "SIGN"); + map.put("status" , 2); + + List orderGoodsList = orderGoodsService.getList(map); + + for (BsOrderGoods goods : orderGoodsList) { + + // 判断时间是否是十天前 + + if (DateUtil.differentDays(goods.getCreateTime() , new Date()) > 10) { + orderGoodsService.confirmReceipt(goods.getId()); + } + } + return ResponseMsgUtil.success("成功"); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value="/orderGoodsConfirmReceiptAgent",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "订单完成") + public ResponseData orderGoodsConfirmReceiptAgent() { + try { + Map map = new HashMap<>(); + + map.put("logisticsStatus" , "SIGN"); + map.put("status" , 2); + + List orderGoodsList = orderGoodsService.getList(map); + + for (BsOrderGoods goods : orderGoodsList) { + + // 判断时间是否是十天前 + + if (DateUtil.differentDays(goods.getCreateTime() , new Date()) > 10) { + orderGoodsService.confirmReceipt(goods.getId()); + } + } + return ResponseMsgUtil.success("成功"); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } @RequestMapping(value="/refundMovieOrder",method = RequestMethod.POST) @ResponseBody @@ -392,5 +449,71 @@ public class TestController { } } + @RequestMapping(value="/refundPk",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "退回优惠券包") + public ResponseData refundPk(@RequestParam(value = "reqId", required = false) String reqId, + @RequestParam(value = "discountPkStockCode", required = false) String discountPkStockCode) { + try { + + Map map = new HashMap<>(); + map.put("reqId" ,reqId); + map.put("discountPkStockCode" , discountPkStockCode); + JSONObject returnParam = HaiOilService.refundPk(map); + return ResponseMsgUtil.success(returnParam); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value="/queryPkDetailByStockCode",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "查询券包使用情况") + public ResponseData queryPkDetailByStockCode(@RequestParam(value = "reqId", required = false) String reqId, + @RequestParam(value = "discountPkStockCode", required = false) String discountPkStockCode) { + try { + + Map map = new HashMap<>(); + map.put("reqId" ,reqId); + map.put("discountPkStockCode" , discountPkStockCode); + JSONObject returnParam = HaiOilService.queryPkDetailByStockCode(map); + return ResponseMsgUtil.success(returnParam); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + + + @RequestMapping(value="/pushPk",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "pushPk") + public ResponseData pushPk() { + try { + + // 推送给嗨加油 + Map map = new HashMap<>(); + map.put("discountPkNo" , "DPK10004"); + map.put("number" , 1); + map.put("phone" , "18090580471"); + JSONObject returnParam = HaiOilService.pushPk(map); + JSONArray dataArray = returnParam.getJSONObject("return_data").getJSONArray("list"); + BsOrderCouponNo couponNo = new BsOrderCouponNo(); + couponNo.setExpireTime(dataArray.getJSONObject(0).getJSONArray("codeList").getJSONObject(0).getDate("expirationDate")); + couponNo.setDeliverTime(new Date()); + couponNo.setChannelOrderNo(returnParam.getJSONObject("return_data").getString("reqId")); + couponNo.setGoodsVpdSourceCouNo(dataArray.getJSONObject(0).getString("discountPkStockCode")); + couponNo.setStatus(OrderCouponNoStatusEnum.status2.getCode()); + return ResponseMsgUtil.success(couponNo); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + } diff --git a/bweb/src/main/java/com/bweb/controller/discount/DiscountPackageController.java b/bweb/src/main/java/com/bweb/controller/discount/DiscountPackageController.java index 6f7f710..be4c7ab 100644 --- a/bweb/src/main/java/com/bweb/controller/discount/DiscountPackageController.java +++ b/bweb/src/main/java/com/bweb/controller/discount/DiscountPackageController.java @@ -312,7 +312,7 @@ public class DiscountPackageController { throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); } - couponDiscountPackageService.giveDiscountPackage(body.getInteger("discountPackageId") , body.getString("phone")); + couponDiscountPackageService.giveDiscountPackage(body.getInteger("discountPackageId") , body.getString("phone") , null); return ResponseMsgUtil.success("成功!"); diff --git a/cweb/src/main/java/com/cweb/controller/discount/DiscountController.java b/cweb/src/main/java/com/cweb/controller/discount/DiscountController.java index e669bdc..41f0fcb 100644 --- a/cweb/src/main/java/com/cweb/controller/discount/DiscountController.java +++ b/cweb/src/main/java/com/cweb/controller/discount/DiscountController.java @@ -277,7 +277,7 @@ public class DiscountController { throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); } - couponDiscountPackageService.giveDiscountPackage(body.getInteger("discountPackageId") , body.getString("phone")); + couponDiscountPackageService.giveDiscountPackage(body.getInteger("discountPackageId") , body.getString("phone") , null); return ResponseMsgUtil.success("成功!"); @@ -310,7 +310,7 @@ public class DiscountController { List list = discountUserRelService.getList(map); if (list.isEmpty()) { - couponDiscountPackageService.giveDiscountPackage(Integer.valueOf(secDictionary.getCodeName()), userSession.getUser().getPhone()); + couponDiscountPackageService.giveDiscountPackage(Integer.valueOf(secDictionary.getCodeName()), userSession.getUser().getPhone() , null); } } diff --git a/cweb/src/main/java/com/cweb/controller/goods/DeliveryAddressController.java b/cweb/src/main/java/com/cweb/controller/goods/DeliveryAddressController.java index 9b5aea4..69ca13b 100644 --- a/cweb/src/main/java/com/cweb/controller/goods/DeliveryAddressController.java +++ b/cweb/src/main/java/com/cweb/controller/goods/DeliveryAddressController.java @@ -147,7 +147,11 @@ public class DeliveryAddressController { deliveryAddressService.cleanDeliveryAddressDefault(userSession.getUser().getId()); } - GoodsUserAddress goodsDeliveryAddress = deliveryAddressService.queryDetail(deliveryAddress.getId()); + Map map = new HashMap<>(); + map.put("userId" , userSession.getUser().getId()); + map.put("id", deliveryAddress.getId()); + + GoodsUserAddress goodsDeliveryAddress = goodsUserAddressService.queryDetailByMap(map); if (goodsDeliveryAddress == null) { log.error("GoodsDetailController -> insertProduct() error!"); @@ -191,7 +195,15 @@ public class DeliveryAddressController { ) { try { - GoodsUserAddress deliveryAddress = deliveryAddressService.queryDetail(id); + // 用户session + UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class); + + Map map = new HashMap<>(); + map.put("userId" , userSession.getUser().getId()); + map.put("status", 1); + map.put("id", id); + + GoodsUserAddress deliveryAddress = goodsUserAddressService.queryDetailByMap(map); if (deliveryAddress == null) { log.error("GoodsDetailController -> findGoodsDetailById() error!"); @@ -215,11 +227,16 @@ public class DeliveryAddressController { // 用户session UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class); - GoodsUserAddress deliveryAddress = deliveryAddressService.queryDetail(id); + Map map = new HashMap<>(); + map.put("userId" , userSession.getUser().getId()); + map.put("id", id); + + GoodsUserAddress deliveryAddress = goodsUserAddressService.queryDetailByMap(map); + if (deliveryAddress == null) { log.error("GoodsDetailController -> findGoodsDetailById() error!"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到相关信息"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "异常操作"); } if (!Objects.equals(userSession.getUser().getId(), deliveryAddress.getUserId())) { diff --git a/service/src/main/java/com/hfkj/haioil/HaiOilService.java b/service/src/main/java/com/hfkj/haioil/HaiOilService.java index 2128cfa..c3c6a55 100644 --- a/service/src/main/java/com/hfkj/haioil/HaiOilService.java +++ b/service/src/main/java/com/hfkj/haioil/HaiOilService.java @@ -39,6 +39,46 @@ public class HaiOilService { } + /** + * @MethodName refundPk + * @Description: 退券 + * @param map + * @return: com.alibaba.fastjson.JSONObject + * @Author: Sum1Dream + * @Date: 2025/1/23 下午4:38 + */ + public static JSONObject refundPk(Map map) throws Exception { + + JSONObject object = request("/openapi/discount/refundPk" , map); + + if (Objects.equals(object.getString("return_code"), "000000")) { + return object; + } else { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请求失败!"); + } + + } + + /** + * @MethodName refundPk + * @Description: 查询券包使用情况 + * @param map + * @return: com.alibaba.fastjson.JSONObject + * @Author: Sum1Dream + * @Date: 2025/1/23 下午4:38 + */ + public static JSONObject queryPkDetailByStockCode(Map map) throws Exception { + + JSONObject object = request("/openapi/discount/queryPkDetailByStockCode" , map); + + if (Objects.equals(object.getString("return_code"), "000000")) { + return object; + } else { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请求失败!"); + } + + } + /** * @MethodName queryListByPk * @Description: 查询优惠券包列表 diff --git a/service/src/main/java/com/hfkj/model/order/OrderModel.java b/service/src/main/java/com/hfkj/model/order/OrderModel.java index 8e6b3c4..1c4fdb7 100644 --- a/service/src/main/java/com/hfkj/model/order/OrderModel.java +++ b/service/src/main/java/com/hfkj/model/order/OrderModel.java @@ -1,5 +1,6 @@ package com.hfkj.model.order; +import com.alibaba.fastjson.JSONObject; import com.hfkj.entity.BsOrder; import com.hfkj.entity.BsOrderChild; import com.hfkj.entity.BsOrderDeduction; @@ -33,6 +34,11 @@ public class OrderModel extends BsOrder { */ private Object businessOrder; + /** + * 支付信息 + */ + private List payBusiness; + /** * 子订单列表 */ diff --git a/service/src/main/java/com/hfkj/service/discount/CouponDiscountPackageService.java b/service/src/main/java/com/hfkj/service/discount/CouponDiscountPackageService.java index e015fe0..508b7bb 100644 --- a/service/src/main/java/com/hfkj/service/discount/CouponDiscountPackageService.java +++ b/service/src/main/java/com/hfkj/service/discount/CouponDiscountPackageService.java @@ -131,6 +131,6 @@ public interface CouponDiscountPackageService { * @Author: Sum1Dream * @Date: 2024/7/17 下午3:01 */ - void giveDiscountPackage(Integer discountPackageId , String phone); + void giveDiscountPackage(Integer discountPackageId , String phone , Long couponOrderId); } diff --git a/service/src/main/java/com/hfkj/service/discount/impl/CouponDiscountPackageServiceImpl.java b/service/src/main/java/com/hfkj/service/discount/impl/CouponDiscountPackageServiceImpl.java index 1b747eb..964ca83 100644 --- a/service/src/main/java/com/hfkj/service/discount/impl/CouponDiscountPackageServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/discount/impl/CouponDiscountPackageServiceImpl.java @@ -172,7 +172,7 @@ public class CouponDiscountPackageServiceImpl implements CouponDiscountPackageSe } @Override - public void giveDiscountPackage(Integer discountPackageId, String phone) { + public void giveDiscountPackage(Integer discountPackageId, String phone , Long couponOrderId) { CouponDiscountPackage discountPackage = queryDetail(Long.valueOf(discountPackageId)); BsUser bsUser = bsUserService.getUser(phone); @@ -205,6 +205,7 @@ public class CouponDiscountPackageServiceImpl implements CouponDiscountPackageSe discountUserRel.setDiscountPercentage(discount.getPercentage()); discountUserRel.setUserId(bsUser.getId()); discountUserRel.setStatus(1); + discountUserRel.setCouponOrderId(couponOrderId); discountUserRel.setCreateTime(new Date()); // 计算使用有效期 diff --git a/service/src/main/java/com/hfkj/service/discount/impl/CouponDiscountUserRelServiceImpl.java b/service/src/main/java/com/hfkj/service/discount/impl/CouponDiscountUserRelServiceImpl.java index 61e1561..4ab51a6 100644 --- a/service/src/main/java/com/hfkj/service/discount/impl/CouponDiscountUserRelServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/discount/impl/CouponDiscountUserRelServiceImpl.java @@ -35,10 +35,14 @@ public class CouponDiscountUserRelServiceImpl implements CouponDiscountUserRelSe CouponDiscountUserRelExample example = new CouponDiscountUserRelExample(); CouponDiscountUserRelExample.Criteria criteria = example.createCriteria(); - if (MapUtils.getInteger(map, "userId") != null) { + if (MapUtils.getLong(map, "userId") != null) { criteria.andUserIdEqualTo(MapUtils.getLong(map, "userId")); } + if (MapUtils.getLong(map, "couponOrderId") != null) { + criteria.andCouponOrderIdEqualTo(MapUtils.getLong(map, "couponOrderId")); + } + if (MapUtils.getInteger(map, "status") != null) { criteria.andStatusEqualTo(MapUtils.getInteger(map, "status")); } diff --git a/service/src/main/java/com/hfkj/service/goods/impl/BsOrderGoodsServiceImpl.java b/service/src/main/java/com/hfkj/service/goods/impl/BsOrderGoodsServiceImpl.java index 2bcaa7d..431a454 100644 --- a/service/src/main/java/com/hfkj/service/goods/impl/BsOrderGoodsServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/goods/impl/BsOrderGoodsServiceImpl.java @@ -324,6 +324,7 @@ public class BsOrderGoodsServiceImpl implements BsOrderGoodsService { @Override public void confirmReceipt(Long orderGoodsId){ + BsOrderGoods orderGoods = queryDetail(orderGoodsId); if (orderGoods == null || diff --git a/service/src/main/java/com/hfkj/service/goods/impl/GoodPresentServiceImpl.java b/service/src/main/java/com/hfkj/service/goods/impl/GoodPresentServiceImpl.java index 309e7d5..6e03ef1 100644 --- a/service/src/main/java/com/hfkj/service/goods/impl/GoodPresentServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/goods/impl/GoodPresentServiceImpl.java @@ -74,7 +74,7 @@ public class GoodPresentServiceImpl implements GoodPresentService { for (GoodPresent goodPresent : list) { if (goodPresent.getType() == 1) { CouponDiscountPackage discountPackage = couponDiscountPackageService.findDiscountPackageByKey(goodPresent.getKey()); - couponDiscountPackageService.giveDiscountPackage(discountPackage.getId().intValue() , phone); + couponDiscountPackageService.giveDiscountPackage(discountPackage.getId().intValue() , phone , null); } else { map.put("discountPkNo" , goodPresent.getKey()); map.put("number" , 1); diff --git a/service/src/main/java/com/hfkj/service/goods/impl/GoodsUserAddressServiceImpl.java b/service/src/main/java/com/hfkj/service/goods/impl/GoodsUserAddressServiceImpl.java index 874eb6d..f1bcdfd 100644 --- a/service/src/main/java/com/hfkj/service/goods/impl/GoodsUserAddressServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/goods/impl/GoodsUserAddressServiceImpl.java @@ -40,6 +40,8 @@ public class GoodsUserAddressServiceImpl implements GoodsUserAddressService { return goodsUserAddressMapper.selectByPrimaryKey(id); } + + @Override public GoodsUserAddress queryDetailByMap(Map map) { GoodsUserAddressExample example = new GoodsUserAddressExample(); @@ -48,6 +50,9 @@ public class GoodsUserAddressServiceImpl implements GoodsUserAddressService { if (MapUtils.getLong(map, "userId") != null) { criteria.andUserIdEqualTo(MapUtils.getLong(map, "userId")); } + if (MapUtils.getLong(map, "id") != null) { + criteria.andIdEqualTo(MapUtils.getLong(map, "id")); + } if (MapUtils.getBoolean(map, "whetherDefault") != null) { criteria.andWhetherDefaultEqualTo(MapUtils.getBoolean(map, "whetherDefault")); } diff --git a/service/src/main/java/com/hfkj/service/order/OrderPaySuccessService.java b/service/src/main/java/com/hfkj/service/order/OrderPaySuccessService.java index a2d79cb..5c29915 100644 --- a/service/src/main/java/com/hfkj/service/order/OrderPaySuccessService.java +++ b/service/src/main/java/com/hfkj/service/order/OrderPaySuccessService.java @@ -162,7 +162,7 @@ public class OrderPaySuccessService { CouponDiscountPackage couponDiscountPackage = discountPackageService.findDiscountPackageByKey(vpd.getKey()); if (couponDiscountPackage != null) { - couponDiscountPackageService.giveDiscountPackage(couponDiscountPackage.getId().intValue() , order.getUserPhone()); + couponDiscountPackageService.giveDiscountPackage(couponDiscountPackage.getId().intValue() , order.getUserPhone() , couponNo.getId()) ; couponNo.setExpireTime(couponDiscountPackage.getEffectiveTime()); couponNo.setDeliverTime(new Date()); couponNo.setGoodsVpdSourceCouNo(couponDiscountPackage.getKey()); @@ -177,15 +177,13 @@ public class OrderPaySuccessService { map.put("number" , 1); map.put("phone" , order.getUserPhone()); JSONObject returnParam = HaiOilService.pushPk(map); - - if (returnParam.getString("return_code").equals("000000")) { - JSONArray dataArray = returnParam.getJSONObject("return_data").getJSONArray("codeList"); - couponNo.setExpireTime(dataArray.getJSONObject(0).getDate("expirationDate")); - couponNo.setDeliverTime(new Date()); - couponNo.setGoodsVpdSourceCouNo(returnParam.getJSONObject("return_data").getString("reqId")); - couponNo.setStatus(OrderCouponNoStatusEnum.status2.getCode()); - orderCouponNoService.editData(couponNo); - } + JSONArray dataArray = returnParam.getJSONObject("return_data").getJSONArray("list"); + couponNo.setExpireTime(dataArray.getJSONObject(0).getJSONArray("codeList").getJSONObject(0).getDate("expirationDate")); + couponNo.setDeliverTime(new Date()); + couponNo.setChannelOrderNo(returnParam.getJSONObject("return_data").getString("reqId")); + couponNo.setGoodsVpdSourceCouNo(dataArray.getJSONObject(0).getString("discountPkStockCode")); + couponNo.setStatus(OrderCouponNoStatusEnum.status2.getCode()); + orderCouponNoService.editData(couponNo); }else if (vpd.getSource() == GoodsVpdSourceEnum.type4.getCode()) { // 推送给汇联通 diff --git a/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java b/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java index 9acdc3a..4d68fcd 100644 --- a/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java @@ -9,10 +9,16 @@ import com.hfkj.common.utils.DateUtil; import com.hfkj.common.utils.RandomUtils; import com.hfkj.dao.BsOrderRefundMapper; import com.hfkj.entity.*; +import com.hfkj.haioil.HaiOilService; import com.hfkj.mer.BsMerPayConfigService; import com.hfkj.model.order.OrderChildModel; import com.hfkj.model.order.OrderModel; +import com.hfkj.model.order.orderExport.MerOrderSettlementDetailModel; +import com.hfkj.service.coupon.BsOrderCouponNoService; +import com.hfkj.service.coupon.BsOrderCouponService; +import com.hfkj.service.discount.CouponDiscountUserRelService; import com.hfkj.service.goods.BsOrderMeiTuanService; +import com.hfkj.service.goods.GoodsVpdService; import com.hfkj.service.hlt.HltCardRefundService; import com.hfkj.service.hlt.HuiLianTongUnionCardService; import com.hfkj.service.order.BsOrderChildService; @@ -22,6 +28,7 @@ import com.hfkj.service.order.OrderRefundSuccessService; import com.hfkj.service.pay.HuiPayService; import com.hfkj.service.pay.huift.TradeService; import com.hfkj.service.user.UserIntegralService; +import com.hfkj.sysenum.GoodsVpdSourceEnum; import com.hfkj.sysenum.UserIntegralRecordOpUserTypeEnum; import com.hfkj.sysenum.UserIntegralRecordSourceTypeEnum; import com.hfkj.sysenum.mer.PayPlatformEnum; @@ -64,6 +71,12 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { private OrderRefundSuccessService orderRefundSuccessService; @Resource private BsOrderMeiTuanService orderMeiTuanService; + @Resource + private BsOrderCouponService orderCouponService; + @Resource + private BsOrderCouponNoService orderCouponNoService; + @Resource + private CouponDiscountUserRelService discountUserRelService; @Override public void editData(BsOrderRefund data) { data.setUpdateTime(new Date()); @@ -251,6 +264,9 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { } + + // 查询可退款金额 + @Override @Transactional(propagation= Propagation.REQUIRES_NEW,rollbackFor= {RuntimeException.class}) public BsOrderRefund meiTuanRefund(String tradeRefundNo, String tradeNo , BigDecimal refundPrice, String remark) { @@ -446,4 +462,37 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService { return orderRefundMapper.selectByExample(example); } + + private BigDecimal getRefundAmount(OrderChildModel orderChild) throws Exception{ + + // 查询卡券订单 + BsOrderCoupon orderCoupon = orderCouponService.getDetailByChildOrderNo(orderChild.getChildOrderNo()); + // 查询卡券订单的卡密 + List couponNoList = orderCouponNoService.getListByCouponOrderId(orderCoupon.getId()); + + BigDecimal refundAmount = BigDecimal.ZERO; + + // 查询内部优惠券包剩余情况 + for (BsOrderCouponNo couponNo : couponNoList) { + // 内部优惠券 + if (couponNo.getGoodsVpdSource() == GoodsVpdSourceEnum.type1.getCode()) { + // 查询用户优惠券使用情况 + Map map = new HashMap<>(); + map.put("couponOrderId" , couponNo.getId()); + List userRelList = discountUserRelService.getList(map); + refundAmount = userRelList.stream().filter(s->s.getStatus().equals(2)).map(CouponDiscountUserRel::getDiscountPrice).reduce(BigDecimal.ZERO, BigDecimal::add).add(userRelList.stream().filter(s->s.getStatus().equals(1)).map(CouponDiscountUserRel::getDiscountPrice).reduce(BigDecimal.ZERO, BigDecimal::add)); + } else if (couponNo.getGoodsVpdSource() == GoodsVpdSourceEnum.type3.getCode()) { + // 查询嗨加油优惠券使用剩余情况 + Map map = new HashMap<>(); + map.put("reqId" ,couponNo.getChannelOrderNo()); + map.put("discountPkStockCode" , couponNo.getGoodsVpdSourceCouNo()); + JSONObject returnParam = HaiOilService.queryPkDetailByStockCode(map); + } + } + // 查询嗨加油优惠券包剩余情况 + + return refundAmount; + } + } + \ No newline at end of file diff --git a/service/src/main/java/com/hfkj/service/order/impl/BsOrderServiceImpl.java b/service/src/main/java/com/hfkj/service/order/impl/BsOrderServiceImpl.java index de0499a..c518f70 100644 --- a/service/src/main/java/com/hfkj/service/order/impl/BsOrderServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/order/impl/BsOrderServiceImpl.java @@ -11,6 +11,7 @@ import com.hfkj.dao.BsOrderMapper; import com.hfkj.entity.*; import com.hfkj.jd.JdPostService; import com.hfkj.jd.JdService; +import com.hfkj.mer.BsMerPayConfigService; import com.hfkj.model.order.OrderChildModel; import com.hfkj.model.order.OrderModel; import com.hfkj.mqtopic.OrderTopic; @@ -99,6 +100,8 @@ public class BsOrderServiceImpl implements BsOrderService { private GoodsSpecsService goodsSpecsService; @Resource private GoodsUserAddressService goodsUserAddressService; + @Resource + private BsMerPayConfigService bsMerPayConfigService; @Override public BsOrder editData(BsOrder order) { @@ -151,9 +154,12 @@ public class BsOrderServiceImpl implements BsOrderService { for (OrderChildModel child : order.getOrderChildList()) { // 查询规格 GoodsSpecs specs = goodsSpecsService.queryDetail(child.getProductSpecId()); - // 校验商品购买是否超过库存 - if (specs.getStock() < child.getProductCount()) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商品库存不足!"); + + if (specs != null) { + // 校验商品购买是否超过库存 + if (specs.getStock() < child.getProductCount()) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商品库存不足!"); + } } child.setOrderNo(order.getOrderNo()); @@ -585,6 +591,12 @@ public class BsOrderServiceImpl implements BsOrderService { @Override public OrderModel getDetail(String orderNo){ + + List payConfigs = bsMerPayConfigService.getList(new HashMap<>()); + + List payConfigList = new ArrayList<>(); + Map> mapPay = new HashMap<>(); + OrderModel orderModel = new OrderModel(); BeanUtils.copyProperties(getOrder(orderNo), orderModel); // 优惠 @@ -599,6 +611,7 @@ public class BsOrderServiceImpl implements BsOrderService { orderModel.setBusiness(orderChild.getBusiness()); } + mapPay.put(String.valueOf(orderChild.getMerId()), payConfigs.stream().filter(o->o.getMerId().equals(orderChild.getMerId())).collect(Collectors.toList())); if (orderChild.getProductType().equals(OrderChildProductTypeEnum.type3.getCode())) { BsOrderCinema bsOrderCinema = bsOrderCinemaService.findGoodsOrder(orderNo); @@ -622,10 +635,39 @@ public class BsOrderServiceImpl implements BsOrderService { } } + } + List> values = new ArrayList<>(mapPay.values()); + for (List value : values) { + if (value.size() < 2) { + payConfigList.addAll(value); + } } + if (payConfigList.isEmpty()) { + payConfigList.addAll(values.get(0)); + } + + System.out.println(payConfigList); + + + // 插入支付方式 + List jsonObjects = new ArrayList<>(); + for (BsMerPayConfig payConfig : payConfigList) { + JSONObject object = new JSONObject(); + if (payConfig.getPayPlatform() == 1) { + object.put("payType" , 1); + } + if (payConfig.getPayPlatform() == 2) { + object.put("payType" , 2); + } + jsonObjects.add(object); + } + + jsonObjects = jsonObjects.stream().distinct().collect(Collectors.toList()); + + orderModel.setPayBusiness(jsonObjects); return orderModel; } diff --git a/service/src/main/resources/dev/commonConfig.properties b/service/src/main/resources/dev/commonConfig.properties index b492612..d844f50 100644 --- a/service/src/main/resources/dev/commonConfig.properties +++ b/service/src/main/resources/dev/commonConfig.properties @@ -82,9 +82,9 @@ yuShangAppKey=211395334 yuShangAppSecret=VxNTJua4FkmRVgIm8HgCSg== yuShangPostUrl=http://mbapiq.mbs.scyshy.com/ -haiOilPostUrl = https://test-oil.dctpay.com -haiOilAppid = hf7356c71fb97ab0 -haiOilAppSecret = 8aef995ff71485dc19b36e35f04c4016 +haiOilPostUrl = https://oil.dctpay.com +haiOilAppid = hf166f4b2ed75e71 +haiOilAppSecret = 5a11778cfdd4962282a359397bf4f86b jDPostUrl = https://test-oil.dctpay.com