|
@@ -16,10 +16,8 @@ import com.usky.dxtop.common.utils.*;
|
|
|
import com.usky.dxtop.common.utils.http.HttpUtils;
|
|
|
import com.usky.dxtop.common.utils.sign.Base64;
|
|
|
import com.usky.dxtop.mapper.OrderMapper;
|
|
|
-import com.usky.dxtop.model.CallApiLog;
|
|
|
-import com.usky.dxtop.model.Order;
|
|
|
-import com.usky.dxtop.service.CallApiLogService;
|
|
|
-import com.usky.dxtop.service.OrderService;
|
|
|
+import com.usky.dxtop.model.*;
|
|
|
+import com.usky.dxtop.service.*;
|
|
|
import com.usky.dxtop.service.api.TopApi;
|
|
|
import com.usky.dxtop.service.config.rabbitmq.charge.ChargeConsumeConfig;
|
|
|
import com.usky.dxtop.service.emun.OrderPayType;
|
|
@@ -75,14 +73,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
@Qualifier(ChargeConsumeConfig.TEMPLATE)
|
|
|
private RabbitTemplate rabbitTemplate;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private StaffRadioService staffRadioService;
|
|
|
+ @Autowired
|
|
|
+ private TopRadioService topRadioService;
|
|
|
+ @Autowired
|
|
|
+ private TopChannelService topChannelService;
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public boolean add(Order order) {
|
|
|
- String orderNumber = TopApi.getOrderNumber();
|
|
|
- order.setOrderNumber(orderNumber);
|
|
|
- order.setOrderFlag(OrderStatus.NO_PAYMENT.getCode());
|
|
|
order.setPayType(OrderPayType.XJ.getPayCode());
|
|
|
+ order.setScene(OrderSceneCode.BACK_STAGE.getCode());
|
|
|
verifyOrder(order);
|
|
|
callCardTopApi(order);
|
|
|
return this.updateById(order);
|
|
@@ -132,20 +134,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public String getTopScanPayApi(Order order){
|
|
|
- String orderNumber = TopApi.getOrderNumber();
|
|
|
- order.setOrderNumber(orderNumber);
|
|
|
+ verifyOrder(order);
|
|
|
TreeMap<String, String> params = TopApi.generateScanPayApiParam(order.getOrderNumber(),
|
|
|
new Double(Arith.mul(order.getMoney().doubleValue(),100)).intValue(), null,
|
|
|
null,null,null,null,null,null);
|
|
|
- verifyOrder(order);
|
|
|
//记录调用日志
|
|
|
- callApiLogService.saveOrUpdate(orderNumber,SCAN_PAY,TopApi.SCAN_TO_PAY_URL,JSONObject.toJSONString(params),null);
|
|
|
+ callApiLogService.saveOrUpdate(order.getOrderNumber(),SCAN_PAY,TopApi.SCAN_TO_PAY_URL,JSONObject.toJSONString(params),null);
|
|
|
return String.format("%s?%s",TopApi.SCAN_TO_PAY_URL,TopApi.generateParam(params));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 后台充值(支付宝或者现金)
|
|
|
+ * @param order
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public String getTopScanPayQr(Order order) {
|
|
|
+ order.setScene(OrderSceneCode.BACK_STAGE.getCode());
|
|
|
String encode;
|
|
|
try {
|
|
|
//获取url
|
|
@@ -187,7 +193,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
try {
|
|
|
ChargeVO chargeVo = new ChargeVO();
|
|
|
chargeVo.setSeq(order.getId());
|
|
|
- chargeVo.setAmt(order.getMoney().doubleValue());
|
|
|
+ Optional.ofNullable(order.getTopRadio())
|
|
|
+ .ifPresent(radio -> {
|
|
|
+ double mul = Arith.mul(order.getMoney().doubleValue(), order.getTopRadio());
|
|
|
+ order.setMoney(BigDecimal.valueOf(Arith.div(mul,100)));
|
|
|
+ });
|
|
|
+ chargeVo.setAmt(order.getMoney());
|
|
|
chargeVo.setCard("h");
|
|
|
chargeVo.setMob(order.getOrderNumber());
|
|
|
chargeVo.setName("test");
|
|
@@ -517,12 +528,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* @param order
|
|
|
*/
|
|
|
public void verifyOrder(Order order){
|
|
|
- Assert.check(null == order.getPayType(),"请选择支付方式");
|
|
|
- Assert.check(null == order.getMoney() || order.getMoney().compareTo(BigDecimal.ZERO) == 0,"请输入订单金额");
|
|
|
- Assert.check(null == order.getScene(),"充值场景不能为空");
|
|
|
+ String orderNumber = TopApi.getOrderNumber();
|
|
|
+ order.setOrderNumber(orderNumber);
|
|
|
+ Assert.check(null != order.getPayType(),"请选择支付方式");
|
|
|
+ Assert.check(null != order.getMoney() && order.getMoney().compareTo(BigDecimal.ZERO) != 0,"请输入订单金额");
|
|
|
+ Assert.check(null != order.getScene(),"充值场景不能为空");
|
|
|
//非游客充值
|
|
|
if (!OrderSceneCode.VISITOR.getCode().equals(order.getScene())){
|
|
|
- Assert.check(null == order.getUserId() || 0 == order.getUserId(),"用户编号不能为空");
|
|
|
+ Assert.check(null != order.getUserId() && 0 != order.getUserId(),"用户编号不能为空");
|
|
|
Assert.check(StringUtils.isNotBlank(order.getUserName()),"用户名称不能为空");
|
|
|
Assert.check(StringUtils.isNotBlank(order.getUserPhone()),"用户手机号不能为空");
|
|
|
//app充值
|
|
@@ -532,8 +545,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
Assert.check(StringUtils.isNotBlank(order.getOpenId()), "openId不能为空");
|
|
|
}
|
|
|
}
|
|
|
+ //添加身份信息和充值到账比例
|
|
|
+ LambdaQueryWrapper<StaffRadio> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(StaffRadio::getStaffId,order.getUserId())
|
|
|
+ .eq(StaffRadio::isDelFlag,0);
|
|
|
+ StaffRadio staffRadio = staffRadioService.getOne(queryWrapper);
|
|
|
+ Optional.ofNullable(staffRadio).ifPresent(sf ->{
|
|
|
+ TopRadio topRadio = topRadioService.getById(staffRadio.getRadioId());
|
|
|
+ Optional.ofNullable(topRadio).ifPresent(tr ->{
|
|
|
+ order.setIdentity(tr.getIdentity());
|
|
|
+ order.setTopRadio(tr.getProportion());
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
}else {
|
|
|
- Assert.check(null == order.getChannelId() || 0 == order.getChannelId(),"渠道编号不能为空");
|
|
|
+ Assert.check(null != order.getChannelId() && 0 != order.getChannelId(),"渠道编号不能为空");
|
|
|
+ TopChannel topChannel = topChannelService.getById(order.getChannelId());
|
|
|
+ order.setChannelName(topChannel.getName());
|
|
|
}
|
|
|
this.save(order);
|
|
|
}
|