|
@@ -471,6 +471,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
if (!Integer.valueOf(Constant.YES).equals(goodsShop.getReservationOpenFlag())) {
|
|
if (!Integer.valueOf(Constant.YES).equals(goodsShop.getReservationOpenFlag())) {
|
|
|
throw new SqxException("当前店铺未开启预约接单");
|
|
throw new SqxException("当前店铺未开启预约接单");
|
|
|
}
|
|
}
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 判断店铺营业时间
|
|
|
|
|
+ if (!isShopBusinessTime(goodsShop.getShopId())) {
|
|
|
|
|
+ throw new SqxException("店铺已打烊!");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 2 外卖订单
|
|
// 2 外卖订单
|
|
@@ -668,70 +673,77 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
@Override
|
|
@Override
|
|
|
public void finishOrderByShop(OrderFinishByShopDTO orderFinishByShopDTO) {
|
|
public void finishOrderByShop(OrderFinishByShopDTO orderFinishByShopDTO) {
|
|
|
Long orderId = orderFinishByShopDTO.getOrderId();
|
|
Long orderId = orderFinishByShopDTO.getOrderId();
|
|
|
- TbOrder order = getById(orderId);
|
|
|
|
|
-
|
|
|
|
|
- if (ObjectUtil.isNull(order)) {
|
|
|
|
|
- throw new SqxException("无效的订单id");
|
|
|
|
|
- }
|
|
|
|
|
- if(order.getAutoSendOrder() != null && order.getAutoSendOrder() == 0){
|
|
|
|
|
- throw new SqxException("当前订单为自动派单,不能手动完成!");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (order.getStatus().equals(4)) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ RLock lock = redissonClient.getLock(String.format(RedisKey.FINISH_ORDER_LOCK, orderId));
|
|
|
|
|
+ lock.lock();
|
|
|
|
|
+ try {
|
|
|
|
|
+ TbOrder order = getById(orderId);
|
|
|
|
|
|
|
|
- Long shopId = order.getShopId();
|
|
|
|
|
- SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
|
|
|
|
|
- List<SysUserShop> sysUserShops = sysUserService.selectShopId(currentUser.getUserId());
|
|
|
|
|
- if (CollUtil.isEmpty(sysUserShops) || !sysUserShops.stream().filter(e -> e.getShopId().longValue() == shopId.longValue()).findFirst().isPresent()) {
|
|
|
|
|
- throw new SqxException("没有操作权限,只能操作完成自己店铺订单!");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (ObjectUtil.isNull(order)) {
|
|
|
|
|
+ throw new SqxException("无效的订单id");
|
|
|
|
|
+ }
|
|
|
|
|
+ if(order.getAutoSendOrder() != null && order.getAutoSendOrder() == 0){
|
|
|
|
|
+ throw new SqxException("当前订单为自动派单,不能手动完成!");
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (Constant.YES.equals(orderFinishByShopDTO.getSendSmsFlag())) {
|
|
|
|
|
- TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
|
|
|
|
|
- if (ObjectUtil.isNull(indent)) {
|
|
|
|
|
|
|
+ if (order.getStatus().equals(4)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 如果是外卖订单
|
|
|
|
|
- if (ObjectUtil.equal(indent.getIndentType(), "5")) {
|
|
|
|
|
- Long smsTemplateId = orderFinishByShopDTO.getSmsTemplateId();
|
|
|
|
|
- if (ObjectUtil.isNull(smsTemplateId)) {
|
|
|
|
|
- throw new SqxException("短信模板id不能为空");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 收货人手机
|
|
|
|
|
- String userPhone = indent.getUserPhone();
|
|
|
|
|
|
|
+ Long shopId = order.getShopId();
|
|
|
|
|
+ SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
|
|
|
|
|
+ List<SysUserShop> sysUserShops = sysUserService.selectShopId(currentUser.getUserId());
|
|
|
|
|
+ if (CollUtil.isEmpty(sysUserShops) || !sysUserShops.stream().filter(e -> e.getShopId().longValue() == shopId.longValue()).findFirst().isPresent()) {
|
|
|
|
|
+ throw new SqxException("没有操作权限,只能操作完成自己店铺订单!");
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (StrUtil.isBlank(userPhone)) {
|
|
|
|
|
|
|
+ if (Constant.YES.equals(orderFinishByShopDTO.getSendSmsFlag())) {
|
|
|
|
|
+ TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
|
|
|
|
|
+ if (ObjectUtil.isNull(indent)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 店铺信息
|
|
|
|
|
- GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
|
|
|
- // 查询短信发送费用
|
|
|
|
|
- CommonInfo commonInfo = commonInfoService.findOne(421);
|
|
|
|
|
- // 店铺钱包
|
|
|
|
|
- UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(goodsShop.getUserId());
|
|
|
|
|
- if (userMoney.getMoney().compareTo(new BigDecimal(commonInfo.getValue())) < 0) {
|
|
|
|
|
- throw new SqxException("当前店铺余额不够,短信发送失败!");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 如果是外卖订单
|
|
|
|
|
+ if (ObjectUtil.equal(indent.getIndentType(), "5")) {
|
|
|
|
|
+ Long smsTemplateId = orderFinishByShopDTO.getSmsTemplateId();
|
|
|
|
|
+ if (ObjectUtil.isNull(smsTemplateId)) {
|
|
|
|
|
+ throw new SqxException("短信模板id不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 收货人手机
|
|
|
|
|
+ String userPhone = indent.getUserPhone();
|
|
|
|
|
|
|
|
- // 发送短信并记录短信发送记录
|
|
|
|
|
- SmsSendResult smsSendResult = smsTemplateService.sendSms(smsTemplateId, goodsShop.getPhone(), goodsShop.getShopName(), goodsShop.getShopId(), userPhone);
|
|
|
|
|
|
|
+ if (StrUtil.isBlank(userPhone)) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // sourceType 1骑手、2商家
|
|
|
|
|
- smsSendLogService.saveLog(indent.getIndentId(), "2", smsSendResult);
|
|
|
|
|
|
|
+ // 店铺信息
|
|
|
|
|
+ GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
|
|
|
+ // 查询短信发送费用
|
|
|
|
|
+ CommonInfo commonInfo = commonInfoService.findOne(421);
|
|
|
|
|
+ // 店铺钱包
|
|
|
|
|
+ UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(goodsShop.getUserId());
|
|
|
|
|
+ if (userMoney.getMoney().compareTo(new BigDecimal(commonInfo.getValue())) < 0) {
|
|
|
|
|
+ throw new SqxException("当前店铺余额不够,短信发送失败!");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 发送短信并记录短信发送记录
|
|
|
|
|
+ SmsSendResult smsSendResult = smsTemplateService.sendSms(smsTemplateId, goodsShop.getPhone(), goodsShop.getShopName(), goodsShop.getShopId(), userPhone);
|
|
|
|
|
+
|
|
|
|
|
+ // sourceType 1骑手、2商家
|
|
|
|
|
+ smsSendLogService.saveLog(indent.getIndentId(), "2", smsSendResult);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- if (StrUtil.isNotBlank(orderFinishByShopDTO.getImgs())) {
|
|
|
|
|
- order.setDeliveryImgs(orderFinishByShopDTO.getImgs());
|
|
|
|
|
- updateById(order);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (StrUtil.isNotBlank(orderFinishByShopDTO.getImgs())) {
|
|
|
|
|
+ order.setDeliveryImgs(orderFinishByShopDTO.getImgs());
|
|
|
|
|
+ updateById(order);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- accomplishOrder(orderId);
|
|
|
|
|
|
|
+ log.info("商户自配完成订单:{},订单状态:{}", orderId, order.getStatus());
|
|
|
|
|
+ accomplishOrder(orderId);
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ lock.unlock();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -1303,9 +1315,9 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
@Override
|
|
@Override
|
|
|
public ExcelData excelAllOrderAdmin(Integer status, String phone, Long shopId,
|
|
public ExcelData excelAllOrderAdmin(Integer status, String phone, Long shopId,
|
|
|
String userName, String orderNumber, Integer orderType, String shopName,
|
|
String userName, String orderNumber, Integer orderType, String shopName,
|
|
|
- String riderPhone, String startTime, String endTime,String payStartTime, String payEndTime) {
|
|
|
|
|
|
|
+ String riderPhone, String startTime, String endTime,String payStartTime, String payEndTime,String riderStationId) {
|
|
|
List<TbOrder> tbOrderIPage = appOrderDao.excelAllOrderAdmin( status, phone, shopId, userName, orderNumber, orderType,
|
|
List<TbOrder> tbOrderIPage = appOrderDao.excelAllOrderAdmin( status, phone, shopId, userName, orderNumber, orderType,
|
|
|
- shopName, riderPhone,startTime,endTime,payStartTime,payEndTime);
|
|
|
|
|
|
|
+ shopName, riderPhone,startTime,endTime,payStartTime,payEndTime,riderStationId);
|
|
|
// for (int i = 0; i < tbOrderIPage.size(); i++) {
|
|
// for (int i = 0; i < tbOrderIPage.size(); i++) {
|
|
|
// List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>()
|
|
// List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>()
|
|
|
// .eq("order_id", tbOrderIPage.get(i).getOrderId()));
|
|
// .eq("order_id", tbOrderIPage.get(i).getOrderId()));
|
|
@@ -1322,7 +1334,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
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();
|
|
@@ -1420,6 +1432,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
}else{
|
|
}else{
|
|
|
row.add("");
|
|
row.add("");
|
|
|
}
|
|
}
|
|
|
|
|
+ row.add(order.getStationName());
|
|
|
rows.add(row);
|
|
rows.add(row);
|
|
|
}
|
|
}
|
|
|
data.setRows(rows);
|
|
data.setRows(rows);
|
|
@@ -1685,6 +1698,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
if (tbOrder.getStatus().equals(3)) {
|
|
if (tbOrder.getStatus().equals(3)) {
|
|
|
return Result.success();
|
|
return Result.success();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if (!tbOrder.getStatus().equals(6)) {
|
|
|
|
|
+ throw new SqxException("当前订单制作完成失败,非制作中订单不能制作完成。【订单id:" + tbOrder.getOrderId() + ",订单状态:" + tbOrder.getStatus() + "】");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
MessageInfo messageInfo = new MessageInfo();
|
|
MessageInfo messageInfo = new MessageInfo();
|
|
|
messageInfo.setTitle("餐品制作完成");
|
|
messageInfo.setTitle("餐品制作完成");
|
|
|
if (tbOrder.getOrderType() == 1) {
|
|
if (tbOrder.getOrderType() == 1) {
|
|
@@ -1705,32 +1723,30 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
}
|
|
}
|
|
|
messageInfo.setCreateAt(format1);
|
|
messageInfo.setCreateAt(format1);
|
|
|
messageInfo.setUserId(tbOrder.getUserId().toString());
|
|
messageInfo.setUserId(tbOrder.getUserId().toString());
|
|
|
- messageInfoDao.insert(messageInfo);
|
|
|
|
|
- //设置小程序消息推送
|
|
|
|
|
- CommonInfo one = commonInfoService.findOne(269);
|
|
|
|
|
- List<String> msgList = new ArrayList<>();
|
|
|
|
|
- Long shopId = tbOrder.getShopId();
|
|
|
|
|
- GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
|
|
|
- String shopName = goodsShop.getShopName();
|
|
|
|
|
- String orderNum1 = tbOrder.getOrderNumber();
|
|
|
|
|
- /*msgList.add(shopName);
|
|
|
|
|
- msgList.add(orderNum1);
|
|
|
|
|
- msgList.add("已制作完成");
|
|
|
|
|
- msgList.add(format1);*/
|
|
|
|
|
|
|
|
|
|
- msgList.add("已制作完成");
|
|
|
|
|
- msgList.add(orderNum1);
|
|
|
|
|
- msgList.add(shopName);
|
|
|
|
|
- msgList.add(format1);
|
|
|
|
|
- /*
|
|
|
|
|
- if(tbOrder.getOrderType()==1){
|
|
|
|
|
- msgList.add("您的餐品已制作完成,请及时取餐");
|
|
|
|
|
- }else if(tbOrder.getOrderType()==2){
|
|
|
|
|
- msgList.add("您的餐品已制作完成,正在配送中");
|
|
|
|
|
- }*/
|
|
|
|
|
- UserEntity userEntity = userDao.selectById(tbOrder.getUserId());
|
|
|
|
|
- SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), one.getValue(), msgList, 1);
|
|
|
|
|
- userService.pushToSingle("制作完成", "亲爱的用户您好,您的订单已制作完成,请耐心等待配送!", userEntity.getClientid());
|
|
|
|
|
|
|
+ MyGlobalThreadPool.execute(() -> {
|
|
|
|
|
+ try {
|
|
|
|
|
+ messageInfoDao.insert(messageInfo);
|
|
|
|
|
+ //设置小程序消息推送
|
|
|
|
|
+ CommonInfo one = commonInfoService.findOne(269);
|
|
|
|
|
+ List<String> msgList = new ArrayList<>();
|
|
|
|
|
+ Long shopId = tbOrder.getShopId();
|
|
|
|
|
+ GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
|
|
|
+ String shopName = goodsShop.getShopName();
|
|
|
|
|
+ String orderNum1 = tbOrder.getOrderNumber();
|
|
|
|
|
+
|
|
|
|
|
+ msgList.add("已制作完成");
|
|
|
|
|
+ msgList.add(orderNum1);
|
|
|
|
|
+ msgList.add(shopName);
|
|
|
|
|
+ msgList.add(format1);
|
|
|
|
|
+
|
|
|
|
|
+ UserEntity userEntity = userDao.selectById(tbOrder.getUserId());
|
|
|
|
|
+ SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), one.getValue(), msgList, 1);
|
|
|
|
|
+ // userService.pushToSingle("制作完成", "亲爱的用户您好,您的订单已制作完成,请耐心等待配送!", userEntity.getClientid());
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("订单制作完成通知发送失败,订单id:" + order.getOrderId() + ",异常消息:" + e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
} else if (order.getStatus() == 4) {
|
|
} else if (order.getStatus() == 4) {
|
|
|
if (tbOrder.getStatus().equals(4)) {
|
|
if (tbOrder.getStatus().equals(4)) {
|
|
|
return Result.success();
|
|
return Result.success();
|
|
@@ -1741,27 +1757,32 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
//管理端完成订单,则消息通知用户
|
|
//管理端完成订单,则消息通知用户
|
|
|
- //添加消息记录
|
|
|
|
|
- MessageInfo messageInfo = new MessageInfo();
|
|
|
|
|
- messageInfo.setTitle("订单完成");
|
|
|
|
|
- messageInfo.setContent("您的订单已完成,欢迎下次光临");
|
|
|
|
|
- messageInfo.setCreateAt(format1);
|
|
|
|
|
- messageInfo.setUserId(tbOrder.getUserId().toString());
|
|
|
|
|
- messageInfoDao.insert(messageInfo);
|
|
|
|
|
- //设置小程序消息推送
|
|
|
|
|
- CommonInfo one = commonInfoService.findOne(269);
|
|
|
|
|
- List<String> msgList = new ArrayList<>();
|
|
|
|
|
- Long shopId = tbOrder.getShopId();
|
|
|
|
|
- GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
|
|
|
- String shopName = goodsShop.getShopName();
|
|
|
|
|
- String orderNum1 = tbOrder.getOrderNumber();
|
|
|
|
|
- msgList.add("订单完成");
|
|
|
|
|
- msgList.add(orderNum1);
|
|
|
|
|
- msgList.add(shopName);
|
|
|
|
|
- msgList.add(format1);
|
|
|
|
|
- UserEntity userEntity = userDao.selectById(tbOrder.getUserId());
|
|
|
|
|
- SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), one.getValue(), msgList, 1);
|
|
|
|
|
- userService.pushToSingle("订单完成", "亲爱的用户您好,您的订单已完成,欢迎下次光临!", userEntity.getClientid());
|
|
|
|
|
|
|
+ MyGlobalThreadPool.execute(() -> {
|
|
|
|
|
+ try {
|
|
|
|
|
+ MessageInfo messageInfo = new MessageInfo();
|
|
|
|
|
+ messageInfo.setTitle("订单完成");
|
|
|
|
|
+ messageInfo.setContent("您的订单已完成,欢迎下次光临");
|
|
|
|
|
+ messageInfo.setCreateAt(format1);
|
|
|
|
|
+ messageInfo.setUserId(tbOrder.getUserId().toString());
|
|
|
|
|
+ messageInfoDao.insert(messageInfo);
|
|
|
|
|
+ //设置小程序消息推送
|
|
|
|
|
+ CommonInfo one = commonInfoService.findOne(269);
|
|
|
|
|
+ List<String> msgList = new ArrayList<>();
|
|
|
|
|
+ Long shopId = tbOrder.getShopId();
|
|
|
|
|
+ GoodsShop goodsShop = goodsShopDao.selectById(shopId);
|
|
|
|
|
+ String shopName = goodsShop.getShopName();
|
|
|
|
|
+ String orderNum1 = tbOrder.getOrderNumber();
|
|
|
|
|
+ msgList.add("订单完成");
|
|
|
|
|
+ msgList.add(orderNum1);
|
|
|
|
|
+ msgList.add(shopName);
|
|
|
|
|
+ msgList.add(format1);
|
|
|
|
|
+ UserEntity userEntity = userDao.selectById(tbOrder.getUserId());
|
|
|
|
|
+ SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), one.getValue(), msgList, 1);
|
|
|
|
|
+ // userService.pushToSingle("订单完成", "亲爱的用户您好,您的订单已完成,欢迎下次光临!", userEntity.getClientid());
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("订单完成通知发送失败,订单id:" + order.getOrderId() + ",异常消息:" + e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
} else if (order.getStatus() == 8) {
|
|
} else if (order.getStatus() == 8) {
|
|
|
if (tbOrder.getStatus().equals(8) || tbOrder.getStatus().equals(5)) {
|
|
if (tbOrder.getStatus().equals(8) || tbOrder.getStatus().equals(5)) {
|
|
|
return Result.success();
|
|
return Result.success();
|
|
@@ -2038,52 +2059,40 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
userMoneyService.updateMoney(1, goodsShop.getUserId(), shopMoney.doubleValue());
|
|
userMoneyService.updateMoney(1, goodsShop.getUserId(), shopMoney.doubleValue());
|
|
|
log.info("订单id【{}】,商户用户钱包收入更新成功", orderId);
|
|
log.info("订单id【{}】,商户用户钱包收入更新成功", orderId);
|
|
|
|
|
|
|
|
- //管理端完成订单,则消息通知用户
|
|
|
|
|
- //添加消息记录
|
|
|
|
|
- MessageInfo messageInfo = new MessageInfo();
|
|
|
|
|
- messageInfo.setTitle("订单完成");
|
|
|
|
|
- messageInfo.setContent("您的订单已完成,欢迎下次光临");
|
|
|
|
|
- messageInfo.setCreateAt(format);
|
|
|
|
|
- messageInfo.setUserId(tbOrder.getUserId().toString());
|
|
|
|
|
- messageInfoDao.insert(messageInfo);
|
|
|
|
|
- //设置小程序消息推送
|
|
|
|
|
- CommonInfo one = commonInfoService.findOne(269);
|
|
|
|
|
- List<String> msgList = new ArrayList<>();
|
|
|
|
|
-
|
|
|
|
|
- String shopName = goodsShop.getShopName();
|
|
|
|
|
- String orderNum1 = tbOrder.getOrderNumber();
|
|
|
|
|
- msgList.add("订单完成");
|
|
|
|
|
- msgList.add(orderNum1);
|
|
|
|
|
- msgList.add(shopName);
|
|
|
|
|
- msgList.add(format);
|
|
|
|
|
- UserEntity userEntity = userDao.selectById(tbOrder.getUserId());
|
|
|
|
|
MyGlobalThreadPool.execute(() -> {
|
|
MyGlobalThreadPool.execute(() -> {
|
|
|
try {
|
|
try {
|
|
|
- SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), one.getValue(), msgList, 1);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("订单:{},订单支付成功通知发送失败,失败原因:{}", e);
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ // 用户通知
|
|
|
|
|
+ MessageInfo messageInfo = new MessageInfo();
|
|
|
|
|
+ messageInfo.setTitle("订单完成");
|
|
|
|
|
+ messageInfo.setContent("您的订单已完成,欢迎下次光临");
|
|
|
|
|
+ messageInfo.setCreateAt(format);
|
|
|
|
|
+ messageInfo.setUserId(tbOrder.getUserId().toString());
|
|
|
|
|
+ messageInfoDao.insert(messageInfo);
|
|
|
|
|
+ //设置小程序消息推送
|
|
|
|
|
+ CommonInfo one = commonInfoService.findOne(269);
|
|
|
|
|
+ List<String> msgList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ String shopName = goodsShop.getShopName();
|
|
|
|
|
+ String orderNum1 = tbOrder.getOrderNumber();
|
|
|
|
|
+ msgList.add("订单完成");
|
|
|
|
|
+ msgList.add(orderNum1);
|
|
|
|
|
+ msgList.add(shopName);
|
|
|
|
|
+ msgList.add(format);
|
|
|
|
|
+ UserEntity userEntity = userDao.selectById(tbOrder.getUserId());
|
|
|
|
|
|
|
|
- MyGlobalThreadPool.execute(() -> {
|
|
|
|
|
- try {
|
|
|
|
|
- userService.pushToSingle("订单完成", "您的订单已完成,欢迎下次光临!", userEntity.getClientid());
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("订单:{},订单支付成功通知发送失败,失败原因:{}", e);
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- String shopTemplate = commonInfoService.findOne(354).getValue();
|
|
|
|
|
- List<String> msgListShop = new ArrayList<>();
|
|
|
|
|
- msgListShop.add(indent.getIndentNumber());
|
|
|
|
|
- msgListShop.add("订单完成");
|
|
|
|
|
- msgListShop.add(DateUtils.format(new Date()));
|
|
|
|
|
- UserEntity shopUser = userService.selectUserById(goodsShop.getUserId());
|
|
|
|
|
- MyGlobalThreadPool.execute(() -> {
|
|
|
|
|
- try {
|
|
|
|
|
|
|
+ SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), one.getValue(), msgList, 1);
|
|
|
|
|
+ // userService.pushToSingle("订单完成", "您的订单已完成,欢迎下次光临!", userEntity.getClientid());
|
|
|
|
|
+
|
|
|
|
|
+ // 商家通知
|
|
|
|
|
+ String shopTemplate = commonInfoService.findOne(354).getValue();
|
|
|
|
|
+ List<String> msgListShop = new ArrayList<>();
|
|
|
|
|
+ msgListShop.add(indent.getIndentNumber());
|
|
|
|
|
+ msgListShop.add("订单完成");
|
|
|
|
|
+ msgListShop.add(DateUtils.format(new Date()));
|
|
|
|
|
+ UserEntity shopUser = userService.selectUserById(goodsShop.getUserId());
|
|
|
SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(), shopTemplate, msgListShop, 9);
|
|
SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(), shopTemplate, msgListShop, 9);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
- log.error("订单:{},订单支付成功通知发送失败,失败原因:{}", e);
|
|
|
|
|
|
|
+ log.error("订单:{},订单完成通知发送失败,失败原因:{}", e);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -2597,8 +2606,14 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
|
|
|
* @return 支付顺序
|
|
* @return 支付顺序
|
|
|
*/
|
|
*/
|
|
|
private int selectCurrentOrderSequenceByShopId(TbOrder order, Long shopId) {
|
|
private int selectCurrentOrderSequenceByShopId(TbOrder order, Long shopId) {
|
|
|
- int count = appOrderDao.countCurDayPayByShopId(shopId, order.getPayTime());
|
|
|
|
|
|
|
+ RLock lock = redissonClient.getLock(String.format(RedisKey.ORDER_SEQUENCE_LOCK, shopId));
|
|
|
|
|
+ lock.lock();
|
|
|
|
|
+ try {
|
|
|
|
|
+ int count = appOrderDao.countCurDayPayByShopId(shopId, order.getPayTime());
|
|
|
|
|
|
|
|
- return count + 1;
|
|
|
|
|
|
|
+ return count + 1;
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ lock.unlock();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|