提交代码

dev-discount
胡锐 3 years ago
parent b124eb007e
commit e06b245562
  1. 4
      hai-order/src/main/java/com/web/controller/OrderController.java
  2. 155
      hai-order/src/main/java/com/web/controller/OrderPayController.java
  3. 2
      hai-order/src/main/java/com/web/controller/TestController.java
  4. 23
      hai-order/src/main/resources/dev/logback.xml
  5. 12
      hai-service/src/main/java/com/hai/config/HuiLianTongUnionCardConfig.java
  6. 45
      hai-service/src/main/java/com/hai/dao/HighOrderMapper.java
  7. 41
      hai-service/src/main/java/com/hai/dao/HighOrderRefundMapper.java
  8. 30
      hai-service/src/main/java/com/hai/dao/HighOrderRefundSqlProvider.java
  9. 14
      hai-service/src/main/java/com/hai/dao/HighOrderSqlProvider.java
  10. 16
      hai-service/src/main/java/com/hai/entity/HighOrder.java
  11. 60
      hai-service/src/main/java/com/hai/entity/HighOrderExample.java
  12. 32
      hai-service/src/main/java/com/hai/entity/HighOrderRefund.java
  13. 108
      hai-service/src/main/java/com/hai/entity/HighOrderRefundExample.java
  14. 14
      hai-service/src/main/java/com/hai/order/service/OrderPaySuccessService.java
  15. 7
      hai-service/src/main/java/com/hai/order/service/OrderRefundService.java
  16. 20
      hai-service/src/main/java/com/hai/order/service/OrderService.java
  17. 30
      hai-service/src/main/java/com/hai/order/service/impl/OrderPayService.java
  18. 132
      hai-service/src/main/java/com/hai/order/service/impl/OrderPayServiceImpl.java
  19. 52
      hai-service/src/main/java/com/hai/order/service/impl/OrderPaySuccessServiceImpl.java
  20. 89
      hai-service/src/main/java/com/hai/order/service/impl/OrderRefundServiceImpl.java
  21. 106
      hai-service/src/main/java/com/hai/order/service/impl/OrderServiceImpl.java
  22. 12
      hai-service/src/main/java/com/hai/order/utils/OrderUtil.java

@ -144,7 +144,7 @@ public class OrderController {
return ResponseMsgUtil.exception(e); return ResponseMsgUtil.exception(e);
} }
} }
/*
@RequestMapping(value="/paySuccess",method = RequestMethod.POST) @RequestMapping(value="/paySuccess",method = RequestMethod.POST)
@ResponseBody @ResponseBody
@ApiOperation(value = "支付成功") @ApiOperation(value = "支付成功")
@ -160,7 +160,7 @@ public class OrderController {
log.error("OrderController -> paySuccess() error!",e); log.error("OrderController -> paySuccess() error!",e);
return ResponseMsgUtil.exception(e); return ResponseMsgUtil.exception(e);
} }
} }*/
@RequestMapping(value="/getDetailByOrderNo",method = RequestMethod.GET) @RequestMapping(value="/getDetailByOrderNo",method = RequestMethod.GET)
@ResponseBody @ResponseBody

@ -1,6 +1,5 @@
package com.web.controller; package com.web.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hai.common.exception.ErrorCode; import com.hai.common.exception.ErrorCode;
import com.hai.common.exception.ErrorHelp; import com.hai.common.exception.ErrorHelp;
@ -10,10 +9,8 @@ import com.hai.common.pay.entity.WeChatPayReqInfo;
import com.hai.common.pay.util.MD5Util; import com.hai.common.pay.util.MD5Util;
import com.hai.common.security.AESEncodeUtil; import com.hai.common.security.AESEncodeUtil;
import com.hai.common.security.UserCenter; import com.hai.common.security.UserCenter;
import com.hai.common.utils.MathUtils;
import com.hai.common.utils.ResponseMsgUtil; import com.hai.common.utils.ResponseMsgUtil;
import com.hai.config.CommonSysConst; import com.hai.config.CommonSysConst;
import com.hai.config.TuanYouConfig;
import com.hai.config.UnionPayConfig; import com.hai.config.UnionPayConfig;
import com.hai.config.WxOrderConfig; import com.hai.config.WxOrderConfig;
import com.hai.entity.*; import com.hai.entity.*;
@ -23,14 +20,10 @@ import com.hai.enum_type.MerchantStoreSourceType;
import com.hai.model.HighMerchantStoreModel; import com.hai.model.HighMerchantStoreModel;
import com.hai.model.HighUserModel; import com.hai.model.HighUserModel;
import com.hai.model.ResponseData; import com.hai.model.ResponseData;
import com.hai.model.UserInfoModel;
import com.hai.order.model.CreateOrderChildModel;
import com.hai.order.model.CreateOrderModel;
import com.hai.order.service.OrderService; import com.hai.order.service.OrderService;
import com.hai.order.type.OrderChildGoodsType; import com.hai.order.service.impl.OrderPayService;
import com.hai.order.type.OrderProductType; import com.hai.order.type.OrderProductType;
import com.hai.order.type.OrderStatus; import com.hai.order.type.OrderStatus;
import com.hai.order.utils.OrderUtil;
import com.hai.service.*; import com.hai.service.*;
import com.web.config.SysConst; import com.web.config.SysConst;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -66,10 +59,10 @@ public class OrderPayController {
private static Logger log = LoggerFactory.getLogger(OrderPayController.class); private static Logger log = LoggerFactory.getLogger(OrderPayController.class);
@Resource @Resource
private OrderService orderService; private UserCenter userCenter;
@Resource @Resource
private UserCenter userCenter; private HighUserCardService userCardService;
@Resource @Resource
private HighUserPayPasswordService userPayPasswordService; private HighUserPayPasswordService userPayPasswordService;
@ -77,6 +70,15 @@ public class OrderPayController {
@Resource @Resource
private HighMerchantStoreService merchantStoreService; private HighMerchantStoreService merchantStoreService;
@Resource
private OrderService orderService;
@Resource
private OrderPayService orderPayService;
@Resource
private UnionPayConfig unionPayConfig;
@Resource @Resource
private HighGasService gasService; private HighGasService gasService;
@ -89,10 +91,10 @@ public class OrderPayController {
@Resource @Resource
private WechatPayUtil wechatPayUtil; private WechatPayUtil wechatPayUtil;
@RequestMapping(value="/wxPay",method = RequestMethod.POST) @RequestMapping(value="/weixinPay",method = RequestMethod.POST)
@ResponseBody @ResponseBody
@ApiOperation(value = "微信支付") @ApiOperation(value = "微信支付")
public ResponseData wxPay(@RequestBody JSONObject body) { public ResponseData weixinPay(@RequestBody JSONObject body) {
try { try {
if (body == null if (body == null
@ -258,6 +260,12 @@ public class OrderPayController {
} }
String password = body.getString("password"); String password = body.getString("password");
// 查询用户与卡号的关系
HighUserCard userCard = userCardService.getDetailByUserCardNo(userInfoModel.getHighUser().getId(), body.getString("cardNo"));
if (userCard == null) {
log.error("OrderController --> orderToPay() ERROR", "未绑定卡号");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未绑定卡号");
}
// 查询用户支付密码 // 查询用户支付密码
HighUserPayPassword userPayPassword = userPayPasswordService.getDetailByUser(userInfoModel.getHighUser().getId()); HighUserPayPassword userPayPassword = userPayPasswordService.getDetailByUser(userInfoModel.getHighUser().getId());
if (userPayPassword == null) { if (userPayPassword == null) {
@ -273,7 +281,6 @@ public class OrderPayController {
log.error("orderToPay error!", ""); log.error("orderToPay error!", "");
throw ErrorHelp.genException(SysCode.System, ErrorCode.USER_PAY_PWD_ERROR, ""); throw ErrorHelp.genException(SysCode.System, ErrorCode.USER_PAY_PWD_ERROR, "");
} }
// 查询订单 // 查询订单
HighOrder order = orderService.getOrderDetailByNo(body.getString("orderNo")); HighOrder order = orderService.getOrderDetailByNo(body.getString("orderNo"));
if(!order.getOrderStatus().equals(OrderStatus.STATUS1.getNumber())) { if(!order.getOrderStatus().equals(OrderStatus.STATUS1.getNumber())) {
@ -281,7 +288,7 @@ public class OrderPayController {
throw ErrorHelp.genException(SysCode.System, ErrorCode.ORDER_NO_STAY_PAY, ""); throw ErrorHelp.genException(SysCode.System, ErrorCode.ORDER_NO_STAY_PAY, "");
} }
return ResponseMsgUtil.success(null); return ResponseMsgUtil.success(orderPayService.oilCardPay(order, userCard));
} catch (Exception e) { } catch (Exception e) {
log.error("OrderPayController -> oilCardPay() error!",e); log.error("OrderPayController -> oilCardPay() error!",e);
@ -297,109 +304,81 @@ public class OrderPayController {
if (body == null if (body == null
|| StringUtils.isBlank(body.getString("orderNo")) || StringUtils.isBlank(body.getString("orderNo"))
// || body.getInteger("openIdType") == null || StringUtils.isBlank(body.getString("cardNo"))
|| StringUtils.isBlank(body.getString("orderScene")) || StringUtils.isBlank(body.getString("password"))) {
|| StringUtils.isBlank(body.getString("openId")) log.error("oilCardPay error!", "参数错误");
) {
log.error("wxPay error!", "参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
} }
// 获取当前操作人信息
HighUserModel userInfoModel = userCenter.getSessionModel(HighUserModel.class);
if (userInfoModel == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.SEC_USER_EXPIRED, "");
}
String password = body.getString("password");
// 查询用户与卡号的关系
HighUserCard userCard = userCardService.getDetailByUserCardNo(userInfoModel.getHighUser().getId(), body.getString("cardNo"));
if (userCard == null) {
log.error("OrderController --> orderToPay() ERROR", "未绑定卡号");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未绑定卡号");
}
// 查询用户支付密码
HighUserPayPassword userPayPassword = userPayPasswordService.getDetailByUser(userInfoModel.getHighUser().getId());
if (userPayPassword == null) {
log.error("orderToPay error!", "未设置支付密码");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_SET_USER_PAY_PWD, "");
}
if (StringUtils.isBlank(password)) {
log.error("orderToPay error!", "未输入支付密码");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_ENTER_USER_PAY_PWD, "");
}
// 支付密码是否正确
if (!AESEncodeUtil.aesEncrypt(password).equals(userPayPassword.getPassword())) {
log.error("orderToPay error!", "");
throw ErrorHelp.genException(SysCode.System, ErrorCode.USER_PAY_PWD_ERROR, "");
}
// 查询订单
HighOrder order = orderService.getOrderDetailByNo(body.getString("orderNo"));
if(!order.getOrderStatus().equals(OrderStatus.STATUS1.getNumber())) {
log.error("OrderController --> orderToPay() ERROR", "订单不处于待支付状态");
throw ErrorHelp.genException(SysCode.System, ErrorCode.ORDER_NO_STAY_PAY, "");
}
return ResponseMsgUtil.success(null); return ResponseMsgUtil.success(orderPayService.hltCardPay(order, userCard));
} catch (Exception e) { } catch (Exception e) {
log.error("OrderController -> create() error!",e); log.error("OrderController -> hltCardPay() error!",e);
return ResponseMsgUtil.exception(e); return ResponseMsgUtil.exception(e);
} }
} }
/*
@RequestMapping(value="/unionPay",method = RequestMethod.POST) @RequestMapping(value="/unionPay",method = RequestMethod.POST)
@ResponseBody @ResponseBody
@ApiOperation(value = "银联支付") @ApiOperation(value = "银联支付")
public ResponseData unionPay(@RequestBody String reqBodyStr, HttpServletRequest request) { public ResponseData unionPay(@RequestBody JSONObject body, HttpServletRequest request) {
try { try {
if (StringUtils.isBlank(reqBodyStr)) { if (body == null || StringUtils.isBlank(body.getString("orderNo"))) {
log.error("orderToPay error!", "参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
JSONObject jsonObject = JSONObject.parseObject(reqBodyStr);
Long orderId = jsonObject.getLong("orderId");
if ( orderId == null) {
log.error("orderToPay error!", "参数错误"); log.error("orderToPay error!", "参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
} }
HighOrder order = highOrderService.getOrderById(orderId); HighOrder order = orderService.getOrderDetailByNo(body.getString("orderNo"));
if(order == null) { if(order == null) {
log.error("OrderController --> orderToPay() ERROR", "未找到订单信息"); log.error("OrderController --> orderToPay() ERROR", "未找到订单信息");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_ORDER, ""); throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_ORDER, "");
} }
//校验订单状态 订单状态:1 待支付 2 已支付 3.已完成 4. 已退款 5.已取消 if(!order.getOrderStatus().equals(OrderStatus.STATUS1.getNumber())) {
if(order.getOrderStatus() != 1) {
log.error("OrderController --> orderToPay() ERROR", "订单不处于待支付状态"); log.error("OrderController --> orderToPay() ERROR", "订单不处于待支付状态");
throw ErrorHelp.genException(SysCode.System, ErrorCode.ORDER_NO_STAY_PAY, ""); throw ErrorHelp.genException(SysCode.System, ErrorCode.ORDER_NO_STAY_PAY, "");
} }
// 商品类型 1:卡卷 2:金币充值 3:加油站
for (HighChildOrder childOrder : order.getHighChildOrderList()) {
if (childOrder.getGiveawayType() == false && childOrder.getGoodsType() == 1) {
HighCoupon coupon = highCouponService.getCouponById(childOrder.getGoodsId());
// 支付类型:1.微信支付 2.金币支付
// if (coupon.getPayType() != 1) {
// log.error("OrderController --> orderToPay() ERROR", "只支持微信支持");
// throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, coupon.getCouponName() + ",只支持微信支付");
// }
}
if (childOrder.getGoodsType() == 3) {
if (highOrderService.getGasTheDayOrderNum(order.getMemId()) >= 1) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "已达到每日加油次数上限");
}
// 查询加油站
HighMerchantStoreModel store = merchantStoreService.getMerchantStoreById(childOrder.getGoodsId());
if (store == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "已达到每日加油次数上限");
}
// 来源类型 1:平台自建 2:团油
if (store.getSourceType().equals(2)) {
// 查询账号余额
JSONObject accountInfo2JD = TuanYouConfig.queryCompanyAccountInfo2JD();
JSONArray result = accountInfo2JD.getJSONArray("result");
for (Object accountObject : result) {
JSONObject account = (JSONObject)accountObject;
*//* // 1:汽油:2:柴油;3:天然气
if (account.getInteger("energyType") == childOrder.getGasOilType()) {
// 支付金额 大于 团油账号余额
if(order.getPayPrice().compareTo(account.getBigDecimal("accountBalance")) == 1){
log.error("OrderController --> orderToPay() ERROR", "无法进行支付,请联系平台客服");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法进行支付,请联系平台客服");
}
}*//*
}
}
// 来源类型 1:平台自建 2:团油
if (store.getSourceType().equals(MerchantStoreSourceType.type3.getNumber())) {
BigDecimal account = new BigDecimal("0");
// 查询账号余额
HighMerchantAccount merAccount = merchantAccountService.getMerAccountDetail(store.getMerchantId());
if (merAccount != null) {
account = merAccount.getAmounts().subtract(merchantAccountService.countMerGasOilAmount(store.getMerchantId()));
}
// 客户加油金额 大于 商户账号余额
if(order.getTotalPrice().compareTo(account) == 1) {
log.error("OrderController --> orderToPay() ERROR", "暂时无法进行支付,请联系平台客服");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "暂时无法进行支付,请联系平台客服");
}
}
}
}
return ResponseMsgUtil.success(unionPayConfig.upPreOrder(UnionPayConfig.MER_ID3, UnionPayConfig.TERM_ID3, order.getOrderNo(), order.getPayPrice(), "购买商品", CommonSysConst.getSysConfig().getUnionPayNotifyUrl(), request)); return ResponseMsgUtil.success(unionPayConfig.upPreOrder(UnionPayConfig.MER_ID3, UnionPayConfig.TERM_ID3, order.getOrderNo(), order.getPayPrice(), "购买商品", CommonSysConst.getSysConfig().getUnionPayNotifyUrl(), request));
} catch (Exception e) { } catch (Exception e) {
log.error("orderToPay error!", e); log.error("orderToPay error!", e);
return ResponseMsgUtil.exception(e); return ResponseMsgUtil.exception(e);
} }
}*/ }
} }

@ -1 +1 @@
package com.web.controller; import com.hai.common.utils.*; import com.hai.entity.HighOrder; import com.hai.model.ResponseData; import com.hai.order.model.CreateOrderModel; import com.hai.order.service.OrderService; import com.hai.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.rocketmq.client.producer.SendCallback; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.common.message.Message; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.integration.support.MessageBuilder; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** * @Auther: 胡锐 * @Description: * @Date: 2021/3/26 23:08 */ @Controller @RequestMapping(value = "/test") @Api(value = "订单接口") public class TestController { private static Logger log = LoggerFactory.getLogger(TestController.class); @Autowired private RocketMQTemplate rocketMQTemplate; @Resource private OrderService orderService; @Resource private RedisUtil redisUtil; @Autowired private RedisTemplate redisTemplate; @RequestMapping(value = "/rocketMq", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "") public ResponseData rocketMq(@RequestParam(name = "topicGroup", required = true) String topicGroup, @RequestParam(name = "body", required = true) String body) { try { long startTime = System.currentTimeMillis(); // org.springframework.messaging.Message message = MessageBuilder.withPayload(order).build(); CreateOrderModel createOrder = new CreateOrderModel(); //发送对象消息 HighOrder order = rocketMQTemplate.sendAndReceive("order-topic:create", createOrder, HighOrder.class); System.out.println("订单号:" + order.getOrderNo()); // SendResult sendResult = rocketMQTemplate.syncSend("order-topic:create", message, 3000); /*List<HighOrder> list = new LinkedList<>(); for (int i = 0; i <= 100;i++) { list.add(orderService.getDetailByOrderNo("HF2022080918014365701")); *//* list.add(orderService.getDetailByOrderNo("HF2022080918014365701"));*//* *//* updateUserWithRedisLock("coupon_" + couponKey, i+""); new Thread(() -> {*//* *//* redisTemplate.opsForValue().setIfAbsent("coupon_" + couponKey, i); System.out.println("加入数据" + i);*//* // redisTemplate.delete("coupon" + couponKey); // System.out.println("释放数据" + index); *//* });*//* }*/ System.out.println(System.currentTimeMillis() - startTime); return ResponseMsgUtil.success(null); } catch (Exception e) { log.error("HighUserCardController --> rocketMq() error!", e); return ResponseMsgUtil.exception(e); } } public void updateUserWithRedisLock(String couponKey, String value) throws InterruptedException { // 占分布式锁,去redis占坑 // 1. 分布式锁占坑 Boolean lock = redisTemplate.opsForValue().setIfAbsent("coupon" + couponKey, value); if(lock) { //加锁成功... // todo business System.out.println("加锁成功: " + value); redisTemplate.delete("coupon" + couponKey); //删除key,释放锁 } else { System.out.println("加锁失败"); /* Thread.sleep(100); // 加锁失败,重试 updateUserWithRedisLock("sysUser");*/ } } } package com.web.controller; import com.hai.common.utils.*; import com.hai.config.HuiLianTongUnionCardConfig; import com.hai.entity.HighOrder; import com.hai.model.ResponseData; import com.hai.order.model.CreateOrderModel; import com.hai.order.service.OrderService; import com.hai.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.rocketmq.client.producer.SendCallback; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.common.message.Message; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.integration.support.MessageBuilder; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** * @Auther: 胡锐 * @Description: * @Date: 2021/3/26 23:08 */ @Controller @RequestMapping(value = "/test") @Api(value = "订单接口") public class TestController { private static Logger log = LoggerFactory.getLogger(TestController.class); @Autowired private RocketMQTemplate rocketMQTemplate; @Resource private OrderService orderService; @Resource private RedisUtil redisUtil; @Autowired private RedisTemplate redisTemplate; @RequestMapping(value = "/q", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "") public ResponseData q(@RequestParam(name = "topicGroup", required = true) String topicGroup, @RequestParam(name = "body", required = true) String body) { try { return ResponseMsgUtil.success(HuiLianTongUnionCardConfig.queryBalance("8800030132003656618")); } catch (Exception e) { log.error("HighUserCardController --> rocketMq() error!", e); return ResponseMsgUtil.exception(e); } } @RequestMapping(value = "/rocketMq", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "") public ResponseData rocketMq(@RequestParam(name = "topicGroup", required = true) String topicGroup, @RequestParam(name = "body", required = true) String body) { try { long startTime = System.currentTimeMillis(); // org.springframework.messaging.Message message = MessageBuilder.withPayload(order).build(); CreateOrderModel createOrder = new CreateOrderModel(); //发送对象消息 HighOrder order = rocketMQTemplate.sendAndReceive("order-topic:create", createOrder, HighOrder.class); System.out.println("订单号:" + order.getOrderNo()); // SendResult sendResult = rocketMQTemplate.syncSend("order-topic:create", message, 3000); /*List<HighOrder> list = new LinkedList<>(); for (int i = 0; i <= 100;i++) { list.add(orderService.getDetailByOrderNo("HF2022080918014365701")); *//* list.add(orderService.getDetailByOrderNo("HF2022080918014365701"));*//* *//* updateUserWithRedisLock("coupon_" + couponKey, i+""); new Thread(() -> {*//* *//* redisTemplate.opsForValue().setIfAbsent("coupon_" + couponKey, i); System.out.println("加入数据" + i);*//* // redisTemplate.delete("coupon" + couponKey); // System.out.println("释放数据" + index); *//* });*//* }*/ System.out.println(System.currentTimeMillis() - startTime); return ResponseMsgUtil.success(null); } catch (Exception e) { log.error("HighUserCardController --> rocketMq() error!", e); return ResponseMsgUtil.exception(e); } } public void updateUserWithRedisLock(String couponKey, String value) throws InterruptedException { // 占分布式锁,去redis占坑 // 1. 分布式锁占坑 Boolean lock = redisTemplate.opsForValue().setIfAbsent("coupon" + couponKey, value); if(lock) { //加锁成功... // todo business System.out.println("加锁成功: " + value); redisTemplate.delete("coupon" + couponKey); //删除key,释放锁 } else { System.out.println("加锁失败"); /* Thread.sleep(100); // 加锁失败,重试 updateUserWithRedisLock("sysUser");*/ } } }

@ -69,4 +69,27 @@
<logger name="com.hai" level="ERROR"> <logger name="com.hai" level="ERROR">
<appender-ref ref="errorlog" /> <appender-ref ref="errorlog" />
</logger> </logger>
<appender name="HltCardLog"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>log/HltCardLog.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/HltCardLog.log.%d.%i</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 64 MB -->
<maxFileSize>64 MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>
%d %p (%file:%line\)- %m%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
</appender>
<logger name="com.hai.config.HuiLianTongUnionCardConfig" level="INFO">
<appender-ref ref="HltCardLog" />
</logger>
</configuration> </configuration>

@ -25,6 +25,8 @@ import java.util.*;
*/ */
public class HuiLianTongUnionCardConfig { public class HuiLianTongUnionCardConfig {
private static Logger log = LoggerFactory.getLogger(HuiLianTongUnionCardConfig.class);
/** /**
* 根据手机号查询工会卡 * 根据手机号查询工会卡
* @param phone * @param phone
@ -235,7 +237,15 @@ public class HuiLianTongUnionCardConfig {
// MD5加密 // MD5加密
map.put("sign", MD5Util.MD5Encode(str, "UTF-8").toUpperCase()); map.put("sign", MD5Util.MD5Encode(str, "UTF-8").toUpperCase());
return HttpsUtils.doPost(CommonSysConst.getSysConfig().getHuiLianTongUnionCardUrl(), JSON.toJSONString(map));
log.info("============请求任务Start=============");
log.info("请求参数: " + JSON.toJSONString(map));
JSONObject returnObject = HttpsUtils.doPost(CommonSysConst.getSysConfig().getHuiLianTongUnionCardUrl(), JSON.toJSONString(map));
log.info("响应参数: " + returnObject.toJSONString());
log.info("============请求任务End==============");
return returnObject;
} }
private static JSONObject requestMembership(String method,Map<String,Object> param) throws Exception { private static JSONObject requestMembership(String method,Map<String,Object> param) throws Exception {

@ -53,14 +53,15 @@ public interface HighOrderMapper extends HighOrderMapperExt {
"pay_price, pay_real_price, ", "pay_price, pay_real_price, ",
"order_status, remarks, ", "order_status, remarks, ",
"create_time, surplus_refund_price, ", "create_time, surplus_refund_price, ",
"pay_time, finish_time, ", "surplus_refund_integral, pay_time, ",
"cancel_time, cancel_remarks, ", "finish_time, cancel_time, ",
"refund_time, account_merchant_num, ", "cancel_remarks, refund_time, ",
"profit_sharing_status, profit_sharing_record_id, ", "account_merchant_num, profit_sharing_status, ",
"whether_check, whether_rebate, ", "profit_sharing_record_id, whether_check, ",
"exception_status, exception_content, ", "whether_rebate, exception_status, ",
"ext_1, ext_2, ext_3, ", "exception_content, ext_1, ",
"ext_4, ext_5, ext_6)", "ext_2, ext_3, ext_4, ",
"ext_5, ext_6)",
"values (#{productType,jdbcType=INTEGER}, #{companyId,jdbcType=BIGINT}, ", "values (#{productType,jdbcType=INTEGER}, #{companyId,jdbcType=BIGINT}, ",
"#{companyName,jdbcType=VARCHAR}, #{merId,jdbcType=BIGINT}, ", "#{companyName,jdbcType=VARCHAR}, #{merId,jdbcType=BIGINT}, ",
"#{merName,jdbcType=VARCHAR}, #{storeId,jdbcType=BIGINT}, ", "#{merName,jdbcType=VARCHAR}, #{storeId,jdbcType=BIGINT}, ",
@ -75,14 +76,15 @@ public interface HighOrderMapper extends HighOrderMapperExt {
"#{payPrice,jdbcType=DECIMAL}, #{payRealPrice,jdbcType=DECIMAL}, ", "#{payPrice,jdbcType=DECIMAL}, #{payRealPrice,jdbcType=DECIMAL}, ",
"#{orderStatus,jdbcType=INTEGER}, #{remarks,jdbcType=VARCHAR}, ", "#{orderStatus,jdbcType=INTEGER}, #{remarks,jdbcType=VARCHAR}, ",
"#{createTime,jdbcType=TIMESTAMP}, #{surplusRefundPrice,jdbcType=DECIMAL}, ", "#{createTime,jdbcType=TIMESTAMP}, #{surplusRefundPrice,jdbcType=DECIMAL}, ",
"#{payTime,jdbcType=TIMESTAMP}, #{finishTime,jdbcType=TIMESTAMP}, ", "#{surplusRefundIntegral,jdbcType=INTEGER}, #{payTime,jdbcType=TIMESTAMP}, ",
"#{cancelTime,jdbcType=TIMESTAMP}, #{cancelRemarks,jdbcType=VARCHAR}, ", "#{finishTime,jdbcType=TIMESTAMP}, #{cancelTime,jdbcType=TIMESTAMP}, ",
"#{refundTime,jdbcType=TIMESTAMP}, #{accountMerchantNum,jdbcType=VARCHAR}, ", "#{cancelRemarks,jdbcType=VARCHAR}, #{refundTime,jdbcType=TIMESTAMP}, ",
"#{profitSharingStatus,jdbcType=BIT}, #{profitSharingRecordId,jdbcType=BIGINT}, ", "#{accountMerchantNum,jdbcType=VARCHAR}, #{profitSharingStatus,jdbcType=BIT}, ",
"#{whetherCheck,jdbcType=BIT}, #{whetherRebate,jdbcType=BIT}, ", "#{profitSharingRecordId,jdbcType=BIGINT}, #{whetherCheck,jdbcType=BIT}, ",
"#{exceptionStatus,jdbcType=BIT}, #{exceptionContent,jdbcType=VARCHAR}, ", "#{whetherRebate,jdbcType=BIT}, #{exceptionStatus,jdbcType=BIT}, ",
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR}, ", "#{exceptionContent,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, ",
"#{ext4,jdbcType=VARCHAR}, #{ext5,jdbcType=VARCHAR}, #{ext6,jdbcType=VARCHAR})" "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR}, #{ext4,jdbcType=VARCHAR}, ",
"#{ext5,jdbcType=VARCHAR}, #{ext6,jdbcType=VARCHAR})"
}) })
@Options(useGeneratedKeys=true,keyProperty="id") @Options(useGeneratedKeys=true,keyProperty="id")
int insert(HighOrder record); int insert(HighOrder record);
@ -123,6 +125,7 @@ public interface HighOrderMapper extends HighOrderMapperExt {
@Result(column="remarks", property="remarks", jdbcType=JdbcType.VARCHAR), @Result(column="remarks", property="remarks", jdbcType=JdbcType.VARCHAR),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="surplus_refund_price", property="surplusRefundPrice", jdbcType=JdbcType.DECIMAL), @Result(column="surplus_refund_price", property="surplusRefundPrice", jdbcType=JdbcType.DECIMAL),
@Result(column="surplus_refund_integral", property="surplusRefundIntegral", jdbcType=JdbcType.INTEGER),
@Result(column="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="finish_time", property="finishTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="finish_time", property="finishTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="cancel_time", property="cancelTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="cancel_time", property="cancelTime", jdbcType=JdbcType.TIMESTAMP),
@ -150,10 +153,10 @@ public interface HighOrderMapper extends HighOrderMapperExt {
"promote_code, mem_discount_id, mem_discount_name, mem_id, mem_name, mem_phone, ", "promote_code, mem_discount_id, mem_discount_name, mem_id, mem_name, mem_phone, ",
"order_no, pay_serial_no, pay_type, mem_card_id, mem_card_type, mem_card_no, ", "order_no, pay_serial_no, pay_type, mem_card_id, mem_card_type, mem_card_no, ",
"total_price, deduction_price, pay_gold, payable_price, pay_price, pay_real_price, ", "total_price, deduction_price, pay_gold, payable_price, pay_price, pay_real_price, ",
"order_status, remarks, create_time, surplus_refund_price, pay_time, finish_time, ", "order_status, remarks, create_time, surplus_refund_price, surplus_refund_integral, ",
"cancel_time, cancel_remarks, refund_time, account_merchant_num, profit_sharing_status, ", "pay_time, finish_time, cancel_time, cancel_remarks, refund_time, account_merchant_num, ",
"profit_sharing_record_id, whether_check, whether_rebate, exception_status, exception_content, ", "profit_sharing_status, profit_sharing_record_id, whether_check, whether_rebate, ",
"ext_1, ext_2, ext_3, ext_4, ext_5, ext_6", "exception_status, exception_content, ext_1, ext_2, ext_3, ext_4, ext_5, ext_6",
"from high_order", "from high_order",
"where id = #{id,jdbcType=BIGINT}" "where id = #{id,jdbcType=BIGINT}"
}) })
@ -188,6 +191,7 @@ public interface HighOrderMapper extends HighOrderMapperExt {
@Result(column="remarks", property="remarks", jdbcType=JdbcType.VARCHAR), @Result(column="remarks", property="remarks", jdbcType=JdbcType.VARCHAR),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="surplus_refund_price", property="surplusRefundPrice", jdbcType=JdbcType.DECIMAL), @Result(column="surplus_refund_price", property="surplusRefundPrice", jdbcType=JdbcType.DECIMAL),
@Result(column="surplus_refund_integral", property="surplusRefundIntegral", jdbcType=JdbcType.INTEGER),
@Result(column="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="pay_time", property="payTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="finish_time", property="finishTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="finish_time", property="finishTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="cancel_time", property="cancelTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="cancel_time", property="cancelTime", jdbcType=JdbcType.TIMESTAMP),
@ -249,6 +253,7 @@ public interface HighOrderMapper extends HighOrderMapperExt {
"remarks = #{remarks,jdbcType=VARCHAR},", "remarks = #{remarks,jdbcType=VARCHAR},",
"create_time = #{createTime,jdbcType=TIMESTAMP},", "create_time = #{createTime,jdbcType=TIMESTAMP},",
"surplus_refund_price = #{surplusRefundPrice,jdbcType=DECIMAL},", "surplus_refund_price = #{surplusRefundPrice,jdbcType=DECIMAL},",
"surplus_refund_integral = #{surplusRefundIntegral,jdbcType=INTEGER},",
"pay_time = #{payTime,jdbcType=TIMESTAMP},", "pay_time = #{payTime,jdbcType=TIMESTAMP},",
"finish_time = #{finishTime,jdbcType=TIMESTAMP},", "finish_time = #{finishTime,jdbcType=TIMESTAMP},",
"cancel_time = #{cancelTime,jdbcType=TIMESTAMP},", "cancel_time = #{cancelTime,jdbcType=TIMESTAMP},",

@ -46,12 +46,13 @@ public interface HighOrderRefundMapper extends HighOrderRefundMapperExt {
"goods_name, goods_desc, ", "goods_name, goods_desc, ",
"goods_img, goods_spec_name, ", "goods_img, goods_spec_name, ",
"goods_count, refund_order, ", "goods_count, refund_order, ",
"return_total_price, refund_price, ", "return_total_price, refund_goods_num, ",
"refund_gold, refund_remark, ", "refund_price, refund_integral, ",
"refund_status, refund_fail_reason, ", "refund_remark, refund_status, ",
"create_time, update_time, ", "refund_fail_reason, create_time, ",
"ext_1, ext_2, ext_3, ", "update_time, ext_1, ",
"ext_4, ext_5, ext_6)", "ext_2, ext_3, ext_4, ",
"ext_5, ext_6)",
"values (#{orderId,jdbcType=BIGINT}, #{orderNo,jdbcType=VARCHAR}, ", "values (#{orderId,jdbcType=BIGINT}, #{orderNo,jdbcType=VARCHAR}, ",
"#{orderChildId,jdbcType=BIGINT}, #{orderChildNo,jdbcType=VARCHAR}, ", "#{orderChildId,jdbcType=BIGINT}, #{orderChildNo,jdbcType=VARCHAR}, ",
"#{memId,jdbcType=BIGINT}, #{memName,jdbcType=VARCHAR}, #{memPhone,jdbcType=VARCHAR}, ", "#{memId,jdbcType=BIGINT}, #{memName,jdbcType=VARCHAR}, #{memPhone,jdbcType=VARCHAR}, ",
@ -59,12 +60,13 @@ public interface HighOrderRefundMapper extends HighOrderRefundMapperExt {
"#{goodsName,jdbcType=VARCHAR}, #{goodsDesc,jdbcType=VARCHAR}, ", "#{goodsName,jdbcType=VARCHAR}, #{goodsDesc,jdbcType=VARCHAR}, ",
"#{goodsImg,jdbcType=VARCHAR}, #{goodsSpecName,jdbcType=VARCHAR}, ", "#{goodsImg,jdbcType=VARCHAR}, #{goodsSpecName,jdbcType=VARCHAR}, ",
"#{goodsCount,jdbcType=INTEGER}, #{refundOrder,jdbcType=VARCHAR}, ", "#{goodsCount,jdbcType=INTEGER}, #{refundOrder,jdbcType=VARCHAR}, ",
"#{returnTotalPrice,jdbcType=DECIMAL}, #{refundPrice,jdbcType=DECIMAL}, ", "#{returnTotalPrice,jdbcType=DECIMAL}, #{refundGoodsNum,jdbcType=INTEGER}, ",
"#{refundGold,jdbcType=INTEGER}, #{refundRemark,jdbcType=VARCHAR}, ", "#{refundPrice,jdbcType=DECIMAL}, #{refundIntegral,jdbcType=INTEGER}, ",
"#{refundStatus,jdbcType=INTEGER}, #{refundFailReason,jdbcType=VARCHAR}, ", "#{refundRemark,jdbcType=VARCHAR}, #{refundStatus,jdbcType=INTEGER}, ",
"#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, ", "#{refundFailReason,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ",
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR}, ", "#{updateTime,jdbcType=TIMESTAMP}, #{ext1,jdbcType=VARCHAR}, ",
"#{ext4,jdbcType=VARCHAR}, #{ext5,jdbcType=VARCHAR}, #{ext6,jdbcType=VARCHAR})" "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR}, #{ext4,jdbcType=VARCHAR}, ",
"#{ext5,jdbcType=VARCHAR}, #{ext6,jdbcType=VARCHAR})"
}) })
@Options(useGeneratedKeys=true,keyProperty="id") @Options(useGeneratedKeys=true,keyProperty="id")
int insert(HighOrderRefund record); int insert(HighOrderRefund record);
@ -92,8 +94,9 @@ public interface HighOrderRefundMapper extends HighOrderRefundMapperExt {
@Result(column="goods_count", property="goodsCount", jdbcType=JdbcType.INTEGER), @Result(column="goods_count", property="goodsCount", jdbcType=JdbcType.INTEGER),
@Result(column="refund_order", property="refundOrder", jdbcType=JdbcType.VARCHAR), @Result(column="refund_order", property="refundOrder", jdbcType=JdbcType.VARCHAR),
@Result(column="return_total_price", property="returnTotalPrice", jdbcType=JdbcType.DECIMAL), @Result(column="return_total_price", property="returnTotalPrice", jdbcType=JdbcType.DECIMAL),
@Result(column="refund_goods_num", property="refundGoodsNum", jdbcType=JdbcType.INTEGER),
@Result(column="refund_price", property="refundPrice", jdbcType=JdbcType.DECIMAL), @Result(column="refund_price", property="refundPrice", jdbcType=JdbcType.DECIMAL),
@Result(column="refund_gold", property="refundGold", jdbcType=JdbcType.INTEGER), @Result(column="refund_integral", property="refundIntegral", jdbcType=JdbcType.INTEGER),
@Result(column="refund_remark", property="refundRemark", jdbcType=JdbcType.VARCHAR), @Result(column="refund_remark", property="refundRemark", jdbcType=JdbcType.VARCHAR),
@Result(column="refund_status", property="refundStatus", jdbcType=JdbcType.INTEGER), @Result(column="refund_status", property="refundStatus", jdbcType=JdbcType.INTEGER),
@Result(column="refund_fail_reason", property="refundFailReason", jdbcType=JdbcType.VARCHAR), @Result(column="refund_fail_reason", property="refundFailReason", jdbcType=JdbcType.VARCHAR),
@ -112,9 +115,9 @@ public interface HighOrderRefundMapper extends HighOrderRefundMapperExt {
"select", "select",
"id, order_id, order_no, order_child_id, order_child_no, mem_id, mem_name, mem_phone, ", "id, order_id, order_no, order_child_id, order_child_no, mem_id, mem_name, mem_phone, ",
"goods_type, goods_id, goods_name, goods_desc, goods_img, goods_spec_name, goods_count, ", "goods_type, goods_id, goods_name, goods_desc, goods_img, goods_spec_name, goods_count, ",
"refund_order, return_total_price, refund_price, refund_gold, refund_remark, ", "refund_order, return_total_price, refund_goods_num, refund_price, refund_integral, ",
"refund_status, refund_fail_reason, create_time, update_time, ext_1, ext_2, ext_3, ", "refund_remark, refund_status, refund_fail_reason, create_time, update_time, ",
"ext_4, ext_5, ext_6", "ext_1, ext_2, ext_3, ext_4, ext_5, ext_6",
"from high_order_refund", "from high_order_refund",
"where id = #{id,jdbcType=BIGINT}" "where id = #{id,jdbcType=BIGINT}"
}) })
@ -136,8 +139,9 @@ public interface HighOrderRefundMapper extends HighOrderRefundMapperExt {
@Result(column="goods_count", property="goodsCount", jdbcType=JdbcType.INTEGER), @Result(column="goods_count", property="goodsCount", jdbcType=JdbcType.INTEGER),
@Result(column="refund_order", property="refundOrder", jdbcType=JdbcType.VARCHAR), @Result(column="refund_order", property="refundOrder", jdbcType=JdbcType.VARCHAR),
@Result(column="return_total_price", property="returnTotalPrice", jdbcType=JdbcType.DECIMAL), @Result(column="return_total_price", property="returnTotalPrice", jdbcType=JdbcType.DECIMAL),
@Result(column="refund_goods_num", property="refundGoodsNum", jdbcType=JdbcType.INTEGER),
@Result(column="refund_price", property="refundPrice", jdbcType=JdbcType.DECIMAL), @Result(column="refund_price", property="refundPrice", jdbcType=JdbcType.DECIMAL),
@Result(column="refund_gold", property="refundGold", jdbcType=JdbcType.INTEGER), @Result(column="refund_integral", property="refundIntegral", jdbcType=JdbcType.INTEGER),
@Result(column="refund_remark", property="refundRemark", jdbcType=JdbcType.VARCHAR), @Result(column="refund_remark", property="refundRemark", jdbcType=JdbcType.VARCHAR),
@Result(column="refund_status", property="refundStatus", jdbcType=JdbcType.INTEGER), @Result(column="refund_status", property="refundStatus", jdbcType=JdbcType.INTEGER),
@Result(column="refund_fail_reason", property="refundFailReason", jdbcType=JdbcType.VARCHAR), @Result(column="refund_fail_reason", property="refundFailReason", jdbcType=JdbcType.VARCHAR),
@ -179,8 +183,9 @@ public interface HighOrderRefundMapper extends HighOrderRefundMapperExt {
"goods_count = #{goodsCount,jdbcType=INTEGER},", "goods_count = #{goodsCount,jdbcType=INTEGER},",
"refund_order = #{refundOrder,jdbcType=VARCHAR},", "refund_order = #{refundOrder,jdbcType=VARCHAR},",
"return_total_price = #{returnTotalPrice,jdbcType=DECIMAL},", "return_total_price = #{returnTotalPrice,jdbcType=DECIMAL},",
"refund_goods_num = #{refundGoodsNum,jdbcType=INTEGER},",
"refund_price = #{refundPrice,jdbcType=DECIMAL},", "refund_price = #{refundPrice,jdbcType=DECIMAL},",
"refund_gold = #{refundGold,jdbcType=INTEGER},", "refund_integral = #{refundIntegral,jdbcType=INTEGER},",
"refund_remark = #{refundRemark,jdbcType=VARCHAR},", "refund_remark = #{refundRemark,jdbcType=VARCHAR},",
"refund_status = #{refundStatus,jdbcType=INTEGER},", "refund_status = #{refundStatus,jdbcType=INTEGER},",
"refund_fail_reason = #{refundFailReason,jdbcType=VARCHAR},", "refund_fail_reason = #{refundFailReason,jdbcType=VARCHAR},",

@ -92,12 +92,16 @@ public class HighOrderRefundSqlProvider {
sql.VALUES("return_total_price", "#{returnTotalPrice,jdbcType=DECIMAL}"); sql.VALUES("return_total_price", "#{returnTotalPrice,jdbcType=DECIMAL}");
} }
if (record.getRefundGoodsNum() != null) {
sql.VALUES("refund_goods_num", "#{refundGoodsNum,jdbcType=INTEGER}");
}
if (record.getRefundPrice() != null) { if (record.getRefundPrice() != null) {
sql.VALUES("refund_price", "#{refundPrice,jdbcType=DECIMAL}"); sql.VALUES("refund_price", "#{refundPrice,jdbcType=DECIMAL}");
} }
if (record.getRefundGold() != null) { if (record.getRefundIntegral() != null) {
sql.VALUES("refund_gold", "#{refundGold,jdbcType=INTEGER}"); sql.VALUES("refund_integral", "#{refundIntegral,jdbcType=INTEGER}");
} }
if (record.getRefundRemark() != null) { if (record.getRefundRemark() != null) {
@ -170,8 +174,9 @@ public class HighOrderRefundSqlProvider {
sql.SELECT("goods_count"); sql.SELECT("goods_count");
sql.SELECT("refund_order"); sql.SELECT("refund_order");
sql.SELECT("return_total_price"); sql.SELECT("return_total_price");
sql.SELECT("refund_goods_num");
sql.SELECT("refund_price"); sql.SELECT("refund_price");
sql.SELECT("refund_gold"); sql.SELECT("refund_integral");
sql.SELECT("refund_remark"); sql.SELECT("refund_remark");
sql.SELECT("refund_status"); sql.SELECT("refund_status");
sql.SELECT("refund_fail_reason"); sql.SELECT("refund_fail_reason");
@ -268,12 +273,16 @@ public class HighOrderRefundSqlProvider {
sql.SET("return_total_price = #{record.returnTotalPrice,jdbcType=DECIMAL}"); sql.SET("return_total_price = #{record.returnTotalPrice,jdbcType=DECIMAL}");
} }
if (record.getRefundGoodsNum() != null) {
sql.SET("refund_goods_num = #{record.refundGoodsNum,jdbcType=INTEGER}");
}
if (record.getRefundPrice() != null) { if (record.getRefundPrice() != null) {
sql.SET("refund_price = #{record.refundPrice,jdbcType=DECIMAL}"); sql.SET("refund_price = #{record.refundPrice,jdbcType=DECIMAL}");
} }
if (record.getRefundGold() != null) { if (record.getRefundIntegral() != null) {
sql.SET("refund_gold = #{record.refundGold,jdbcType=INTEGER}"); sql.SET("refund_integral = #{record.refundIntegral,jdbcType=INTEGER}");
} }
if (record.getRefundRemark() != null) { if (record.getRefundRemark() != null) {
@ -345,8 +354,9 @@ public class HighOrderRefundSqlProvider {
sql.SET("goods_count = #{record.goodsCount,jdbcType=INTEGER}"); sql.SET("goods_count = #{record.goodsCount,jdbcType=INTEGER}");
sql.SET("refund_order = #{record.refundOrder,jdbcType=VARCHAR}"); sql.SET("refund_order = #{record.refundOrder,jdbcType=VARCHAR}");
sql.SET("return_total_price = #{record.returnTotalPrice,jdbcType=DECIMAL}"); sql.SET("return_total_price = #{record.returnTotalPrice,jdbcType=DECIMAL}");
sql.SET("refund_goods_num = #{record.refundGoodsNum,jdbcType=INTEGER}");
sql.SET("refund_price = #{record.refundPrice,jdbcType=DECIMAL}"); sql.SET("refund_price = #{record.refundPrice,jdbcType=DECIMAL}");
sql.SET("refund_gold = #{record.refundGold,jdbcType=INTEGER}"); sql.SET("refund_integral = #{record.refundIntegral,jdbcType=INTEGER}");
sql.SET("refund_remark = #{record.refundRemark,jdbcType=VARCHAR}"); sql.SET("refund_remark = #{record.refundRemark,jdbcType=VARCHAR}");
sql.SET("refund_status = #{record.refundStatus,jdbcType=INTEGER}"); sql.SET("refund_status = #{record.refundStatus,jdbcType=INTEGER}");
sql.SET("refund_fail_reason = #{record.refundFailReason,jdbcType=VARCHAR}"); sql.SET("refund_fail_reason = #{record.refundFailReason,jdbcType=VARCHAR}");
@ -432,12 +442,16 @@ public class HighOrderRefundSqlProvider {
sql.SET("return_total_price = #{returnTotalPrice,jdbcType=DECIMAL}"); sql.SET("return_total_price = #{returnTotalPrice,jdbcType=DECIMAL}");
} }
if (record.getRefundGoodsNum() != null) {
sql.SET("refund_goods_num = #{refundGoodsNum,jdbcType=INTEGER}");
}
if (record.getRefundPrice() != null) { if (record.getRefundPrice() != null) {
sql.SET("refund_price = #{refundPrice,jdbcType=DECIMAL}"); sql.SET("refund_price = #{refundPrice,jdbcType=DECIMAL}");
} }
if (record.getRefundGold() != null) { if (record.getRefundIntegral() != null) {
sql.SET("refund_gold = #{refundGold,jdbcType=INTEGER}"); sql.SET("refund_integral = #{refundIntegral,jdbcType=INTEGER}");
} }
if (record.getRefundRemark() != null) { if (record.getRefundRemark() != null) {

@ -144,6 +144,10 @@ public class HighOrderSqlProvider {
sql.VALUES("surplus_refund_price", "#{surplusRefundPrice,jdbcType=DECIMAL}"); sql.VALUES("surplus_refund_price", "#{surplusRefundPrice,jdbcType=DECIMAL}");
} }
if (record.getSurplusRefundIntegral() != null) {
sql.VALUES("surplus_refund_integral", "#{surplusRefundIntegral,jdbcType=INTEGER}");
}
if (record.getPayTime() != null) { if (record.getPayTime() != null) {
sql.VALUES("pay_time", "#{payTime,jdbcType=TIMESTAMP}"); sql.VALUES("pay_time", "#{payTime,jdbcType=TIMESTAMP}");
} }
@ -255,6 +259,7 @@ public class HighOrderSqlProvider {
sql.SELECT("remarks"); sql.SELECT("remarks");
sql.SELECT("create_time"); sql.SELECT("create_time");
sql.SELECT("surplus_refund_price"); sql.SELECT("surplus_refund_price");
sql.SELECT("surplus_refund_integral");
sql.SELECT("pay_time"); sql.SELECT("pay_time");
sql.SELECT("finish_time"); sql.SELECT("finish_time");
sql.SELECT("cancel_time"); sql.SELECT("cancel_time");
@ -410,6 +415,10 @@ public class HighOrderSqlProvider {
sql.SET("surplus_refund_price = #{record.surplusRefundPrice,jdbcType=DECIMAL}"); sql.SET("surplus_refund_price = #{record.surplusRefundPrice,jdbcType=DECIMAL}");
} }
if (record.getSurplusRefundIntegral() != null) {
sql.SET("surplus_refund_integral = #{record.surplusRefundIntegral,jdbcType=INTEGER}");
}
if (record.getPayTime() != null) { if (record.getPayTime() != null) {
sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}");
} }
@ -520,6 +529,7 @@ public class HighOrderSqlProvider {
sql.SET("remarks = #{record.remarks,jdbcType=VARCHAR}"); sql.SET("remarks = #{record.remarks,jdbcType=VARCHAR}");
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
sql.SET("surplus_refund_price = #{record.surplusRefundPrice,jdbcType=DECIMAL}"); sql.SET("surplus_refund_price = #{record.surplusRefundPrice,jdbcType=DECIMAL}");
sql.SET("surplus_refund_integral = #{record.surplusRefundIntegral,jdbcType=INTEGER}");
sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}"); sql.SET("pay_time = #{record.payTime,jdbcType=TIMESTAMP}");
sql.SET("finish_time = #{record.finishTime,jdbcType=TIMESTAMP}"); sql.SET("finish_time = #{record.finishTime,jdbcType=TIMESTAMP}");
sql.SET("cancel_time = #{record.cancelTime,jdbcType=TIMESTAMP}"); sql.SET("cancel_time = #{record.cancelTime,jdbcType=TIMESTAMP}");
@ -664,6 +674,10 @@ public class HighOrderSqlProvider {
sql.SET("surplus_refund_price = #{surplusRefundPrice,jdbcType=DECIMAL}"); sql.SET("surplus_refund_price = #{surplusRefundPrice,jdbcType=DECIMAL}");
} }
if (record.getSurplusRefundIntegral() != null) {
sql.SET("surplus_refund_integral = #{surplusRefundIntegral,jdbcType=INTEGER}");
}
if (record.getPayTime() != null) { if (record.getPayTime() != null) {
sql.SET("pay_time = #{payTime,jdbcType=TIMESTAMP}"); sql.SET("pay_time = #{payTime,jdbcType=TIMESTAMP}");
} }

@ -174,6 +174,11 @@ public class HighOrder implements Serializable {
*/ */
private BigDecimal surplusRefundPrice; private BigDecimal surplusRefundPrice;
/**
* 可退款积分
*/
private Integer surplusRefundIntegral;
/** /**
* 支付时间 * 支付时间
*/ */
@ -498,6 +503,14 @@ public class HighOrder implements Serializable {
this.surplusRefundPrice = surplusRefundPrice; this.surplusRefundPrice = surplusRefundPrice;
} }
public Integer getSurplusRefundIntegral() {
return surplusRefundIntegral;
}
public void setSurplusRefundIntegral(Integer surplusRefundIntegral) {
this.surplusRefundIntegral = surplusRefundIntegral;
}
public Date getPayTime() { public Date getPayTime() {
return payTime; return payTime;
} }
@ -684,6 +697,7 @@ public class HighOrder implements Serializable {
&& (this.getRemarks() == null ? other.getRemarks() == null : this.getRemarks().equals(other.getRemarks())) && (this.getRemarks() == null ? other.getRemarks() == null : this.getRemarks().equals(other.getRemarks()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getSurplusRefundPrice() == null ? other.getSurplusRefundPrice() == null : this.getSurplusRefundPrice().equals(other.getSurplusRefundPrice())) && (this.getSurplusRefundPrice() == null ? other.getSurplusRefundPrice() == null : this.getSurplusRefundPrice().equals(other.getSurplusRefundPrice()))
&& (this.getSurplusRefundIntegral() == null ? other.getSurplusRefundIntegral() == null : this.getSurplusRefundIntegral().equals(other.getSurplusRefundIntegral()))
&& (this.getPayTime() == null ? other.getPayTime() == null : this.getPayTime().equals(other.getPayTime())) && (this.getPayTime() == null ? other.getPayTime() == null : this.getPayTime().equals(other.getPayTime()))
&& (this.getFinishTime() == null ? other.getFinishTime() == null : this.getFinishTime().equals(other.getFinishTime())) && (this.getFinishTime() == null ? other.getFinishTime() == null : this.getFinishTime().equals(other.getFinishTime()))
&& (this.getCancelTime() == null ? other.getCancelTime() == null : this.getCancelTime().equals(other.getCancelTime())) && (this.getCancelTime() == null ? other.getCancelTime() == null : this.getCancelTime().equals(other.getCancelTime()))
@ -738,6 +752,7 @@ public class HighOrder implements Serializable {
result = prime * result + ((getRemarks() == null) ? 0 : getRemarks().hashCode()); result = prime * result + ((getRemarks() == null) ? 0 : getRemarks().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getSurplusRefundPrice() == null) ? 0 : getSurplusRefundPrice().hashCode()); result = prime * result + ((getSurplusRefundPrice() == null) ? 0 : getSurplusRefundPrice().hashCode());
result = prime * result + ((getSurplusRefundIntegral() == null) ? 0 : getSurplusRefundIntegral().hashCode());
result = prime * result + ((getPayTime() == null) ? 0 : getPayTime().hashCode()); result = prime * result + ((getPayTime() == null) ? 0 : getPayTime().hashCode());
result = prime * result + ((getFinishTime() == null) ? 0 : getFinishTime().hashCode()); result = prime * result + ((getFinishTime() == null) ? 0 : getFinishTime().hashCode());
result = prime * result + ((getCancelTime() == null) ? 0 : getCancelTime().hashCode()); result = prime * result + ((getCancelTime() == null) ? 0 : getCancelTime().hashCode());
@ -795,6 +810,7 @@ public class HighOrder implements Serializable {
sb.append(", remarks=").append(remarks); sb.append(", remarks=").append(remarks);
sb.append(", createTime=").append(createTime); sb.append(", createTime=").append(createTime);
sb.append(", surplusRefundPrice=").append(surplusRefundPrice); sb.append(", surplusRefundPrice=").append(surplusRefundPrice);
sb.append(", surplusRefundIntegral=").append(surplusRefundIntegral);
sb.append(", payTime=").append(payTime); sb.append(", payTime=").append(payTime);
sb.append(", finishTime=").append(finishTime); sb.append(", finishTime=").append(finishTime);
sb.append(", cancelTime=").append(cancelTime); sb.append(", cancelTime=").append(cancelTime);

@ -2036,6 +2036,66 @@ public class HighOrderExample {
return (Criteria) this; return (Criteria) this;
} }
public Criteria andSurplusRefundIntegralIsNull() {
addCriterion("surplus_refund_integral is null");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralIsNotNull() {
addCriterion("surplus_refund_integral is not null");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralEqualTo(Integer value) {
addCriterion("surplus_refund_integral =", value, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralNotEqualTo(Integer value) {
addCriterion("surplus_refund_integral <>", value, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralGreaterThan(Integer value) {
addCriterion("surplus_refund_integral >", value, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralGreaterThanOrEqualTo(Integer value) {
addCriterion("surplus_refund_integral >=", value, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralLessThan(Integer value) {
addCriterion("surplus_refund_integral <", value, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralLessThanOrEqualTo(Integer value) {
addCriterion("surplus_refund_integral <=", value, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralIn(List<Integer> values) {
addCriterion("surplus_refund_integral in", values, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralNotIn(List<Integer> values) {
addCriterion("surplus_refund_integral not in", values, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralBetween(Integer value1, Integer value2) {
addCriterion("surplus_refund_integral between", value1, value2, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andSurplusRefundIntegralNotBetween(Integer value1, Integer value2) {
addCriterion("surplus_refund_integral not between", value1, value2, "surplusRefundIntegral");
return (Criteria) this;
}
public Criteria andPayTimeIsNull() { public Criteria andPayTimeIsNull() {
addCriterion("pay_time is null"); addCriterion("pay_time is null");
return (Criteria) this; return (Criteria) this;

@ -109,6 +109,11 @@ public class HighOrderRefund implements Serializable {
*/ */
private BigDecimal returnTotalPrice; private BigDecimal returnTotalPrice;
/**
* 退款商品数量
*/
private Integer refundGoodsNum;
/** /**
* 退款金额 * 退款金额
*/ */
@ -117,7 +122,7 @@ public class HighOrderRefund implements Serializable {
/** /**
* 退款积分 * 退款积分
*/ */
private Integer refundGold; private Integer refundIntegral;
/** /**
* 退款备注 * 退款备注
@ -297,6 +302,14 @@ public class HighOrderRefund implements Serializable {
this.returnTotalPrice = returnTotalPrice; this.returnTotalPrice = returnTotalPrice;
} }
public Integer getRefundGoodsNum() {
return refundGoodsNum;
}
public void setRefundGoodsNum(Integer refundGoodsNum) {
this.refundGoodsNum = refundGoodsNum;
}
public BigDecimal getRefundPrice() { public BigDecimal getRefundPrice() {
return refundPrice; return refundPrice;
} }
@ -305,12 +318,12 @@ public class HighOrderRefund implements Serializable {
this.refundPrice = refundPrice; this.refundPrice = refundPrice;
} }
public Integer getRefundGold() { public Integer getRefundIntegral() {
return refundGold; return refundIntegral;
} }
public void setRefundGold(Integer refundGold) { public void setRefundIntegral(Integer refundIntegral) {
this.refundGold = refundGold; this.refundIntegral = refundIntegral;
} }
public String getRefundRemark() { public String getRefundRemark() {
@ -430,8 +443,9 @@ public class HighOrderRefund implements Serializable {
&& (this.getGoodsCount() == null ? other.getGoodsCount() == null : this.getGoodsCount().equals(other.getGoodsCount())) && (this.getGoodsCount() == null ? other.getGoodsCount() == null : this.getGoodsCount().equals(other.getGoodsCount()))
&& (this.getRefundOrder() == null ? other.getRefundOrder() == null : this.getRefundOrder().equals(other.getRefundOrder())) && (this.getRefundOrder() == null ? other.getRefundOrder() == null : this.getRefundOrder().equals(other.getRefundOrder()))
&& (this.getReturnTotalPrice() == null ? other.getReturnTotalPrice() == null : this.getReturnTotalPrice().equals(other.getReturnTotalPrice())) && (this.getReturnTotalPrice() == null ? other.getReturnTotalPrice() == null : this.getReturnTotalPrice().equals(other.getReturnTotalPrice()))
&& (this.getRefundGoodsNum() == null ? other.getRefundGoodsNum() == null : this.getRefundGoodsNum().equals(other.getRefundGoodsNum()))
&& (this.getRefundPrice() == null ? other.getRefundPrice() == null : this.getRefundPrice().equals(other.getRefundPrice())) && (this.getRefundPrice() == null ? other.getRefundPrice() == null : this.getRefundPrice().equals(other.getRefundPrice()))
&& (this.getRefundGold() == null ? other.getRefundGold() == null : this.getRefundGold().equals(other.getRefundGold())) && (this.getRefundIntegral() == null ? other.getRefundIntegral() == null : this.getRefundIntegral().equals(other.getRefundIntegral()))
&& (this.getRefundRemark() == null ? other.getRefundRemark() == null : this.getRefundRemark().equals(other.getRefundRemark())) && (this.getRefundRemark() == null ? other.getRefundRemark() == null : this.getRefundRemark().equals(other.getRefundRemark()))
&& (this.getRefundStatus() == null ? other.getRefundStatus() == null : this.getRefundStatus().equals(other.getRefundStatus())) && (this.getRefundStatus() == null ? other.getRefundStatus() == null : this.getRefundStatus().equals(other.getRefundStatus()))
&& (this.getRefundFailReason() == null ? other.getRefundFailReason() == null : this.getRefundFailReason().equals(other.getRefundFailReason())) && (this.getRefundFailReason() == null ? other.getRefundFailReason() == null : this.getRefundFailReason().equals(other.getRefundFailReason()))
@ -466,8 +480,9 @@ public class HighOrderRefund implements Serializable {
result = prime * result + ((getGoodsCount() == null) ? 0 : getGoodsCount().hashCode()); result = prime * result + ((getGoodsCount() == null) ? 0 : getGoodsCount().hashCode());
result = prime * result + ((getRefundOrder() == null) ? 0 : getRefundOrder().hashCode()); result = prime * result + ((getRefundOrder() == null) ? 0 : getRefundOrder().hashCode());
result = prime * result + ((getReturnTotalPrice() == null) ? 0 : getReturnTotalPrice().hashCode()); result = prime * result + ((getReturnTotalPrice() == null) ? 0 : getReturnTotalPrice().hashCode());
result = prime * result + ((getRefundGoodsNum() == null) ? 0 : getRefundGoodsNum().hashCode());
result = prime * result + ((getRefundPrice() == null) ? 0 : getRefundPrice().hashCode()); result = prime * result + ((getRefundPrice() == null) ? 0 : getRefundPrice().hashCode());
result = prime * result + ((getRefundGold() == null) ? 0 : getRefundGold().hashCode()); result = prime * result + ((getRefundIntegral() == null) ? 0 : getRefundIntegral().hashCode());
result = prime * result + ((getRefundRemark() == null) ? 0 : getRefundRemark().hashCode()); result = prime * result + ((getRefundRemark() == null) ? 0 : getRefundRemark().hashCode());
result = prime * result + ((getRefundStatus() == null) ? 0 : getRefundStatus().hashCode()); result = prime * result + ((getRefundStatus() == null) ? 0 : getRefundStatus().hashCode());
result = prime * result + ((getRefundFailReason() == null) ? 0 : getRefundFailReason().hashCode()); result = prime * result + ((getRefundFailReason() == null) ? 0 : getRefundFailReason().hashCode());
@ -505,8 +520,9 @@ public class HighOrderRefund implements Serializable {
sb.append(", goodsCount=").append(goodsCount); sb.append(", goodsCount=").append(goodsCount);
sb.append(", refundOrder=").append(refundOrder); sb.append(", refundOrder=").append(refundOrder);
sb.append(", returnTotalPrice=").append(returnTotalPrice); sb.append(", returnTotalPrice=").append(returnTotalPrice);
sb.append(", refundGoodsNum=").append(refundGoodsNum);
sb.append(", refundPrice=").append(refundPrice); sb.append(", refundPrice=").append(refundPrice);
sb.append(", refundGold=").append(refundGold); sb.append(", refundIntegral=").append(refundIntegral);
sb.append(", refundRemark=").append(refundRemark); sb.append(", refundRemark=").append(refundRemark);
sb.append(", refundStatus=").append(refundStatus); sb.append(", refundStatus=").append(refundStatus);
sb.append(", refundFailReason=").append(refundFailReason); sb.append(", refundFailReason=").append(refundFailReason);

@ -1236,6 +1236,66 @@ public class HighOrderRefundExample {
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoodsNumIsNull() {
addCriterion("refund_goods_num is null");
return (Criteria) this;
}
public Criteria andRefundGoodsNumIsNotNull() {
addCriterion("refund_goods_num is not null");
return (Criteria) this;
}
public Criteria andRefundGoodsNumEqualTo(Integer value) {
addCriterion("refund_goods_num =", value, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumNotEqualTo(Integer value) {
addCriterion("refund_goods_num <>", value, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumGreaterThan(Integer value) {
addCriterion("refund_goods_num >", value, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumGreaterThanOrEqualTo(Integer value) {
addCriterion("refund_goods_num >=", value, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumLessThan(Integer value) {
addCriterion("refund_goods_num <", value, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumLessThanOrEqualTo(Integer value) {
addCriterion("refund_goods_num <=", value, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumIn(List<Integer> values) {
addCriterion("refund_goods_num in", values, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumNotIn(List<Integer> values) {
addCriterion("refund_goods_num not in", values, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumBetween(Integer value1, Integer value2) {
addCriterion("refund_goods_num between", value1, value2, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundGoodsNumNotBetween(Integer value1, Integer value2) {
addCriterion("refund_goods_num not between", value1, value2, "refundGoodsNum");
return (Criteria) this;
}
public Criteria andRefundPriceIsNull() { public Criteria andRefundPriceIsNull() {
addCriterion("refund_price is null"); addCriterion("refund_price is null");
return (Criteria) this; return (Criteria) this;
@ -1296,63 +1356,63 @@ public class HighOrderRefundExample {
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldIsNull() { public Criteria andRefundIntegralIsNull() {
addCriterion("refund_gold is null"); addCriterion("refund_integral is null");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldIsNotNull() { public Criteria andRefundIntegralIsNotNull() {
addCriterion("refund_gold is not null"); addCriterion("refund_integral is not null");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldEqualTo(Integer value) { public Criteria andRefundIntegralEqualTo(Integer value) {
addCriterion("refund_gold =", value, "refundGold"); addCriterion("refund_integral =", value, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldNotEqualTo(Integer value) { public Criteria andRefundIntegralNotEqualTo(Integer value) {
addCriterion("refund_gold <>", value, "refundGold"); addCriterion("refund_integral <>", value, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldGreaterThan(Integer value) { public Criteria andRefundIntegralGreaterThan(Integer value) {
addCriterion("refund_gold >", value, "refundGold"); addCriterion("refund_integral >", value, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldGreaterThanOrEqualTo(Integer value) { public Criteria andRefundIntegralGreaterThanOrEqualTo(Integer value) {
addCriterion("refund_gold >=", value, "refundGold"); addCriterion("refund_integral >=", value, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldLessThan(Integer value) { public Criteria andRefundIntegralLessThan(Integer value) {
addCriterion("refund_gold <", value, "refundGold"); addCriterion("refund_integral <", value, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldLessThanOrEqualTo(Integer value) { public Criteria andRefundIntegralLessThanOrEqualTo(Integer value) {
addCriterion("refund_gold <=", value, "refundGold"); addCriterion("refund_integral <=", value, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldIn(List<Integer> values) { public Criteria andRefundIntegralIn(List<Integer> values) {
addCriterion("refund_gold in", values, "refundGold"); addCriterion("refund_integral in", values, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldNotIn(List<Integer> values) { public Criteria andRefundIntegralNotIn(List<Integer> values) {
addCriterion("refund_gold not in", values, "refundGold"); addCriterion("refund_integral not in", values, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldBetween(Integer value1, Integer value2) { public Criteria andRefundIntegralBetween(Integer value1, Integer value2) {
addCriterion("refund_gold between", value1, value2, "refundGold"); addCriterion("refund_integral between", value1, value2, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andRefundGoldNotBetween(Integer value1, Integer value2) { public Criteria andRefundIntegralNotBetween(Integer value1, Integer value2) {
addCriterion("refund_gold not between", value1, value2, "refundGold"); addCriterion("refund_integral not between", value1, value2, "refundIntegral");
return (Criteria) this; return (Criteria) this;
} }

@ -11,6 +11,20 @@ import com.hai.entity.HighOrder;
**/ **/
public interface OrderPaySuccessService { public interface OrderPaySuccessService {
/**
* 订单支付成功业务
* @param order
* @return
*/
HighOrder orderPaySuccessHandle(HighOrder order);
/**
* 异步处理订单支付成功业务
* @param order
* @return
*/
void asyncOrderPaySuccess(HighOrder order);
/** /**
* 卡券业务 * 卡券业务
* @param childOrder * @param childOrder

@ -2,6 +2,7 @@ package com.hai.order.service;
import com.hai.entity.HighChildOrder; import com.hai.entity.HighChildOrder;
import com.hai.entity.HighOrder; import com.hai.entity.HighOrder;
import com.hai.entity.HighOrderRefund;
/** /**
* 订单退款业务 * 订单退款业务
@ -16,14 +17,14 @@ public interface OrderRefundService {
* @param order 交易订单 * @param order 交易订单
* @param remarks 退款备注 * @param remarks 退款备注
*/ */
HighOrder createOrderRefund(HighOrder order, String remarks); HighOrder createOrderRefund(HighOrder order, String remarks) throws Exception;
/** /**
* 子订单退款 * 子订单退款
* @param orderChild 子订单 * @param orderChild 子订单
* @param refundCount 退款数量 * @param refundGoodsCount 退款商品数量
* @param remarks 退款备注 * @param remarks 退款备注
*/ */
HighChildOrder createOrderChildRefund(HighChildOrder orderChild,Integer refundCount, String remarks); HighOrderRefund createOrderChildRefund(HighChildOrder orderChild, String refundNo, Integer refundGoodsCount, String remarks) throws Exception;
} }

@ -49,15 +49,16 @@ public interface OrderService {
* @param remarks * @param remarks
* @return * @return
*/ */
HighOrder refundOrder(String orderNo,String remarks); HighOrder refundOrder(String orderNo,String remarks) throws Exception;
/** /**
* 子订单退款 * 子订单退款
* @param childOrderNo * @param childOrderNo
* @param refundGoodsNum
* @param remarks * @param remarks
* @return * @return
*/ */
HighOrder refundChildOrder(String childOrderNo,String remarks); HighOrder refundChildOrder(String orderNo,String childOrderNo,Integer refundGoodsNum,String remarks) throws Exception;
/** /**
* 根据订单号查询交易订单号详情 * 根据订单号查询交易订单号详情
@ -73,21 +74,6 @@ public interface OrderService {
*/ */
HighChildOrder getChildOrderByNo(String childOrderNo); HighChildOrder getChildOrderByNo(String childOrderNo);
/**
* 订单支付成功业务
* @param order
* @return
*/
HighOrder orderPaySuccessBus(HighOrder order);
/**
* 异步处理订单支付成功业务
* @param order
* @return
*/
void asyncOrderPaySuccess(HighOrder order);
List<HighOrder> getOrderList(Map<String,Object> param); List<HighOrder> getOrderList(Map<String,Object> param);
} }

@ -0,0 +1,30 @@
package com.hai.order.service.impl;
import com.hai.entity.HighOrder;
import com.hai.entity.HighUserCard;
/**
* 订单支付
* @className: OrderPayService
* @author: HuRui
* @date: 2022/9/5
**/
public interface OrderPayService {
/**
* 汇联通工会卡支付
* @param order 订单数据
* @param userCard 用户卡号
* @return
*/
HighOrder hltCardPay(HighOrder order, HighUserCard userCard) throws Exception;
/**
* 嗨森逛油卡支付
* @param order 订单数据
* @param userCard 用户卡号
* @return
*/
HighOrder oilCardPay(HighOrder order, HighUserCard userCard);
}

@ -0,0 +1,132 @@
package com.hai.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hai.common.exception.ErrorCode;
import com.hai.common.exception.ErrorHelp;
import com.hai.common.exception.SysCode;
import com.hai.config.HuiLianTongUnionCardConfig;
import com.hai.config.TuanYouConfig;
import com.hai.entity.*;
import com.hai.enum_type.OilCardRecordSourceTypeEnum;
import com.hai.enum_type.OrderPayTypeEnum;
import com.hai.enum_type.OrderPushType;
import com.hai.order.service.OrderPaySuccessService;
import com.hai.order.service.OrderService;
import com.hai.order.type.OrderChildStatus;
import com.hai.order.type.OrderPayType;
import com.hai.order.type.OrderProductType;
import com.hai.order.type.OrderStatus;
import com.hai.service.HighOilCardService;
import com.hai.service.HighUserCardService;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @className: OrderPayServiceImpl
* @author: HuRui
* @date: 2022/9/5
**/
public class OrderPayServiceImpl implements OrderPayService {
@Resource
private OrderPaySuccessService orderPaySuccessService;
@Resource
private HighUserCardService userCardService;
@Resource
private HighOilCardService oilCardService;
@Resource
private OrderService orderService;
@Override
public HighOrder hltCardPay(HighOrder order, HighUserCard userCard) throws Exception {
String goodsDesc = "";
String tranDesc = "";
String instCode = "11101527";
String businessType = "hisen_consume";
if (order.getProductType().equals(OrderProductType.PRODUCT_TYPE5.getNumber())) {
instCode = "11101526";
businessType = "sinopec_oil_code";
goodsDesc = "购买加油券";
tranDesc = order.getHighChildOrderList().get(0).getGoodsName();
} else if (order.getProductType().equals(OrderProductType.PRODUCT_TYPE4.getNumber())) {
goodsDesc = "积分充值" + order.getPayPrice() + "元";
tranDesc = "嗨森逛积分充值" + order.getPayPrice() + "元";
} else if (order.getProductType().equals(OrderProductType.PRODUCT_TYPE6.getNumber())) {
goodsDesc = "加油站加" + order.getPayPrice() + "元油";
tranDesc = "【" + order.getHighChildOrderList().get(0).getGoodsName() + "】加油" + order.getPayPrice() + "元";
} else if (order.getProductType().equals(OrderProductType.PRODUCT_TYPE7.getNumber())) {
goodsDesc = "购买优惠券包";
tranDesc = "购买" + order.getHighChildOrderList().get(0).getGoodsName() + "优惠券包";
} else {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "暂时无法支付,请使用其他支付方式");
}
// 工会卡支付
JSONObject consumption = HuiLianTongUnionCardConfig.consumption(order.getOrderNo(), userCard.getCardNo(), order.getPayPrice(), businessType, instCode, goodsDesc, tranDesc);
if (!consumption.getString("respCode").equals("0000")) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, consumption.getString("respMessage"));
}
// 响应参数
JSONObject consumptionResult = HuiLianTongUnionCardConfig.resolveResponse(consumption.getString("data"));
if (consumptionResult.getBoolean("success") != true) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, consumptionResult.getString("message"));
}
order.setMemCardId(userCard.getId());
order.setMemCardNo(userCard.getCardNo());
order.setMemCardType(userCard.getType());
order.setPaySerialNo(consumptionResult.getString("orderId")); // 支付流水号
order.setPayTime(new Date());
order.setPayType(OrderPayType.PAY_TYPE4.getNumber());
order.setPayRealPrice(order.getPayPrice());
order.setOrderStatus(OrderStatus.STATUS2.getNumber());
for (HighChildOrder childOrder : order.getHighChildOrderList()) {
childOrder.setChildOrderStatus(OrderChildStatus.STATUS2.getNumber());
childOrder.setPayTime(new Date());
}
HighOrder updateOrderData = orderService.updateOrderData(order);
// 异步处理订单业务
orderPaySuccessService.asyncOrderPaySuccess(order);
return updateOrderData;
}
@Override
public HighOrder oilCardPay(HighOrder order, HighUserCard userCard) {
// 油卡扣款
Map<String, Object> consumeMap = new HashMap<>();
consumeMap.put("sourceType", OilCardRecordSourceTypeEnum.type2.getType());
consumeMap.put("sourceId", order.getId());
consumeMap.put("sourceOrderNo", order.getOrderNo());
consumeMap.put("sourceContent", "订单号:" + order.getOrderNo() + ",消费:¥" + order.getPayPrice());
oilCardService.consume(userCard.getCardNo(), order.getPayPrice(), consumeMap);
order.setMemCardType(userCard.getType());
order.setMemCardId(userCard.getId());
order.setMemCardNo(userCard.getCardNo());
order.setPayTime(new Date());
order.setPayType(OrderPayTypeEnum.type7.getType());
order.setPayRealPrice(order.getPayPrice());
order.setOrderStatus(OrderStatus.STATUS2.getNumber());
HighOrder updateOrderData = orderService.updateOrderData(order);
// 异步处理业务
orderPaySuccessService.asyncOrderPaySuccess(order);
return updateOrderData;
}
}

@ -1,7 +1,12 @@
package com.hai.order.service.impl; package com.hai.order.service.impl;
import com.hai.common.exception.ErrorCode;
import com.hai.common.exception.ErrorHelp;
import com.hai.common.exception.SysCode;
import com.hai.entity.*; import com.hai.entity.*;
import com.hai.order.service.OrderPaySuccessService; import com.hai.order.service.OrderPaySuccessService;
import com.hai.order.service.OrderService;
import com.hai.order.type.OrderChildGoodsType;
import com.hai.service.*; import com.hai.service.*;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -17,6 +22,9 @@ import java.util.Date;
@Service("orderPaySuccessService") @Service("orderPaySuccessService")
public class OrderPaySuccessServiceImpl implements OrderPaySuccessService { public class OrderPaySuccessServiceImpl implements OrderPaySuccessService {
@Resource
private OrderService orderService;
@Resource @Resource
private HighCouponService couponService; private HighCouponService couponService;
@ -29,6 +37,50 @@ public class OrderPaySuccessServiceImpl implements OrderPaySuccessService {
@Resource @Resource
private HighUserService userService; private HighUserService userService;
@Override
public HighOrder orderPaySuccessHandle(HighOrder order) {
try {
for (HighChildOrder childOrder : order.getHighChildOrderList()) {
if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE1.getNumber())) {
couponHandle(order, childOrder);
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE2.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE3.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE4.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE5.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE6.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE7.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE8.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE9.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE10.getNumber())) {
}
}
return order;
} catch (Exception e) {
order.setExceptionStatus(true);
order.setExceptionContent(e.getMessage());
orderService.updateOrderData(order);
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, e.getMessage());
}
}
@Override
public void asyncOrderPaySuccess(HighOrder order) {
new Thread(() -> {
orderPaySuccessHandle(order);
});
}
@Override @Override
public void couponHandle(HighOrder order,HighChildOrder childOrder) throws Exception { public void couponHandle(HighOrder order,HighChildOrder childOrder) throws Exception {

@ -13,12 +13,15 @@ import com.hai.order.type.OrderChildStatus;
import com.hai.order.type.OrderPayType; import com.hai.order.type.OrderPayType;
import com.hai.order.type.OrderRefundStatus; import com.hai.order.type.OrderRefundStatus;
import com.hai.order.type.OrderStatus; import com.hai.order.type.OrderStatus;
import com.hai.order.utils.OrderUtil;
import com.hai.service.HighUserService; import com.hai.service.HighUserService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* @className: OrderRefundServiceImpl * @className: OrderRefundServiceImpl
@ -38,45 +41,25 @@ public class OrderRefundServiceImpl implements OrderRefundService {
private OrderService orderService; private OrderService orderService;
@Override @Override
public HighOrder createOrderRefund(HighOrder order, String remarks) { public HighOrder createOrderRefund(HighOrder order, String remarks) throws Exception {
// 使用了积分抵扣 // 退款订单号
if (order.getPayGold() != null && order.getPayGold().intValue() > 0) { String refundOrderNo = OrderUtil.generateRefundOrderNo();
// 积分返回
String remark = "订单" + order.getOrderNo() + "退款,退还积分:" + order.getPayGold(); for (HighChildOrder orderChild : order.getHighChildOrderList()) {
userService.goldHandle(order.getMemId(), order.getPayGold(), 1, 3, order.getId() , remark); // 创建退款记录
} HighOrderRefund orderRefund = createOrderChildRefund(orderChild, refundOrderNo, orderChild.getSaleCount(), remarks);
order.setOrderStatus(OrderStatus.STATUS4.getNumber()); orderChild.setSurplusRefundNum(orderChild.getSurplusRefundNum() - orderRefund.getRefundGoodsNum());
order.setRefundTime(new Date()); orderChild.setSurplusRefundPrice(orderChild.getSurplusRefundPrice().subtract(orderRefund.getRefundPrice()));
orderChild.setSurplusRefundIntegral(orderChild.getSurplusRefundIntegral() - orderRefund.getRefundIntegral());
if (orderChild.getSurplusRefundNum() == 0) {
for (HighChildOrder childOrder : order.getHighChildOrderList()) { orderChild.setChildOrderStatus(OrderChildStatus.STATUS6.getNumber());
childOrder.setRefundTime(new Date());
}
if (order.getPayType() != null) {
// 原路退款
if (order.getPayType().equals(OrderPayType.PAY_TYPE1.getNumber())) {
} else if (order.getPayType().equals(OrderPayType.PAY_TYPE2.getNumber())) {
} else if (order.getPayType().equals(OrderPayType.PAY_TYPE4.getNumber())) {
} else if (order.getPayType().equals(OrderPayType.PAY_TYPE5.getNumber())) {
} else if (order.getPayType().equals(OrderPayType.PAY_TYPE6.getNumber())) {
} else if (order.getPayType().equals(OrderPayType.PAY_TYPE7.getNumber())) {
} }
} }
return order;
return orderService.updateOrderData(order);
} }
@Override @Override
public HighChildOrder createOrderChildRefund(HighChildOrder orderChild,Integer refundCount, String remarks) { public HighOrderRefund createOrderChildRefund(HighChildOrder orderChild,String refundNo,Integer refundGoodsCount, String remarks) throws Exception {
if (orderChild.getChildOrderStatus().equals(OrderChildStatus.STATUS2.getNumber()) if (orderChild.getChildOrderStatus().equals(OrderChildStatus.STATUS2.getNumber())
|| orderChild.getChildOrderStatus().equals(OrderChildStatus.STATUS3.getNumber())){ || orderChild.getChildOrderStatus().equals(OrderChildStatus.STATUS3.getNumber())){
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "子订单状态错误"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "子订单状态错误");
@ -85,13 +68,19 @@ public class OrderRefundServiceImpl implements OrderRefundService {
&& orderChild.getSurplusRefundPrice().compareTo(new BigDecimal("0")) <= 0) { && orderChild.getSurplusRefundPrice().compareTo(new BigDecimal("0")) <= 0) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "子订单余额不足"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "子订单余额不足");
} }
// 判断剩余可退商品数量 // 判断剩余可退商品数量
if (orderChild.getSurplusRefundNum() < refundCount) { if (orderChild.getSurplusRefundNum() < refundGoodsCount) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款商品数量过多"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款商品数量超过剩余退款数量");
} }
// 交易订单
HighOrder order = orderService.getOrderDetailByNo(orderChild.getOrderNo());
if (order == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "交易订单不存在");
}
// 退款金额 剩余退款金额 / 退款数量
BigDecimal refundPrice = orderChild.getSurplusRefundPrice().divide(new BigDecimal(refundGoodsCount.toString())).setScale(2, BigDecimal.ROUND_DOWN);
// 退款积分 剩余退款积分 / 退款数量
Integer refundIntegral = new BigDecimal(orderChild.getSurplusRefundIntegral().toString()).divide(new BigDecimal(refundGoodsCount.toString()), 0, BigDecimal.ROUND_DOWN).intValue();
HighOrderRefund orderRefund = new HighOrderRefund(); HighOrderRefund orderRefund = new HighOrderRefund();
orderRefund.setOrderId(orderChild.getOrderId()); orderRefund.setOrderId(orderChild.getOrderId());
@ -108,18 +97,26 @@ public class OrderRefundServiceImpl implements OrderRefundService {
orderRefund.setGoodsImg(orderChild.getGoodsImg()); orderRefund.setGoodsImg(orderChild.getGoodsImg());
orderRefund.setGoodsSpecName(orderChild.getGoodsSpecName()); orderRefund.setGoodsSpecName(orderChild.getGoodsSpecName());
orderRefund.setGoodsCount(orderChild.getSaleCount()); orderRefund.setGoodsCount(orderChild.getSaleCount());
orderRefund.setRefundOrder(refundNo==null?OrderUtil.generateRefundOrderNo():refundNo);
orderRefund.setRefundOrder(orderChild.getOrderNo()); orderRefund.setRefundGoodsNum(refundGoodsCount);
orderRefund.setReturnTotalPrice(orderChild.getTotalActualPrice()); orderRefund.setReturnTotalPrice(refundPrice.add(new BigDecimal(refundIntegral).divide(new BigDecimal("100"))));
orderRefund.setRefundPrice(orderChild.getSurplusRefundPrice()); orderRefund.setRefundPrice(refundPrice);
orderRefund.setRefundGold(orderChild.getSurplusRefundIntegral()); orderRefund.setRefundIntegral(refundIntegral);
orderRefund.setRefundRemark(remarks); orderRefund.setRefundRemark(remarks);
orderRefund.setRefundStatus(OrderRefundStatus.STATUS1.getNumber()); orderRefund.setRefundStatus(OrderRefundStatus.STATUS1.getNumber());
orderRefund.setCreateTime(new Date()); orderRefund.setCreateTime(new Date());
orderRefund.setUpdateTime(new Date()); orderRefund.setUpdateTime(new Date());
orderRefundMapper.insert(orderRefund); orderRefundMapper.insert(orderRefund);
return orderRefund;
}
/**
* 金额退回用户
* @param orderNo 订单号
* @param refundPrice 退款金额
* @param refundIntegral 退款积分
*/
public void refundPrice(String orderNo,BigDecimal refundPrice,Integer refundIntegral) throws Exception {
return orderChild;
} }
} }

@ -33,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* @className: OrderServiceImpl * @className: OrderServiceImpl
@ -346,7 +347,7 @@ public class OrderServiceImpl implements OrderService {
} else if (orderData.getOrderStatus().equals(OrderStatus.STATUS2.getNumber())) { } else if (orderData.getOrderStatus().equals(OrderStatus.STATUS2.getNumber())) {
// 异步处理业务 // 异步处理业务
asyncOrderPaySuccess(orderData); paySuccessService.asyncOrderPaySuccess(orderData);
} }
return orderData; return orderData;
} }
@ -405,7 +406,7 @@ public class OrderServiceImpl implements OrderService {
} }
@Override @Override
public HighOrder refundOrder(String orderNo, String remarks) { public HighOrder refundOrder(String orderNo, String remarks) throws Exception {
HighOrder order = getOrderDetailByNo(orderNo); HighOrder order = getOrderDetailByNo(orderNo);
if (!order.getOrderStatus().equals(OrderStatus.STATUS2.getNumber()) if (!order.getOrderStatus().equals(OrderStatus.STATUS2.getNumber())
|| !order.getOrderStatus().equals(OrderStatus.STATUS3.getNumber())) { || !order.getOrderStatus().equals(OrderStatus.STATUS3.getNumber())) {
@ -421,12 +422,62 @@ public class OrderServiceImpl implements OrderService {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单无法退款!"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单无法退款!");
} }
return orderRefundService.createOrderRefund(order, remarks); // 创建退款
order = orderRefundService.createOrderRefund(order, remarks);
// todo 退款金额,原路返回
for (HighChildOrder childOrder : order.getHighChildOrderList()) {
childOrder.setRefundRemarks(remarks);
childOrder.setRefundTime(new Date());
childOrder.setChildOrderStatus(OrderChildStatus.STATUS4.getNumber());
}
order.setRefundTime(new Date());
order.setOrderStatus(OrderStatus.STATUS4.getNumber());
return updateOrderData(order);
} }
@Override @Override
public HighOrder refundChildOrder(String childOrderNo, String remarks) { public HighOrder refundChildOrder(String orderNo,String childOrderNo,Integer refundGoodsNum, String remarks) throws Exception {
return null; HighOrder order = getOrderDetailByNo(orderNo);
if (order == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "交易订单不存在");
}
List<HighChildOrder> collect = order.getHighChildOrderList().stream().filter(o -> o.getChildOrderNo().equals(childOrderNo)).collect(Collectors.toList());
if (collect == null || collect.size() == 0) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到订单");
}
HighChildOrder orderChild = collect.get(0);
// 创建退款记录
HighOrderRefund orderRefund = orderRefundService.createOrderChildRefund(orderChild, OrderUtil.generateRefundOrderNo(), refundGoodsNum, remarks);
orderChild.setSurplusRefundNum(orderChild.getSurplusRefundNum() - orderRefund.getRefundGoodsNum());
orderChild.setSurplusRefundPrice(orderChild.getSurplusRefundPrice().subtract(orderRefund.getRefundPrice()));
orderChild.setSurplusRefundIntegral(orderChild.getSurplusRefundIntegral() - orderRefund.getRefundIntegral());
if (orderChild.getSurplusRefundNum() == 0) {
orderChild.setChildOrderStatus(OrderChildStatus.STATUS4.getNumber());
}
// todo 退款金额,原路返回
// 购买的订单列表
List<HighChildOrder> buyChildOrderList = order.getHighChildOrderList()
.stream().filter(o -> o.getGiveawayType().equals(false))
.collect(Collectors.toList());
// 已退款的订单列表
List<HighChildOrder> refundList = buyChildOrderList.stream()
.filter(o -> o.getChildOrderStatus().equals(OrderChildStatus.STATUS4.getNumber()))
.collect(Collectors.toList());
// 校验购买的订单是否都已退款
if (refundList.size() >= buyChildOrderList.size()) {
order.setRefundTime(new Date());
order.setOrderStatus(OrderStatus.STATUS4.getNumber());
}
return updateOrderData(order);
} }
@Override @Override
@ -458,51 +509,6 @@ public class OrderServiceImpl implements OrderService {
return list.get(0); return list.get(0);
} }
@Override
public HighOrder orderPaySuccessBus(HighOrder order) {
try {
for (HighChildOrder childOrder : order.getHighChildOrderList()) {
if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE1.getNumber())) {
paySuccessService.couponHandle(order, childOrder);
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE2.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE3.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE4.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE5.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE6.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE7.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE8.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE9.getNumber())) {
} else if (childOrder.getGoodsType().equals(OrderChildGoodsType.TYPE10.getNumber())) {
}
}
return order;
} catch (Exception e) {
order.setExceptionStatus(true);
order.setExceptionContent(e.getMessage());
updateOrderData(order);
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, e.getMessage());
}
}
@Override
public void asyncOrderPaySuccess(HighOrder order) {
new Thread(() -> {
orderPaySuccessBus(order);
});
}
@Override @Override
public List<HighOrder> getOrderList(Map<String, Object> param) { public List<HighOrder> getOrderList(Map<String, Object> param) {
return null; return null;

@ -49,4 +49,16 @@ public class OrderUtil {
return DateUtil.date2String(new Date(),"yyyyMMddHHmmss") + randomNum; return DateUtil.date2String(new Date(),"yyyyMMddHHmmss") + randomNum;
} }
/**
* 生成退款订单号
* @return
* @throws Exception
*/
public static String generateRefundOrderNo() throws Exception {
// 5位随机数 + 1位线程生成数
String randomNum = (new Random().nextInt(899999) + 10000) + IDGenerator.nextId(1);
// 生成订单号
return DateUtil.date2String(new Date(),"yyyyMMddHHmmss") + randomNum;
}
} }

Loading…
Cancel
Save