|
@@ -13,6 +13,10 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.ekyong.www.pay.pay.qrcode.api.RhtQrcodePayApi;
|
|
|
|
|
+import com.ekyong.www.pay.pay.qrcode.bean.QrcodeQueryRequestBean;
|
|
|
|
|
+import com.ekyong.www.pay.pay.qrcode.bean.QrcodeQueryResponseBean;
|
|
|
|
|
+import com.github.wxpay.sdk.WXPay;
|
|
|
import com.sqx.common.constant.RedisKey;
|
|
import com.sqx.common.constant.RedisKey;
|
|
|
import com.sqx.common.exception.SqxException;
|
|
import com.sqx.common.exception.SqxException;
|
|
|
import com.sqx.common.sms.SmsSendResult;
|
|
import com.sqx.common.sms.SmsSendResult;
|
|
@@ -66,6 +70,8 @@ import com.sqx.modules.order.entity.Evaluate;
|
|
|
import com.sqx.modules.order.entity.OrderGoods;
|
|
import com.sqx.modules.order.entity.OrderGoods;
|
|
|
import com.sqx.modules.order.entity.TbOrder;
|
|
import com.sqx.modules.order.entity.TbOrder;
|
|
|
import com.sqx.modules.order.service.AppOrderService;
|
|
import com.sqx.modules.order.service.AppOrderService;
|
|
|
|
|
+import com.sqx.modules.pay.config.WXConfig;
|
|
|
|
|
+import com.sqx.modules.pay.config.WechatPayConfig;
|
|
|
import com.sqx.modules.pay.controller.app.AliPayController;
|
|
import com.sqx.modules.pay.controller.app.AliPayController;
|
|
|
import com.sqx.modules.pay.dao.PayDetailsDao;
|
|
import com.sqx.modules.pay.dao.PayDetailsDao;
|
|
|
import com.sqx.modules.pay.dto.GetPayParamDTO;
|
|
import com.sqx.modules.pay.dto.GetPayParamDTO;
|
|
@@ -73,7 +79,9 @@ import com.sqx.modules.pay.dto.PayOrderDTO;
|
|
|
import com.sqx.modules.pay.entity.PayDetails;
|
|
import com.sqx.modules.pay.entity.PayDetails;
|
|
|
import com.sqx.modules.pay.enums.PayChannelEnum;
|
|
import com.sqx.modules.pay.enums.PayChannelEnum;
|
|
|
import com.sqx.modules.pay.enums.PaySceneEnum;
|
|
import com.sqx.modules.pay.enums.PaySceneEnum;
|
|
|
|
|
+import com.sqx.modules.pay.enums.PayStateEnums;
|
|
|
import com.sqx.modules.pay.service.NewPayService;
|
|
import com.sqx.modules.pay.service.NewPayService;
|
|
|
|
|
+import com.sqx.modules.pay.service.PayDetailsService;
|
|
|
import com.sqx.modules.pay.service.WxErrService;
|
|
import com.sqx.modules.pay.service.WxErrService;
|
|
|
import com.sqx.modules.pay.vo.AliPayTransactionsParam;
|
|
import com.sqx.modules.pay.vo.AliPayTransactionsParam;
|
|
|
import com.sqx.modules.pay.vo.PayTransactionsVO;
|
|
import com.sqx.modules.pay.vo.PayTransactionsVO;
|
|
@@ -123,6 +131,10 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private UserService userService;
|
|
private UserService userService;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
|
+ private AppOrderService orderService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PayDetailsService payDetailsService;
|
|
|
|
|
+ @Autowired
|
|
|
private OrderGoodsDao orderGoodsDao;
|
|
private OrderGoodsDao orderGoodsDao;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private GoodsSkuDao goodsSkuDao;
|
|
private GoodsSkuDao goodsSkuDao;
|
|
@@ -181,19 +193,20 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
@Resource
|
|
@Resource
|
|
|
private RedissonClient redissonClient;
|
|
private RedissonClient redissonClient;
|
|
|
|
|
|
|
|
|
|
+ private final static String RHT_PAY_BASE_URL = "https://api.ekbuyclub.com";
|
|
|
|
|
+
|
|
|
private static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern(DateUtils.TIME_PATTERN1);
|
|
private static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern(DateUtils.TIME_PATTERN1);
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public int updateOrderPrint(Long orderId) {
|
|
public int updateOrderPrint(Long orderId) {
|
|
|
UpdateWrapper wrapper = new UpdateWrapper<>();
|
|
UpdateWrapper wrapper = new UpdateWrapper<>();
|
|
|
wrapper.eq("order_id", orderId);
|
|
wrapper.eq("order_id", orderId);
|
|
|
- wrapper.set("is_print",1);
|
|
|
|
|
|
|
+ wrapper.set("is_print", 1);
|
|
|
int result = appOrderDao.update(null, wrapper);
|
|
int result = appOrderDao.update(null, wrapper);
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void insertOrder(Long userId, Long shopId, Long goodsId, Integer num, Long skuId, String skuMessage, Integer orderType) {
|
|
public void insertOrder(Long userId, Long shopId, Long goodsId, Integer num, Long skuId, String skuMessage, Integer orderType) {
|
|
|
// 判断当前时间是否在店铺营业范围内
|
|
// 判断当前时间是否在店铺营业范围内
|
|
@@ -298,6 +311,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 判断店铺当前时间是否营业时间范围内
|
|
* 判断店铺当前时间是否营业时间范围内
|
|
|
|
|
+ *
|
|
|
* @param shopId 店铺id
|
|
* @param shopId 店铺id
|
|
|
* @return boolean
|
|
* @return boolean
|
|
|
*/
|
|
*/
|
|
@@ -386,7 +400,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
@Override
|
|
@Override
|
|
|
public Result deleteOrder(Long userId, Long orderId) {
|
|
public Result deleteOrder(Long userId, Long orderId) {
|
|
|
TbOrder order = appOrderDao.selectById(orderId);
|
|
TbOrder order = appOrderDao.selectById(orderId);
|
|
|
- if(order.getIsPay()==1){
|
|
|
|
|
|
|
+ if (order.getIsPay() == 1) {
|
|
|
return Result.error("拼单已经支付,无法取消!");
|
|
return Result.error("拼单已经支付,无法取消!");
|
|
|
}
|
|
}
|
|
|
appOrderDao.delete(new QueryWrapper<TbOrder>().eq("user_id", userId).eq("order_id", orderId));
|
|
appOrderDao.delete(new QueryWrapper<TbOrder>().eq("user_id", userId).eq("order_id", orderId));
|
|
@@ -533,7 +547,8 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 检查活动信息
|
|
* 检查活动信息
|
|
|
- * @param activityId 活动id
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param activityId 活动id
|
|
|
* @param parentOrder 订单信息
|
|
* @param parentOrder 订单信息
|
|
|
*/
|
|
*/
|
|
|
private void checkActivity(Long activityId, TbOrder parentOrder) {
|
|
private void checkActivity(Long activityId, TbOrder parentOrder) {
|
|
@@ -570,14 +585,14 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
Long orderId = tbOrder.getOrderId();
|
|
Long orderId = tbOrder.getOrderId();
|
|
|
List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
|
|
List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
|
|
|
new QueryWrapper<OrderGoods>()
|
|
new QueryWrapper<OrderGoods>()
|
|
|
- .eq("order_id", orderId));
|
|
|
|
|
- for(int a = 0; a< orderGoodsList.size(); a++){
|
|
|
|
|
|
|
+ .eq("order_id", orderId));
|
|
|
|
|
+ for (int a = 0; a < orderGoodsList.size(); a++) {
|
|
|
Integer goodsNum = orderGoodsList.get(a).getGoodsNum();
|
|
Integer goodsNum = orderGoodsList.get(a).getGoodsNum();
|
|
|
Long goodsId = orderGoodsList.get(a).getGoodsId();
|
|
Long goodsId = orderGoodsList.get(a).getGoodsId();
|
|
|
GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(
|
|
GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(
|
|
|
new QueryWrapper<GoodsShopRelevancy>()
|
|
new QueryWrapper<GoodsShopRelevancy>()
|
|
|
- .eq("shop_id", shopId1)
|
|
|
|
|
- .eq("goods_id", goodsId));
|
|
|
|
|
|
|
+ .eq("shop_id", shopId1)
|
|
|
|
|
+ .eq("goods_id", goodsId));
|
|
|
GoodsShopRelevancy goodsShopRelevancy1 = new GoodsShopRelevancy();
|
|
GoodsShopRelevancy goodsShopRelevancy1 = new GoodsShopRelevancy();
|
|
|
goodsShopRelevancy1.setId(goodsShopRelevancy.getId());
|
|
goodsShopRelevancy1.setId(goodsShopRelevancy.getId());
|
|
|
|
|
|
|
@@ -613,7 +628,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
boolean reservationFlag = StrUtil.equals(order.getReservationFlag(), Constant.YES);
|
|
boolean reservationFlag = StrUtil.equals(order.getReservationFlag(), Constant.YES);
|
|
|
|
|
|
|
|
// 店铺自动接单且当前订单不是预约订单
|
|
// 店铺自动接单且当前订单不是预约订单
|
|
|
- if(autoAccept && !reservationFlag) {
|
|
|
|
|
|
|
+ if (autoAccept && !reservationFlag) {
|
|
|
// 6制作中
|
|
// 6制作中
|
|
|
order.setStatus(6);
|
|
order.setStatus(6);
|
|
|
order.setShopReceivingTime(currentTimeStr);
|
|
order.setShopReceivingTime(currentTimeStr);
|
|
@@ -690,7 +705,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
// 设置店铺名称
|
|
// 设置店铺名称
|
|
|
order.setShopName(goodsShop.getShopName());
|
|
order.setShopName(goodsShop.getShopName());
|
|
|
|
|
|
|
|
- FeiYunUtils.print(goodsShop.getSnCode(), null, order,null);
|
|
|
|
|
|
|
+ FeiYunUtils.print(goodsShop.getSnCode(), null, order, null);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("订单:{},小票打印失败,失败原因:{}", order.getOrderId(), e);
|
|
log.error("订单:{},小票打印失败,失败原因:{}", order.getOrderId(), e);
|
|
|
}
|
|
}
|
|
@@ -710,7 +725,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
if (ObjectUtil.isNull(order)) {
|
|
if (ObjectUtil.isNull(order)) {
|
|
|
throw new SqxException("无效的订单id");
|
|
throw new SqxException("无效的订单id");
|
|
|
}
|
|
}
|
|
|
- if(order.getAutoSendOrder() != null && order.getAutoSendOrder() == 0){
|
|
|
|
|
|
|
+ if (order.getAutoSendOrder() != null && order.getAutoSendOrder() == 0) {
|
|
|
throw new SqxException("当前订单为自动派单,不能手动完成!");
|
|
throw new SqxException("当前订单为自动派单,不能手动完成!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -819,6 +834,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 用户钱包新增消费记录
|
|
* 用户钱包新增消费记录
|
|
|
|
|
+ *
|
|
|
* @param order 订单信息
|
|
* @param order 订单信息
|
|
|
*/
|
|
*/
|
|
|
private void addConsumeRecordInUserMoneyDetail(TbOrder order) {
|
|
private void addConsumeRecordInUserMoneyDetail(TbOrder order) {
|
|
@@ -832,10 +848,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 发送订单接单消息
|
|
* 发送订单接单消息
|
|
|
- * @param order 订单信息
|
|
|
|
|
- * @param goodsShop 店铺信息
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param order 订单信息
|
|
|
|
|
+ * @param goodsShop 店铺信息
|
|
|
* @param mpPushConfig 小程序推送设置
|
|
* @param mpPushConfig 小程序推送设置
|
|
|
- * @param userEntity 用户信息
|
|
|
|
|
|
|
+ * @param userEntity 用户信息
|
|
|
*/
|
|
*/
|
|
|
private void sendOrderAcceptMessage(TbOrder order, GoodsShop goodsShop, CommonInfo mpPushConfig, UserEntity userEntity) {
|
|
private void sendOrderAcceptMessage(TbOrder order, GoodsShop goodsShop, CommonInfo mpPushConfig, UserEntity userEntity) {
|
|
|
List<String> msgList = new ArrayList<>();
|
|
List<String> msgList = new ArrayList<>();
|
|
@@ -852,10 +869,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 添加订单消息并推送消息
|
|
* 添加订单消息并推送消息
|
|
|
- * @param order 订单信息
|
|
|
|
|
- * @param goodsShop 店铺信息
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param order 订单信息
|
|
|
|
|
+ * @param goodsShop 店铺信息
|
|
|
* @param mpPushConfig 小程序推送设置
|
|
* @param mpPushConfig 小程序推送设置
|
|
|
- * @param userEntity 用户信息
|
|
|
|
|
|
|
+ * @param userEntity 用户信息
|
|
|
*/
|
|
*/
|
|
|
private void addOrderMessageAndPush(TbOrder order, GoodsShop goodsShop, CommonInfo mpPushConfig, UserEntity userEntity) {
|
|
private void addOrderMessageAndPush(TbOrder order, GoodsShop goodsShop, CommonInfo mpPushConfig, UserEntity userEntity) {
|
|
|
String currentDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
String currentDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
@@ -890,31 +908,32 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
userMsgList.add(order.getOrderCode());
|
|
userMsgList.add(order.getOrderCode());
|
|
|
userMsgList.add(goodsShop.getShopName());
|
|
userMsgList.add(goodsShop.getShopName());
|
|
|
userMsgList.add(currentDateStr);
|
|
userMsgList.add(currentDateStr);
|
|
|
- SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), mpPushConfig.getValue(), userMsgList,1);
|
|
|
|
|
|
|
+ SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), mpPushConfig.getValue(), userMsgList, 1);
|
|
|
|
|
|
|
|
// 无个推
|
|
// 无个推
|
|
|
// userService.pushToSingle("下单成功", "亲爱的用户您好,您已下单成功,请等待商家接单!", userEntity.getClientid());
|
|
// userService.pushToSingle("下单成功", "亲爱的用户您好,您已下单成功,请等待商家接单!", userEntity.getClientid());
|
|
|
|
|
|
|
|
// 商户端消息推送
|
|
// 商户端消息推送
|
|
|
- List<String> shopMsgShopList=new ArrayList<>();
|
|
|
|
|
|
|
+ List<String> shopMsgShopList = new ArrayList<>();
|
|
|
shopMsgShopList.add(order.getOrderNumber());
|
|
shopMsgShopList.add(order.getOrderNumber());
|
|
|
shopMsgShopList.add(order.getPayMoney().toString());
|
|
shopMsgShopList.add(order.getPayMoney().toString());
|
|
|
shopMsgShopList.add(order.getPayTime());
|
|
shopMsgShopList.add(order.getPayTime());
|
|
|
shopMsgShopList.add("生意来了,立即去接单>");
|
|
shopMsgShopList.add("生意来了,立即去接单>");
|
|
|
- if(StringUtils.isNotEmpty(shopUser.getShopOpenId())){
|
|
|
|
|
- SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(), shopTemplate.getValue(), shopMsgShopList,7);
|
|
|
|
|
|
|
+ if (StringUtils.isNotEmpty(shopUser.getShopOpenId())) {
|
|
|
|
|
+ SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(), shopTemplate.getValue(), shopMsgShopList, 7);
|
|
|
}
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(shopUser.getShopClientId())){
|
|
|
|
|
- userService.pushToSingleShop("下单成功","生意来了,立即去接单>",shopUser.getShopClientId());
|
|
|
|
|
|
|
+ if (StringUtils.isNotEmpty(shopUser.getShopClientId())) {
|
|
|
|
|
+ userService.pushToSingleShop("下单成功", "生意来了,立即去接单>", shopUser.getShopClientId());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 更新优惠券状态 更新订单状态
|
|
* 更新优惠券状态 更新订单状态
|
|
|
|
|
+ *
|
|
|
* @param order 订单信息
|
|
* @param order 订单信息
|
|
|
*/
|
|
*/
|
|
|
private void updateCouponState(TbOrder order) {
|
|
private void updateCouponState(TbOrder order) {
|
|
|
- if(order.getCouponId()!=null){
|
|
|
|
|
|
|
+ if (order.getCouponId() != null) {
|
|
|
TbCouponUser tbCouponUser = new TbCouponUser();
|
|
TbCouponUser tbCouponUser = new TbCouponUser();
|
|
|
tbCouponUser.setId(order.getCouponId());
|
|
tbCouponUser.setId(order.getCouponId());
|
|
|
tbCouponUser.setStatus(1);
|
|
tbCouponUser.setStatus(1);
|
|
@@ -924,6 +943,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 生成取餐号
|
|
* 生成取餐号
|
|
|
|
|
+ *
|
|
|
* @return 订单号
|
|
* @return 订单号
|
|
|
*/
|
|
*/
|
|
|
private String generateOrderCode() {
|
|
private String generateOrderCode() {
|
|
@@ -931,7 +951,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
TbOrder preOrder = orderGoodsDao.selectByPayTime(format);
|
|
TbOrder preOrder = orderGoodsDao.selectByPayTime(format);
|
|
|
|
|
|
|
|
String orderCode;
|
|
String orderCode;
|
|
|
- if(preOrder == null) {
|
|
|
|
|
|
|
+ if (preOrder == null) {
|
|
|
String a = new SimpleDateFormat("yyyyMMdd").format(new Date());
|
|
String a = new SimpleDateFormat("yyyyMMdd").format(new Date());
|
|
|
orderCode = a + "001";
|
|
orderCode = a + "001";
|
|
|
} else {
|
|
} else {
|
|
@@ -944,7 +964,8 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 计算店铺收益 店铺订单收益=订单应付金额+订单使用的优惠券金额-跑腿费用
|
|
* 计算店铺收益 店铺订单收益=订单应付金额+订单使用的优惠券金额-跑腿费用
|
|
|
- * @param order 订单信息
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param order 订单信息
|
|
|
* @param goodsShop 店铺信息
|
|
* @param goodsShop 店铺信息
|
|
|
*/
|
|
*/
|
|
|
private void calcShopIncome(TbOrder order, GoodsShop goodsShop) {
|
|
private void calcShopIncome(TbOrder order, GoodsShop goodsShop) {
|
|
@@ -965,6 +986,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 校验订单优惠券信息
|
|
* 校验订单优惠券信息
|
|
|
|
|
+ *
|
|
|
* @param order 订单信息
|
|
* @param order 订单信息
|
|
|
* @return 使用的优惠券金额
|
|
* @return 使用的优惠券金额
|
|
|
*/
|
|
*/
|
|
@@ -979,23 +1001,23 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
// 订单应付金额
|
|
// 订单应付金额
|
|
|
BigDecimal payMoney = order.getPayMoney();
|
|
BigDecimal payMoney = order.getPayMoney();
|
|
|
|
|
|
|
|
- if(!tbCouponUser.getUserId().equals(userId)){
|
|
|
|
|
|
|
+ if (!tbCouponUser.getUserId().equals(userId)) {
|
|
|
throw new SqxException("优惠券与登录用户不匹配");
|
|
throw new SqxException("优惠券与登录用户不匹配");
|
|
|
}
|
|
}
|
|
|
- if(tbCouponUser.getStatus()!=0){
|
|
|
|
|
|
|
+ if (tbCouponUser.getStatus() != 0) {
|
|
|
throw new SqxException("该优惠券已失效");
|
|
throw new SqxException("该优惠券已失效");
|
|
|
}
|
|
}
|
|
|
- if(tbCouponUser.getMinMoney().doubleValue() > payMoney.doubleValue()){
|
|
|
|
|
|
|
+ if (tbCouponUser.getMinMoney().doubleValue() > payMoney.doubleValue()) {
|
|
|
throw new SqxException("订单金额不足,无法使用该优惠券");
|
|
throw new SqxException("订单金额不足,无法使用该优惠券");
|
|
|
}
|
|
}
|
|
|
- if(tbCouponUser.getShopId() != 0 && !tbCouponUser.getShopId().equals(order.getShopId())){
|
|
|
|
|
|
|
+ if (tbCouponUser.getShopId() != 0 && !tbCouponUser.getShopId().equals(order.getShopId())) {
|
|
|
throw new SqxException("优惠券使用错误,请刷新后重试");
|
|
throw new SqxException("优惠券使用错误,请刷新后重试");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
BigDecimal couponUserMoney = tbCouponUser.getMoney();
|
|
BigDecimal couponUserMoney = tbCouponUser.getMoney();
|
|
|
payMoney = payMoney.subtract(couponUserMoney);
|
|
payMoney = payMoney.subtract(couponUserMoney);
|
|
|
//如果使用红包后,订单价格小于0,则改为0.01元
|
|
//如果使用红包后,订单价格小于0,则改为0.01元
|
|
|
- if(payMoney.doubleValue() <= 0){
|
|
|
|
|
|
|
+ if (payMoney.doubleValue() <= 0) {
|
|
|
payMoney = new BigDecimal("0.01");
|
|
payMoney = new BigDecimal("0.01");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1012,21 +1034,22 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 校验配送范围、配送费
|
|
* 校验配送范围、配送费
|
|
|
- * @param order 订单信息
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param order 订单信息
|
|
|
* @param addressId 用户收货地址id
|
|
* @param addressId 用户收货地址id
|
|
|
* @param goodsShop 店铺信息
|
|
* @param goodsShop 店铺信息
|
|
|
*/
|
|
*/
|
|
|
private void checkAddress(TbOrder order, Long addressId, GoodsShop goodsShop) {
|
|
private void checkAddress(TbOrder order, Long addressId, GoodsShop goodsShop) {
|
|
|
// 如果时外卖订单
|
|
// 如果时外卖订单
|
|
|
if (order.getOrderType() == 2) {
|
|
if (order.getOrderType() == 2) {
|
|
|
- if(addressId == null){
|
|
|
|
|
|
|
+ if (addressId == null) {
|
|
|
throw new SqxException("请填写地址地址!");
|
|
throw new SqxException("请填写地址地址!");
|
|
|
}
|
|
}
|
|
|
Address address = addressService.getById(addressId);
|
|
Address address = addressService.getById(addressId);
|
|
|
|
|
|
|
|
// 计算用户位置到商户位置的距离,并判断是否在配送范围内
|
|
// 计算用户位置到商户位置的距离,并判断是否在配送范围内
|
|
|
double distance = DistanceUtil.distance(goodsShop.getShopLat(), goodsShop.getShopLng(), address.getLat(), address.getLng());
|
|
double distance = DistanceUtil.distance(goodsShop.getShopLat(), goodsShop.getShopLng(), address.getLat(), address.getLng());
|
|
|
- if(distance > goodsShop.getDistributionDistance()){
|
|
|
|
|
|
|
+ if (distance > goodsShop.getDistributionDistance()) {
|
|
|
throw new SqxException("超出商家配送范围,无法点餐!");
|
|
throw new SqxException("超出商家配送范围,无法点餐!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1041,8 +1064,8 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
// 店铺开启了配送费满减
|
|
// 店铺开启了配送费满减
|
|
|
if (enableFullReductionFlag == 0) {
|
|
if (enableFullReductionFlag == 0) {
|
|
|
- if(shopErrandMoney.doubleValue() > 0
|
|
|
|
|
- && order.getPayMoney().doubleValue() < exemptMinMoney.doubleValue()){
|
|
|
|
|
|
|
+ if (shopErrandMoney.doubleValue() > 0
|
|
|
|
|
+ && order.getPayMoney().doubleValue() < exemptMinMoney.doubleValue()) {
|
|
|
// 跑腿费加入订单总金额
|
|
// 跑腿费加入订单总金额
|
|
|
order.setPayMoney(order.getPayMoney().add(shopErrandMoney));
|
|
order.setPayMoney(order.getPayMoney().add(shopErrandMoney));
|
|
|
order.setErrandMoneyIsShop("本单未达到商家满减金额,跑腿费由用户承担");
|
|
order.setErrandMoneyIsShop("本单未达到商家满减金额,跑腿费由用户承担");
|
|
@@ -1064,11 +1087,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
order.setErrandMoney(shopErrandMoney);
|
|
order.setErrandMoney(shopErrandMoney);
|
|
|
|
|
|
|
|
// 判断订单金额是否大于最低起送金额
|
|
// 判断订单金额是否大于最低起送金额
|
|
|
- if(goodsShop.getMinimumDelivery() == null){
|
|
|
|
|
|
|
+ if (goodsShop.getMinimumDelivery() == null) {
|
|
|
goodsShop.setMinimumDelivery(BigDecimal.valueOf(0));
|
|
goodsShop.setMinimumDelivery(BigDecimal.valueOf(0));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if(order.getPayMoney().doubleValue() < goodsShop.getMinimumDelivery().doubleValue()){
|
|
|
|
|
|
|
+ if (order.getPayMoney().doubleValue() < goodsShop.getMinimumDelivery().doubleValue()) {
|
|
|
throw new SqxException("订单金额未满足最低起送金额!");
|
|
throw new SqxException("订单金额未满足最低起送金额!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1093,6 +1116,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 计算商品总价格和商品总打包费
|
|
* 计算商品总价格和商品总打包费
|
|
|
|
|
+ *
|
|
|
* @param parentOrder 订单信息
|
|
* @param parentOrder 订单信息
|
|
|
*/
|
|
*/
|
|
|
private void calcOrderPriceAndPack(TbOrder parentOrder) {
|
|
private void calcOrderPriceAndPack(TbOrder parentOrder) {
|
|
@@ -1103,10 +1127,10 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
// 商品总价格 初始为0,商品总价格包含总打包费
|
|
// 商品总价格 初始为0,商品总价格包含总打包费
|
|
|
BigDecimal payMoney = BigDecimal.valueOf(0);
|
|
BigDecimal payMoney = BigDecimal.valueOf(0);
|
|
|
List<TbOrder> orderList = selectOrderByParentId(parentOrder.getOrderId());
|
|
List<TbOrder> orderList = selectOrderByParentId(parentOrder.getOrderId());
|
|
|
- if(orderList.size() == 0){
|
|
|
|
|
|
|
+ if (orderList.size() == 0) {
|
|
|
throw new SqxException("订单不存在,请刷新后重试!");
|
|
throw new SqxException("订单不存在,请刷新后重试!");
|
|
|
}
|
|
}
|
|
|
- for(int i = 0; i < orderList.size(); i++) {
|
|
|
|
|
|
|
+ for (int i = 0; i < orderList.size(); i++) {
|
|
|
Long orderId = orderList.get(i).getOrderId();
|
|
Long orderId = orderList.get(i).getOrderId();
|
|
|
List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
|
|
List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
|
|
|
new QueryWrapper<OrderGoods>()
|
|
new QueryWrapper<OrderGoods>()
|
|
@@ -1150,23 +1174,23 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
// 获取订单商品信息
|
|
// 获取订单商品信息
|
|
|
List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
|
|
List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
|
|
|
new QueryWrapper<OrderGoods>()
|
|
new QueryWrapper<OrderGoods>()
|
|
|
- .eq("order_id", orderId));
|
|
|
|
|
- for(int b = 0; b < orderGoodsList.size(); b++){
|
|
|
|
|
|
|
+ .eq("order_id", orderId));
|
|
|
|
|
+ for (int b = 0; b < orderGoodsList.size(); b++) {
|
|
|
OrderGoods orderGoods = orderGoodsList.get(b);
|
|
OrderGoods orderGoods = orderGoodsList.get(b);
|
|
|
Long goodsId = orderGoods.getGoodsId();
|
|
Long goodsId = orderGoods.getGoodsId();
|
|
|
Goods goods = goodsDao.selectById(goodsId);
|
|
Goods goods = goodsDao.selectById(goodsId);
|
|
|
- if(goods == null || goods.getStatus().equals(1)) {
|
|
|
|
|
|
|
+ if (goods == null || goods.getStatus().equals(1)) {
|
|
|
// TODO ??感觉有问题??
|
|
// TODO ??感觉有问题??
|
|
|
orderGoodsDao.deleteById(orderGoods.getId());
|
|
orderGoodsDao.deleteById(orderGoods.getId());
|
|
|
- throw new SqxException("商品:"+orderGoods.getGoodsName()+",不存在,请刷新后重试!");
|
|
|
|
|
|
|
+ throw new SqxException("商品:" + orderGoods.getGoodsName() + ",不存在,请刷新后重试!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(
|
|
GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(
|
|
|
new QueryWrapper<GoodsShopRelevancy>()
|
|
new QueryWrapper<GoodsShopRelevancy>()
|
|
|
- .eq("goods_id", goodsId)
|
|
|
|
|
- .eq("shop_id", order.getShopId()));
|
|
|
|
|
|
|
+ .eq("goods_id", goodsId)
|
|
|
|
|
+ .eq("shop_id", order.getShopId()));
|
|
|
int i = goodsShopRelevancyDao.selectGoodsCount(orderId, goodsId);
|
|
int i = goodsShopRelevancyDao.selectGoodsCount(orderId, goodsId);
|
|
|
- if(goodsShopRelevancy.getInventory() < i){
|
|
|
|
|
|
|
+ if (goodsShopRelevancy.getInventory() < i) {
|
|
|
throw new SqxException("库存不足");
|
|
throw new SqxException("库存不足");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1360,17 +1384,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
// pages.setOptimizeCountSql(false);
|
|
// pages.setOptimizeCountSql(false);
|
|
|
// pages.setSearchCount(false);
|
|
// pages.setSearchCount(false);
|
|
|
// pages.setTotal()
|
|
// pages.setTotal()
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getEndTime())){
|
|
|
|
|
- queryDto.setEndTime(queryDto.getEndTime()+" 23:59:59");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getEndTime())) {
|
|
|
|
|
+ queryDto.setEndTime(queryDto.getEndTime() + " 23:59:59");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())){
|
|
|
|
|
- queryDto.setPayEndTime(queryDto.getPayEndTime()+" 23:59:59");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())) {
|
|
|
|
|
+ queryDto.setPayEndTime(queryDto.getPayEndTime() + " 23:59:59");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getStartTime())){
|
|
|
|
|
- queryDto.setStartTime(queryDto.getStartTime()+" 00:00:00");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getStartTime())) {
|
|
|
|
|
+ queryDto.setStartTime(queryDto.getStartTime() + " 00:00:00");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())){
|
|
|
|
|
- queryDto.setPayStartTime(queryDto.getPayStartTime()+" 00:00:00");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())) {
|
|
|
|
|
+ queryDto.setPayStartTime(queryDto.getPayStartTime() + " 00:00:00");
|
|
|
}
|
|
}
|
|
|
IPage<TbOrder> tbOrderIPage = appOrderDao.selectAllOrderAdmin(pages, queryDto);
|
|
IPage<TbOrder> tbOrderIPage = appOrderDao.selectAllOrderAdmin(pages, queryDto);
|
|
|
for (int i = 0; i < tbOrderIPage.getRecords().size(); i++) {
|
|
for (int i = 0; i < tbOrderIPage.getRecords().size(); i++) {
|
|
@@ -1384,17 +1408,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public ExcelData excelAllOrderAdmin(OrderQueryDto queryDto) {
|
|
public ExcelData excelAllOrderAdmin(OrderQueryDto queryDto) {
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getEndTime())){
|
|
|
|
|
- queryDto.setEndTime(queryDto.getEndTime()+" 23:59:59");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getEndTime())) {
|
|
|
|
|
+ queryDto.setEndTime(queryDto.getEndTime() + " 23:59:59");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())){
|
|
|
|
|
- queryDto.setPayEndTime(queryDto.getPayEndTime()+" 23:59:59");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())) {
|
|
|
|
|
+ queryDto.setPayEndTime(queryDto.getPayEndTime() + " 23:59:59");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getStartTime())){
|
|
|
|
|
- queryDto.setStartTime(queryDto.getStartTime()+" 00:00:00");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getStartTime())) {
|
|
|
|
|
+ queryDto.setStartTime(queryDto.getStartTime() + " 00:00:00");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())){
|
|
|
|
|
- queryDto.setPayStartTime(queryDto.getPayStartTime()+" 00:00:00");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())) {
|
|
|
|
|
+ queryDto.setPayStartTime(queryDto.getPayStartTime() + " 00:00:00");
|
|
|
}
|
|
}
|
|
|
List<TbOrder> tbOrderIPage = appOrderDao.excelAllOrderAdmin(queryDto);
|
|
List<TbOrder> tbOrderIPage = appOrderDao.excelAllOrderAdmin(queryDto);
|
|
|
// for (int i = 0; i < tbOrderIPage.size(); i++) {
|
|
// for (int i = 0; i < tbOrderIPage.size(); i++) {
|
|
@@ -1405,46 +1429,64 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
ExcelData data = new ExcelData();
|
|
ExcelData data = new ExcelData();
|
|
|
data.setName("订单列表");
|
|
data.setName("订单列表");
|
|
|
List<String> titles = new ArrayList();
|
|
List<String> titles = new ArrayList();
|
|
|
- titles.add("编号");titles.add("下单用户");titles.add("用户头像");titles.add("手机号");
|
|
|
|
|
- titles.add("商铺信息"); titles.add("订单类型");titles.add("配送信息");titles.add("骑手昵称");
|
|
|
|
|
- titles.add("骑手电话"); titles.add("订单号");titles.add("内容");titles.add("商品总价(元)");
|
|
|
|
|
|
|
+ titles.add("编号");
|
|
|
|
|
+ titles.add("下单用户");
|
|
|
|
|
+ titles.add("用户头像");
|
|
|
|
|
+ titles.add("手机号");
|
|
|
|
|
+ titles.add("商铺信息");
|
|
|
|
|
+ titles.add("订单类型");
|
|
|
|
|
+ titles.add("配送信息");
|
|
|
|
|
+ titles.add("骑手昵称");
|
|
|
|
|
+ titles.add("骑手电话");
|
|
|
|
|
+ titles.add("订单号");
|
|
|
|
|
+ titles.add("内容");
|
|
|
|
|
+ titles.add("商品总价(元)");
|
|
|
titles.add("优惠金额(元)");
|
|
titles.add("优惠金额(元)");
|
|
|
titles.add("参与活动名称");
|
|
titles.add("参与活动名称");
|
|
|
titles.add("活动优惠金额(元)");
|
|
titles.add("活动优惠金额(元)");
|
|
|
- titles.add("打包费(元/个 具体按照数量计算)");titles.add("跑腿费(元)");titles.add("支付金额(元)");
|
|
|
|
|
- titles.add("跑腿费说明"); titles.add("订单备注");titles.add("支付时间");titles.add("支付方式");
|
|
|
|
|
- titles.add("取餐号"); titles.add("状态");titles.add("是否转单");titles.add("骑手站点");
|
|
|
|
|
- titles.add("商铺类型名称");titles.add("优惠券类型");
|
|
|
|
|
|
|
+ titles.add("打包费(元/个 具体按照数量计算)");
|
|
|
|
|
+ titles.add("跑腿费(元)");
|
|
|
|
|
+ titles.add("支付金额(元)");
|
|
|
|
|
+ titles.add("跑腿费说明");
|
|
|
|
|
+ titles.add("订单备注");
|
|
|
|
|
+ titles.add("支付时间");
|
|
|
|
|
+ titles.add("支付方式");
|
|
|
|
|
+ titles.add("取餐号");
|
|
|
|
|
+ titles.add("状态");
|
|
|
|
|
+ titles.add("是否转单");
|
|
|
|
|
+ titles.add("骑手站点");
|
|
|
|
|
+ titles.add("商铺类型名称");
|
|
|
|
|
+ titles.add("优惠券类型");
|
|
|
|
|
|
|
|
data.setTitles(titles);
|
|
data.setTitles(titles);
|
|
|
List<List<Object>> rows = new ArrayList();
|
|
List<List<Object>> rows = new ArrayList();
|
|
|
- for(TbOrder order:tbOrderIPage){
|
|
|
|
|
|
|
+ for (TbOrder order : tbOrderIPage) {
|
|
|
List<Object> row = new ArrayList();
|
|
List<Object> row = new ArrayList();
|
|
|
row.add(order.getOrderId());
|
|
row.add(order.getOrderId());
|
|
|
row.add(order.getUserName());
|
|
row.add(order.getUserName());
|
|
|
row.add(order.getAvatar());
|
|
row.add(order.getAvatar());
|
|
|
row.add(order.getPhone());
|
|
row.add(order.getPhone());
|
|
|
- StringBuffer stringBuffer=new StringBuffer();
|
|
|
|
|
- stringBuffer.append("店铺名称:").append(StringUtils.isNotBlank(order.getShopName())?order.getShopName():"")
|
|
|
|
|
- .append("\n").append("店铺电话:").append(StringUtils.isNotBlank(order.getShopPhone())?order.getShopPhone():"")
|
|
|
|
|
- .append("\n").append("店铺地址:").append(StringUtils.isNotBlank(order.getDetailedAddress())?order.getDetailedAddress():"");
|
|
|
|
|
|
|
+ StringBuffer stringBuffer = new StringBuffer();
|
|
|
|
|
+ stringBuffer.append("店铺名称:").append(StringUtils.isNotBlank(order.getShopName()) ? order.getShopName() : "")
|
|
|
|
|
+ .append("\n").append("店铺电话:").append(StringUtils.isNotBlank(order.getShopPhone()) ? order.getShopPhone() : "")
|
|
|
|
|
+ .append("\n").append("店铺地址:").append(StringUtils.isNotBlank(order.getDetailedAddress()) ? order.getDetailedAddress() : "");
|
|
|
row.add(stringBuffer.toString());
|
|
row.add(stringBuffer.toString());
|
|
|
- if(order.getOrderTypeExtra()!=null && order.getOrderTypeExtra()==1){
|
|
|
|
|
|
|
+ if (order.getOrderTypeExtra() != null && order.getOrderTypeExtra() == 1) {
|
|
|
row.add("到店取餐");
|
|
row.add("到店取餐");
|
|
|
- }else if(order.getOrderTypeExtra()!=null && order.getOrderTypeExtra()==2){
|
|
|
|
|
|
|
+ } else if (order.getOrderTypeExtra() != null && order.getOrderTypeExtra() == 2) {
|
|
|
row.add("外卖配送");
|
|
row.add("外卖配送");
|
|
|
- }else if(order.getOrderTypeExtra()!=null && order.getOrderTypeExtra()==3){
|
|
|
|
|
|
|
+ } else if (order.getOrderTypeExtra() != null && order.getOrderTypeExtra() == 3) {
|
|
|
row.add("商家配送");
|
|
row.add("商家配送");
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
row.add("");
|
|
row.add("");
|
|
|
}
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(order.getAddress())){
|
|
|
|
|
|
|
+ if (StringUtils.isNotEmpty(order.getAddress())) {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(order.getAddress());
|
|
JSONObject jsonObject = JSONObject.parseObject(order.getAddress());
|
|
|
|
|
|
|
|
- stringBuffer=new StringBuffer();
|
|
|
|
|
|
|
+ stringBuffer = new StringBuffer();
|
|
|
stringBuffer.append("订餐人:").append(jsonObject.getString("userName")).append("\n").append("订餐人电话:").append(jsonObject.getString("userPhone")).append("\n").append("订餐地址:").append(jsonObject.getString("addressDetail"));
|
|
stringBuffer.append("订餐人:").append(jsonObject.getString("userName")).append("\n").append("订餐人电话:").append(jsonObject.getString("userPhone")).append("\n").append("订餐地址:").append(jsonObject.getString("addressDetail"));
|
|
|
row.add(stringBuffer.toString());
|
|
row.add(stringBuffer.toString());
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
row.add("-");
|
|
row.add("-");
|
|
|
}
|
|
}
|
|
|
row.add(order.getRiderNickName());
|
|
row.add(order.getRiderNickName());
|
|
@@ -1474,42 +1516,42 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
row.add(order.getRemark());
|
|
row.add(order.getRemark());
|
|
|
row.add(order.getPayTime());
|
|
row.add(order.getPayTime());
|
|
|
//支付方式 1微信支付 2余额支付 3支付宝支付
|
|
//支付方式 1微信支付 2余额支付 3支付宝支付
|
|
|
- if(order.getPayType()!=null && order.getPayType()==1){
|
|
|
|
|
|
|
+ if (order.getPayType() != null && order.getPayType() == 1) {
|
|
|
row.add("微信支付");
|
|
row.add("微信支付");
|
|
|
- }else if(order.getPayType()!=null && order.getPayType()==2){
|
|
|
|
|
|
|
+ } else if (order.getPayType() != null && order.getPayType() == 2) {
|
|
|
row.add("余额支付");
|
|
row.add("余额支付");
|
|
|
- }else if(order.getPayType()!=null && order.getPayType()==3){
|
|
|
|
|
|
|
+ } else if (order.getPayType() != null && order.getPayType() == 3) {
|
|
|
row.add("支付宝支付");
|
|
row.add("支付宝支付");
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
row.add("");
|
|
row.add("");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
row.add(order.getOrderCode());
|
|
row.add(order.getOrderCode());
|
|
|
//订单状态 0待结算 1待支付 2直接购买(未支付) 7商家待接单 8商家拒绝接单 6制作中 3待取餐/派送中 4已完成 5已取消
|
|
//订单状态 0待结算 1待支付 2直接购买(未支付) 7商家待接单 8商家拒绝接单 6制作中 3待取餐/派送中 4已完成 5已取消
|
|
|
- if(order.getStatus()!=null && order.getStatus()==0){
|
|
|
|
|
|
|
+ if (order.getStatus() != null && order.getStatus() == 0) {
|
|
|
row.add("待结算");
|
|
row.add("待结算");
|
|
|
- }else if(order.getStatus()!=null && order.getStatus()==1){
|
|
|
|
|
|
|
+ } else if (order.getStatus() != null && order.getStatus() == 1) {
|
|
|
row.add("待支付");
|
|
row.add("待支付");
|
|
|
- }else if(order.getStatus()!=null && order.getStatus()==2){
|
|
|
|
|
|
|
+ } else if (order.getStatus() != null && order.getStatus() == 2) {
|
|
|
row.add("直接购买(未支付)");
|
|
row.add("直接购买(未支付)");
|
|
|
- }else if(order.getStatus()!=null && order.getStatus()==3){
|
|
|
|
|
|
|
+ } else if (order.getStatus() != null && order.getStatus() == 3) {
|
|
|
row.add("待取餐/派送中");
|
|
row.add("待取餐/派送中");
|
|
|
- }else if(order.getStatus()!=null && order.getStatus()==4){
|
|
|
|
|
|
|
+ } else if (order.getStatus() != null && order.getStatus() == 4) {
|
|
|
row.add("已完成");
|
|
row.add("已完成");
|
|
|
- }else if(order.getStatus()!=null && order.getStatus()==5){
|
|
|
|
|
|
|
+ } else if (order.getStatus() != null && order.getStatus() == 5) {
|
|
|
row.add("已取消");
|
|
row.add("已取消");
|
|
|
- }else if(order.getStatus()!=null && order.getStatus()==6){
|
|
|
|
|
|
|
+ } else if (order.getStatus() != null && order.getStatus() == 6) {
|
|
|
row.add("制作中");
|
|
row.add("制作中");
|
|
|
- }else if(order.getStatus()!=null && order.getStatus()==7){
|
|
|
|
|
|
|
+ } else if (order.getStatus() != null && order.getStatus() == 7) {
|
|
|
row.add("商家待接单");
|
|
row.add("商家待接单");
|
|
|
- }else if(order.getStatus()!=null && order.getStatus()==8){
|
|
|
|
|
|
|
+ } else if (order.getStatus() != null && order.getStatus() == 8) {
|
|
|
row.add("商家拒绝接单");
|
|
row.add("商家拒绝接单");
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
row.add("");
|
|
row.add("");
|
|
|
}
|
|
}
|
|
|
- if(order.getIsRider()!=null && order.getIsRider()==1){
|
|
|
|
|
|
|
+ if (order.getIsRider() != null && order.getIsRider() == 1) {
|
|
|
row.add("是");
|
|
row.add("是");
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
row.add("");
|
|
row.add("");
|
|
|
}
|
|
}
|
|
|
row.add(order.getStationName());
|
|
row.add(order.getStationName());
|
|
@@ -1558,7 +1600,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
.eq("order_id", records.get(i).getOrderId()));
|
|
.eq("order_id", records.get(i).getOrderId()));
|
|
|
tbOrderIPage.getRecords().get(i).setOrderGoodsList(orderGoodsList);
|
|
tbOrderIPage.getRecords().get(i).setOrderGoodsList(orderGoodsList);
|
|
|
//判断骑手是否接单 status13为待骑手接单
|
|
//判断骑手是否接单 status13为待骑手接单
|
|
|
- if(records.get(i).getOrderTypeExtra()==2&&"2".equals(records.get(i).getIndentState())){
|
|
|
|
|
|
|
+ if (records.get(i).getOrderTypeExtra() == 2 && "2".equals(records.get(i).getIndentState())) {
|
|
|
tbOrderIPage.getRecords().get(i).setStatus(13);
|
|
tbOrderIPage.getRecords().get(i).setStatus(13);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1586,12 +1628,12 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
TbCouponUser tbCouponUser = tbCouponUserDao.selectById(tbOrder.getCouponId());
|
|
TbCouponUser tbCouponUser = tbCouponUserDao.selectById(tbOrder.getCouponId());
|
|
|
tbOrder.setCouponMoney(tbCouponUser.getMoney());
|
|
tbOrder.setCouponMoney(tbCouponUser.getMoney());
|
|
|
}
|
|
}
|
|
|
- GoodsShop goodsShop=goodsShopDao.selectById(tbOrder.getShopId());
|
|
|
|
|
- if(goodsShop!=null){
|
|
|
|
|
|
|
+ GoodsShop goodsShop = goodsShopDao.selectById(tbOrder.getShopId());
|
|
|
|
|
+ if (goodsShop != null) {
|
|
|
tbOrder.setShopName(goodsShop.getShopName());
|
|
tbOrder.setShopName(goodsShop.getShopName());
|
|
|
tbOrder.setShopPhone(goodsShop.getPhone());
|
|
tbOrder.setShopPhone(goodsShop.getPhone());
|
|
|
}
|
|
}
|
|
|
- if(tbOrder.getOrderTypeExtra()==2&&"2".equals(tbOrder.getIndentState())){
|
|
|
|
|
|
|
+ if (tbOrder.getOrderTypeExtra() == 2 && "2".equals(tbOrder.getIndentState())) {
|
|
|
tbOrder.setStatus(13);
|
|
tbOrder.setStatus(13);
|
|
|
}
|
|
}
|
|
|
List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", tbOrder.getOrderId()));
|
|
List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", tbOrder.getOrderId()));
|
|
@@ -1623,7 +1665,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
public Result updateGoodsNum(Long orderGoodsId, Integer type, Integer num, Long shopId) {
|
|
public Result updateGoodsNum(Long orderGoodsId, Integer type, Integer num, Long shopId) {
|
|
|
// type = 1增加商品数 = 2 减少商品数
|
|
// type = 1增加商品数 = 2 减少商品数
|
|
|
OrderGoods orderGoods = orderGoodsDao.selectById(orderGoodsId);
|
|
OrderGoods orderGoods = orderGoodsDao.selectById(orderGoodsId);
|
|
|
- if(orderGoods==null){
|
|
|
|
|
|
|
+ if (orderGoods == null) {
|
|
|
return Result.error("系统繁忙,请稍后再试!");
|
|
return Result.error("系统繁忙,请稍后再试!");
|
|
|
}
|
|
}
|
|
|
GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(new QueryWrapper<GoodsShopRelevancy>()
|
|
GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(new QueryWrapper<GoodsShopRelevancy>()
|
|
@@ -1757,7 +1799,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
// 如果是预约订单,则不再打印小票(订单支付的时候已经打印过了)
|
|
// 如果是预约订单,则不再打印小票(订单支付的时候已经打印过了)
|
|
|
if (!StrUtil.equals(tbOrder.getReservationFlag(), Constant.YES)) {
|
|
if (!StrUtil.equals(tbOrder.getReservationFlag(), Constant.YES)) {
|
|
|
if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
|
|
if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
|
|
|
- FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder,null);
|
|
|
|
|
|
|
+ FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder, null);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
} else if (order.getStatus() == 3) {
|
|
} else if (order.getStatus() == 3) {
|
|
@@ -1817,9 +1859,9 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
if (tbOrder.getStatus().equals(4)) {
|
|
if (tbOrder.getStatus().equals(4)) {
|
|
|
return Result.success();
|
|
return Result.success();
|
|
|
}
|
|
}
|
|
|
- log.info("操作完成订单4:"+order.getOrderId());
|
|
|
|
|
|
|
+ log.info("操作完成订单4:" + order.getOrderId());
|
|
|
Result result = this.accomplishOrder(order.getOrderId());
|
|
Result result = this.accomplishOrder(order.getOrderId());
|
|
|
- if("500".equals(String.valueOf(result.get("code")))){
|
|
|
|
|
|
|
+ if ("500".equals(String.valueOf(result.get("code")))) {
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
//管理端完成订单,则消息通知用户
|
|
//管理端完成订单,则消息通知用户
|
|
@@ -1941,6 +1983,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 微信支付退款
|
|
* 微信支付退款
|
|
|
|
|
+ *
|
|
|
* @param payDetails 支付订单
|
|
* @param payDetails 支付订单
|
|
|
*/
|
|
*/
|
|
|
private boolean wechatPayRefund(PayDetails payDetails) {
|
|
private boolean wechatPayRefund(PayDetails payDetails) {
|
|
@@ -1971,24 +2014,23 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
RLock lock = redissonClient.getLock(String.format(RedisKey.FINISH_ORDER_LOCK, orderId));
|
|
RLock lock = redissonClient.getLock(String.format(RedisKey.FINISH_ORDER_LOCK, orderId));
|
|
|
lock.lock();
|
|
lock.lock();
|
|
|
try {
|
|
try {
|
|
|
- return accomplishOrders(orderId,1);
|
|
|
|
|
|
|
+ return accomplishOrders(orderId, 1);
|
|
|
} finally {
|
|
} finally {
|
|
|
lock.unlock();
|
|
lock.unlock();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- *
|
|
|
|
|
* @param orderId
|
|
* @param orderId
|
|
|
- * @param type 1用户操作 2自动任务超时直接完成订单
|
|
|
|
|
|
|
+ * @param type 1用户操作 2自动任务超时直接完成订单
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
@Transactional
|
|
@Transactional
|
|
|
@Override
|
|
@Override
|
|
|
public Result accomplishOrders(Long orderId, Integer type) {
|
|
public Result accomplishOrders(Long orderId, Integer type) {
|
|
|
- log.info("订单id:"+orderId+",类型:"+type);
|
|
|
|
|
|
|
+ log.info("订单id:" + orderId + ",类型:" + type);
|
|
|
TbOrder tbOrder = appOrderDao.selectById(orderId);
|
|
TbOrder tbOrder = appOrderDao.selectById(orderId);
|
|
|
- log.info("订单状态 :"+tbOrder.getStatus());
|
|
|
|
|
|
|
+ log.info("订单状态 :" + tbOrder.getStatus());
|
|
|
if (tbOrder.getStatus().equals(4)) {
|
|
if (tbOrder.getStatus().equals(4)) {
|
|
|
log.info("订单id【{}】,订单状态为【4】,属于已完成状态,直接返回", orderId);
|
|
log.info("订单id【{}】,订单状态为【4】,属于已完成状态,直接返回", orderId);
|
|
|
log.info("订单id【{}】,accomplishOrders逻辑执行完成", orderId);
|
|
log.info("订单id【{}】,accomplishOrders逻辑执行完成", orderId);
|
|
@@ -1997,7 +2039,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
|
TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
|
|
TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
|
|
|
if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder().equals(0)) {
|
|
if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder().equals(0)) {
|
|
|
- if (type==1){
|
|
|
|
|
|
|
+ if (type == 1) {
|
|
|
if (indent == null || !"4".equals(indent.getIndentState())) {
|
|
if (indent == null || !"4".equals(indent.getIndentState())) {
|
|
|
log.info("订单id【{}】,请等待骑手送达!", orderId);
|
|
log.info("订单id【{}】,请等待骑手送达!", orderId);
|
|
|
return Result.error("请等待骑手送达!");
|
|
return Result.error("请等待骑手送达!");
|
|
@@ -2038,13 +2080,13 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
BigDecimal errandMoney = BigDecimal.ZERO;
|
|
BigDecimal errandMoney = BigDecimal.ZERO;
|
|
|
if (tbOrder.getOrderType() != 1) {
|
|
if (tbOrder.getOrderType() != 1) {
|
|
|
//判断是否达到商家满减 如果达到商家满减 跑腿费让商家承担
|
|
//判断是否达到商家满减 如果达到商家满减 跑腿费让商家承担
|
|
|
- if(tbOrder.getAutoSendOrder()!=null && tbOrder.getAutoSendOrder()==0){
|
|
|
|
|
|
|
+ if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 0) {
|
|
|
errandMoney = tbOrder.getErrandMoney();
|
|
errandMoney = tbOrder.getErrandMoney();
|
|
|
/*if(!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
|
|
/*if(!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
|
|
|
sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
|
|
sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
|
|
|
}*/
|
|
}*/
|
|
|
sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
|
|
sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
|
|
sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
|
|
|
errandMoney = tbOrder.getErrandMoney();
|
|
errandMoney = tbOrder.getErrandMoney();
|
|
|
}
|
|
}
|
|
@@ -2057,7 +2099,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
// 商家配送短信服务费
|
|
// 商家配送短信服务费
|
|
|
BigDecimal smsSendMoney = BigDecimal.ZERO;
|
|
BigDecimal smsSendMoney = BigDecimal.ZERO;
|
|
|
- if(tbOrder.getAutoSendOrder()!=null && tbOrder.getAutoSendOrder() == 1) {
|
|
|
|
|
|
|
+ if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 1) {
|
|
|
// 查询短信发送结果
|
|
// 查询短信发送结果
|
|
|
if (ObjectUtil.isNotNull(indent)) {
|
|
if (ObjectUtil.isNotNull(indent)) {
|
|
|
TbIndentSmsSendLog smsSendLog = smsSendLogService.getSendSuccessByOrderId(indent.getIndentId());
|
|
TbIndentSmsSendLog smsSendLog = smsSendLogService.getSendSuccessByOrderId(indent.getIndentId());
|
|
@@ -2084,12 +2126,12 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
activityDiscountAmount = activityPartRecord.getDiscountAmount();
|
|
activityDiscountAmount = activityPartRecord.getDiscountAmount();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if(tbOrder.getAutoSendOrder()!=null && tbOrder.getAutoSendOrder()==1){
|
|
|
|
|
|
|
+ if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 1) {
|
|
|
//如果达到商家满减 则商家不加上配送费
|
|
//如果达到商家满减 则商家不加上配送费
|
|
|
- if(!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
|
|
|
|
|
- shopMoney=shopMoney.add(tbOrder.getErrandMoney());
|
|
|
|
|
|
|
+ if (!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())) {
|
|
|
|
|
+ shopMoney = shopMoney.add(tbOrder.getErrandMoney());
|
|
|
}
|
|
}
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
/*if("本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
|
|
/*if("本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
|
|
|
shopMoney=shopMoney.subtract(tbOrder.getErrandMoney());
|
|
shopMoney=shopMoney.subtract(tbOrder.getErrandMoney());
|
|
|
}*/
|
|
}*/
|
|
@@ -2133,33 +2175,33 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
contentBuffer.append("(本单为商家优惠券,商家补贴)");
|
|
contentBuffer.append("(本单为商家优惠券,商家补贴)");
|
|
|
}
|
|
}
|
|
|
//计算积分
|
|
//计算积分
|
|
|
- String flag=commonInfoService.findOne(436).getValue();
|
|
|
|
|
- if("1".equals(flag)){
|
|
|
|
|
|
|
+ String flag = commonInfoService.findOne(436).getValue();
|
|
|
|
|
+ if ("1".equals(flag)) {
|
|
|
try {
|
|
try {
|
|
|
UserIntegralDetails userIntegralDetails = new UserIntegralDetails();
|
|
UserIntegralDetails userIntegralDetails = new UserIntegralDetails();
|
|
|
- String rules=commonInfoService.findOne(437).getValue();
|
|
|
|
|
|
|
+ String rules = commonInfoService.findOne(437).getValue();
|
|
|
//积分过期规则 -1永不过期
|
|
//积分过期规则 -1永不过期
|
|
|
// String overdue= commonInfoService.findOne(438).getValue();
|
|
// String overdue= commonInfoService.findOne(438).getValue();
|
|
|
- String maxIntegral= commonInfoService.findOne(439).getValue();
|
|
|
|
|
- String[] split = rules.split(",",5);
|
|
|
|
|
- int am1= Integer.parseInt(split[0]);
|
|
|
|
|
|
|
+ String maxIntegral = commonInfoService.findOne(439).getValue();
|
|
|
|
|
+ String[] split = rules.split(",", 5);
|
|
|
|
|
+ int am1 = Integer.parseInt(split[0]);
|
|
|
int av1 = Integer.parseInt(split[1]);
|
|
int av1 = Integer.parseInt(split[1]);
|
|
|
- int mx= Integer.parseInt(split[2]);
|
|
|
|
|
|
|
+ int mx = Integer.parseInt(split[2]);
|
|
|
int am2 = Integer.parseInt(split[3]);
|
|
int am2 = Integer.parseInt(split[3]);
|
|
|
- int av2= Integer.parseInt(split[4]);
|
|
|
|
|
- double amount= tbOrder.getPayMoney().doubleValue();
|
|
|
|
|
- int intergral=0;
|
|
|
|
|
- if (amount>am1){
|
|
|
|
|
- if(amount<mx){
|
|
|
|
|
- intergral=intergral+(int)(amount/am1)*av1;
|
|
|
|
|
- } else if (amount>=mx+am2){
|
|
|
|
|
- int count= (int) ((amount-mx)/am2);
|
|
|
|
|
- intergral=intergral+(mx/am1)*av1+count*av2;
|
|
|
|
|
- }else{
|
|
|
|
|
- intergral=intergral+(mx/am1)*av1;
|
|
|
|
|
|
|
+ int av2 = Integer.parseInt(split[4]);
|
|
|
|
|
+ double amount = tbOrder.getPayMoney().doubleValue();
|
|
|
|
|
+ int intergral = 0;
|
|
|
|
|
+ if (amount > am1) {
|
|
|
|
|
+ if (amount < mx) {
|
|
|
|
|
+ intergral = intergral + (int) (amount / am1) * av1;
|
|
|
|
|
+ } else if (amount >= mx + am2) {
|
|
|
|
|
+ int count = (int) ((amount - mx) / am2);
|
|
|
|
|
+ intergral = intergral + (mx / am1) * av1 + count * av2;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ intergral = intergral + (mx / am1) * av1;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- int max =Math.min(Integer.parseInt(maxIntegral), intergral);
|
|
|
|
|
|
|
+ int max = Math.min(Integer.parseInt(maxIntegral), intergral);
|
|
|
userIntegralDetails.setContent("完成订单获得积分");
|
|
userIntegralDetails.setContent("完成订单获得积分");
|
|
|
userIntegralDetails.setClassify(4);
|
|
userIntegralDetails.setClassify(4);
|
|
|
userIntegralDetails.setType(1);
|
|
userIntegralDetails.setType(1);
|
|
@@ -2176,7 +2218,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
//添加积分
|
|
//添加积分
|
|
|
userIntegralDao.addUserIntegral(max, tbOrder.getUserId());
|
|
userIntegralDao.addUserIntegral(max, tbOrder.getUserId());
|
|
|
} catch (NumberFormatException e) {
|
|
} catch (NumberFormatException e) {
|
|
|
- log.error("订单{}====积分入账异常{}",orderId, e.getMessage());
|
|
|
|
|
|
|
+ log.error("订单{}====积分入账异常{}", orderId, e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2321,7 +2363,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public Result userCancelOrder(Long orderId){
|
|
|
|
|
|
|
+ public Result userCancelOrder(Long orderId) {
|
|
|
RLock lock = redissonClient.getLock(String.format(RedisKey.CANCEL_ORDER_LOCK, orderId));
|
|
RLock lock = redissonClient.getLock(String.format(RedisKey.CANCEL_ORDER_LOCK, orderId));
|
|
|
lock.lock();
|
|
lock.lock();
|
|
|
try {
|
|
try {
|
|
@@ -2481,7 +2523,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public Result adminCancelOrder(Long orderId){
|
|
|
|
|
|
|
+ public Result adminCancelOrder(Long orderId) {
|
|
|
RLock lock = redissonClient.getLock(String.format(RedisKey.CANCEL_ORDER_LOCK, orderId));
|
|
RLock lock = redissonClient.getLock(String.format(RedisKey.CANCEL_ORDER_LOCK, orderId));
|
|
|
lock.lock();
|
|
lock.lock();
|
|
|
try {
|
|
try {
|
|
@@ -2495,7 +2537,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
public Result adminCancelOrders(Long orderId) {
|
|
public Result adminCancelOrders(Long orderId) {
|
|
|
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
|
TbOrder tbOrder = appOrderDao.selectById(orderId);
|
|
TbOrder tbOrder = appOrderDao.selectById(orderId);
|
|
|
- if(tbOrder.getStatus()==5 || tbOrder.getStatus() == 8){
|
|
|
|
|
|
|
+ if (tbOrder.getStatus() == 5 || tbOrder.getStatus() == 8) {
|
|
|
return Result.success();
|
|
return Result.success();
|
|
|
}
|
|
}
|
|
|
if (tbOrder.getIsPay() == 0) {
|
|
if (tbOrder.getIsPay() == 0) {
|
|
@@ -2669,10 +2711,10 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public Result selectOrder(Long userId, Integer orderId,Integer page, Integer limit) {
|
|
|
|
|
|
|
+ public Result selectOrder(Long userId, Integer orderId, Integer page, Integer limit) {
|
|
|
HashMap hashMap = new HashMap();
|
|
HashMap hashMap = new HashMap();
|
|
|
Page<TbOrder> pages = new Page(page, limit);
|
|
Page<TbOrder> pages = new Page(page, limit);
|
|
|
- IPage<TbOrder> tbOrderList = baseMapper.selectOrderPage(pages, userId,orderId);
|
|
|
|
|
|
|
+ IPage<TbOrder> tbOrderList = baseMapper.selectOrderPage(pages, userId, orderId);
|
|
|
BigDecimal money = new BigDecimal(0);
|
|
BigDecimal money = new BigDecimal(0);
|
|
|
ArrayList list = new ArrayList();
|
|
ArrayList list = new ArrayList();
|
|
|
for (int i = 0; i < tbOrderList.getRecords().size(); i++) {
|
|
for (int i = 0; i < tbOrderList.getRecords().size(); i++) {
|
|
@@ -2703,14 +2745,87 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
return Result.error("该订单不存在");
|
|
return Result.error("该订单不存在");
|
|
|
}
|
|
}
|
|
|
Integer status = tbOrder.getStatus();
|
|
Integer status = tbOrder.getStatus();
|
|
|
- if (status!=0) {
|
|
|
|
|
|
|
+ if (status != 0) {
|
|
|
return Result.error("当前订单不是待结算订单");
|
|
return Result.error("当前订单不是待结算订单");
|
|
|
}
|
|
}
|
|
|
- tbOrder.setStatus(5);
|
|
|
|
|
- baseMapper.updateById(tbOrder);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ //region
|
|
|
|
|
+ WXConfig config = new WXConfig();
|
|
|
|
|
+// 当前都是小程序支付
|
|
|
|
|
+ config.setAppId(commonInfoService.findOne(74).getValue());
|
|
|
|
|
+ //微信商户key
|
|
|
|
|
+ config.setKey(commonInfoService.findOne(250).getValue());
|
|
|
|
|
+ //微信商户号mchId
|
|
|
|
|
+ config.setMchId(commonInfoService.findOne(251).getValue());
|
|
|
|
|
+ WXPay wxpay = new WXPay(config);
|
|
|
|
|
+
|
|
|
|
|
+ WechatPayConfig wechatMchConfig = WechatPayConfig.builder()
|
|
|
|
|
+ .appId(commonInfoService.findOne(45).getValue())
|
|
|
|
|
+ .mchId(commonInfoService.findOne(434).getValue())
|
|
|
|
|
+ .mchKey(commonInfoService.findOne(435).getValue())
|
|
|
|
|
+ .h5Url(commonInfoService.findOne(19).getValue())
|
|
|
|
|
+ .build();
|
|
|
|
|
+
|
|
|
|
|
+ Integer state = tbOrder.getState();
|
|
|
|
|
+ if (0 == state) {
|
|
|
|
|
+// 状态为待支付需要调用支付系统订单查询接口判断支付系统对应的订单状态
|
|
|
|
|
+ Map<String, String> data = new HashMap<>();
|
|
|
|
|
+ String orderNumber = tbOrder.getOrderNumber();
|
|
|
|
|
+ //商户订单号
|
|
|
|
|
+ data.put("out_trade_no", orderNumber);
|
|
|
|
|
+ Map<String, String> response = wxpay.orderQuery(data);
|
|
|
|
|
+ String trade_state = response.get("trade_state");
|
|
|
|
|
+ //SUCCESS—支付成功,REFUND—转入退款,NOTPAY—未支付,CLOSED—已关闭,REVOKED—已撤销(刷卡支付),USERPAYING--用户支付中,PAYERROR--支付失败(其他原因,如银行返回失败)
|
|
|
|
|
+ if (ObjectUtils.isNotEmpty(trade_state)) {
|
|
|
|
|
+ if ("NOTPAY".equals(trade_state)) {
|
|
|
|
|
+ tbOrder.setStatus(5);
|
|
|
|
|
+ } else if ("SUCCESS".equals(trade_state)) {
|
|
|
|
|
+ tbOrder.setPayType(1);
|
|
|
|
|
+ orderService.updateOrderAfterPaySuccess(tbOrder);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ RhtQrcodePayApi qrcodePay = new RhtQrcodePayApi(wechatMchConfig.getMchId(), wechatMchConfig.getMchKey(), RHT_PAY_BASE_URL);
|
|
|
|
|
+ QrcodeQueryRequestBean qqrb = new QrcodeQueryRequestBean();
|
|
|
|
|
+ qqrb.setTraceno(orderNumber);// 商户流水号
|
|
|
|
|
+ QrcodeQueryResponseBean response2 = qrcodePay.query(qqrb);
|
|
|
|
|
+ String respCode = response2.getRespCode();
|
|
|
|
|
+ log.info("超时任务处理订单【{}】查询支付结果,支付通知信息:{}", orderNumber, response2);
|
|
|
|
|
+// 0未支付,1支付成功,2支付失败,4退款中,5退款成功,6退款失败
|
|
|
|
|
+ if ("0".equals(respCode)) {
|
|
|
|
|
+ tbOrder.setStatus(5);
|
|
|
|
|
+ } else if ("1".equals(respCode)) {
|
|
|
|
|
+ PayDetails payDetails = payDetailsService.getByOrderNo(orderNumber);
|
|
|
|
|
+ if (!ObjectUtil.isNull(payDetails)) {
|
|
|
|
|
+ payDetails.setState(PayStateEnums.PAY_SUCCESS.getStateCode());
|
|
|
|
|
+ payDetails.setPayTime(response2.getTransDate() + " " + response2.getTransTime());
|
|
|
|
|
+ payDetails.setTradeNo(response2.getChannelOrderno());
|
|
|
|
|
+ payDetails.setRemark("Scheduled RHT PAY SUCCESS");
|
|
|
|
|
+ payDetailsService.updateDetail(payDetails);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.error("超时任务处理订单【{}】支付成功,但未获取到支付订单!支付通知信息:{}", orderNumber, response2);
|
|
|
|
|
+ }
|
|
|
|
|
+ tbOrder.setPayType(1);
|
|
|
|
|
+ orderService.updateOrderAfterPaySuccess(tbOrder);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ tbOrder.setStatus(5);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //list为空不要执行
|
|
|
|
|
+ if (tbOrder.getStatus().intValue() == 5) {
|
|
|
|
|
+ baseMapper.updateById(tbOrder);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //endregion
|
|
|
return Result.success();
|
|
return Result.success();
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("超时订单自动取消任务运行失败失败原因:{}", e.getMessage());
|
|
|
|
|
+ return Result.error("自动取消订单异常");
|
|
|
} finally {
|
|
} finally {
|
|
|
lock.unlock();
|
|
lock.unlock();
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2718,17 +2833,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
public PayTransactionsVO getTransactionsParam(Long userId, PayOrderDTO payOrderDTO) {
|
|
public PayTransactionsVO getTransactionsParam(Long userId, PayOrderDTO payOrderDTO) {
|
|
|
TbOrder order = prepareOrder(userId, payOrderDTO);
|
|
TbOrder order = prepareOrder(userId, payOrderDTO);
|
|
|
Integer status = order.getStatus();
|
|
Integer status = order.getStatus();
|
|
|
- if (status==0) {
|
|
|
|
|
|
|
+ if (status == 0) {
|
|
|
// 获取超时时间
|
|
// 获取超时时间
|
|
|
Long timeOut = order.getTimeOut();
|
|
Long timeOut = order.getTimeOut();
|
|
|
if (ObjectUtils.isNotEmpty(timeOut)) {
|
|
if (ObjectUtils.isNotEmpty(timeOut)) {
|
|
|
long time = new Date().getTime();
|
|
long time = new Date().getTime();
|
|
|
|
|
|
|
|
- if (timeOut<time) {
|
|
|
|
|
|
|
+ if (timeOut < time) {
|
|
|
throw new SqxException("订单已过期!");
|
|
throw new SqxException("订单已过期!");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }else {
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
|
|
|
// 支付时,订单状态改为 0
|
|
// 支付时,订单状态改为 0
|
|
|
order.setStatus(0);
|
|
order.setStatus(0);
|
|
@@ -2736,7 +2851,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
// 超时时间15分钟
|
|
// 超时时间15分钟
|
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
|
- long time1 = date.getTime()+15*60*1000;
|
|
|
|
|
|
|
+ long time1 = date.getTime() + 15 * 60 * 1000;
|
|
|
order.setTimeOut(time1);
|
|
order.setTimeOut(time1);
|
|
|
}
|
|
}
|
|
|
// 更新订单
|
|
// 更新订单
|
|
@@ -2749,7 +2864,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
// 设置支付方式 1表示微信支付、4或5表示支付宝支付
|
|
// 设置支付方式 1表示微信支付、4或5表示支付宝支付
|
|
|
Integer type = payOrderDTO.getType();
|
|
Integer type = payOrderDTO.getType();
|
|
|
|
|
|
|
|
- // 微信支付
|
|
|
|
|
|
|
+ // 微信支付
|
|
|
if (type == 1) {
|
|
if (type == 1) {
|
|
|
UserEntity userEntity = userService.queryByUserId(userId);
|
|
UserEntity userEntity = userService.queryByUserId(userId);
|
|
|
|
|
|
|
@@ -2779,17 +2894,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Result selectAllOrderTotalPrice(OrderQueryDto queryDto) {
|
|
public Result selectAllOrderTotalPrice(OrderQueryDto queryDto) {
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getEndTime())){
|
|
|
|
|
- queryDto.setEndTime(queryDto.getEndTime()+" 23:59:59");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getEndTime())) {
|
|
|
|
|
+ queryDto.setEndTime(queryDto.getEndTime() + " 23:59:59");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())){
|
|
|
|
|
- queryDto.setPayEndTime(queryDto.getPayEndTime()+" 23:59:59");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())) {
|
|
|
|
|
+ queryDto.setPayEndTime(queryDto.getPayEndTime() + " 23:59:59");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getStartTime())){
|
|
|
|
|
- queryDto.setStartTime(queryDto.getStartTime()+" 00:00:00");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getStartTime())) {
|
|
|
|
|
+ queryDto.setStartTime(queryDto.getStartTime() + " 00:00:00");
|
|
|
}
|
|
}
|
|
|
- if(org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())){
|
|
|
|
|
- queryDto.setPayStartTime(queryDto.getPayStartTime()+" 00:00:00");
|
|
|
|
|
|
|
+ if (org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())) {
|
|
|
|
|
+ queryDto.setPayStartTime(queryDto.getPayStartTime() + " 00:00:00");
|
|
|
}
|
|
}
|
|
|
BigDecimal totalPrice = appOrderDao.selectAllOrderTotalPrice(queryDto);
|
|
BigDecimal totalPrice = appOrderDao.selectAllOrderTotalPrice(queryDto);
|
|
|
|
|
|
|
@@ -2803,6 +2918,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 更新订单状态和支付顺序
|
|
* 更新订单状态和支付顺序
|
|
|
|
|
+ *
|
|
|
* @param order 订单信息
|
|
* @param order 订单信息
|
|
|
*/
|
|
*/
|
|
|
private void updateOrderStatusAndSequence(TbOrder order) {
|
|
private void updateOrderStatusAndSequence(TbOrder order) {
|