|
@@ -95,7 +95,15 @@ public class OrderServiceImpl implements OrderService {
|
|
|
@Override
|
|
|
public Orders findMemberUnPayedOrders(String memberId, Subscriptions subscription, String client){
|
|
|
OrdersExample example = new OrdersExample();
|
|
|
- example.createCriteria().andMemberIdEqualTo(memberId).andStatusEqualTo(OrdersStatusEnum.UNPAYED.value()).andPaymentEqualTo(subscription.getPayment()).andSubscriptionIdEqualTo(subscription.getId());
|
|
|
+ OrdersExample.Criteria criteria = example.createCriteria();
|
|
|
+ //如果是web端,则查询的pagePayUrl不为null;如果是安卓端,则查询的androidSign不为null。
|
|
|
+ if(ClientEnum.WEB.value().equals(client)) {
|
|
|
+ criteria.andPagePayUrlIsNotNull();
|
|
|
+ }else{
|
|
|
+ criteria.andAndroidSignIsNotNull();
|
|
|
+ }
|
|
|
+ criteria.andMemberIdEqualTo(memberId).andStatusEqualTo(OrdersStatusEnum.UNPAYED.value()).
|
|
|
+ andPaymentEqualTo(subscription.getPayment()).andSubscriptionIdEqualTo(subscription.getId());
|
|
|
List<Orders> list = ordersMapper.selectByExample(example);
|
|
|
//订单如果不存在则插入,存在则返回
|
|
|
if(CollectionUtils.isEmpty(list)) {
|
|
@@ -117,14 +125,14 @@ public class OrderServiceImpl implements OrderService {
|
|
|
//更新价格
|
|
|
Orders order = selectBySubId(subscription.getId());
|
|
|
// 由于存在安卓端和web端,不能单纯的靠价格来判断是否更新,安卓端需要的是androidSign,web需要的是pagePayUrl
|
|
|
-// if(order != null && !order.getPrice().equals(subscription.getPrice())) {
|
|
|
+ if(order != null && !order.getPrice().equals(subscription.getPrice())) {
|
|
|
order.setPrice(subscription.getPrice());
|
|
|
order.setCreatedAt(new Date());
|
|
|
order.setUpdatedAt(new Date());
|
|
|
//设置支付的url
|
|
|
setOrderPayUrlByPayment(subscription, order, client);
|
|
|
ordersMapper.updateByPrimaryKey(order);
|
|
|
-// }
|
|
|
+ }
|
|
|
}
|
|
|
//如果微信url为空或者微信url超过两小时过期了,则重重新生成
|
|
|
boolean wxCheckDateFlag = StringUtils.isEmpty(list.get(0).getQrcodeUrl()) || DateUtils.addHours(list.get(0).getUpdatedAt(),OrderConstant.WXPAY_EXPIRE_TIME,1).compareTo(new Date())<0;
|
|
@@ -159,7 +167,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if(PaymentEnum.WXPAY.value().equals(subscription.getPayment())){
|
|
|
Map<String, String> resp = wxPayService.unifiedOrder(subject, order.getTradeNo(), order.getPrice(), client);
|
|
|
order.setQrcodeUrl(resp.get(WXPayConstants.CODE_URL));
|
|
|
- order.setAndroidSign2(JSON.toJSONString(resp));
|
|
|
+ order.setAndroidSign(JSON.toJSONString(resp));
|
|
|
}
|
|
|
if(PaymentEnum.ALIPAY.value().equals(subscription.getPayment())){
|
|
|
// 调用阿里支付下单接口,web端返回支付url,android端返回androidSign
|