新消息通知。新订单下单/子师傅拒绝接单

This commit is contained in:
kuang.yife 2023-03-27 02:03:19 +08:00
parent 30b91107b1
commit ab0183910a
6 changed files with 62 additions and 12 deletions

View File

@ -358,6 +358,15 @@ public class OrderController extends BaseController {
.setWorkerId(assignWorker.getWorkerId()).setWorkerName(assignWorker.getName()).setBehavior(OrderBehaviorEnum.ASSIGN_ORDER); .setWorkerId(assignWorker.getWorkerId()).setWorkerName(assignWorker.getName()).setBehavior(OrderBehaviorEnum.ASSIGN_ORDER);
orderBehaviorService.insert(orderBehavior); orderBehaviorService.insert(orderBehavior);
// 通知师傅新订单
try {
Map<String,Object> params = new HashMap<>();
params.put("thing1", "新订单通知");
params.put("thing5", "收到师傅派单,请及时处理!");
wxMsgService.sendWxMsg(acceptWorker.getOpenId(), WxMsgEnum.ORDER_PLAN, params);
}catch (Exception e){
e.printStackTrace();
}
return AjaxResult.success(); return AjaxResult.success();
} }

View File

@ -692,6 +692,19 @@ public class OrderDetailController extends BaseController {
if (UserConstants.ORDER_CODE_NOT_UNIQUE.equals(orderDetailService.checkOrderDetailCodeUnique(orderDetail))) { if (UserConstants.ORDER_CODE_NOT_UNIQUE.equals(orderDetailService.checkOrderDetailCodeUnique(orderDetail))) {
return error("修改详细订单'" + orderDetail.getCode() + "'失败,详细订单编码已存在"); return error("修改详细订单'" + orderDetail.getCode() + "'失败,详细订单编码已存在");
} }
if(StringUtils.isNotEmpty(orderDetail.getClockInLocation())){
OrderDetail model = orderDetailService.selectById(orderDetail.getId());
Customer customer = customerService.selectByCustomerId(model.getCustomerId());
// 通知师傅新订单
try {
Map<String,Object> params = new HashMap<>();
params.put("thing1", "师傅打卡通知");
params.put("thing5", "请确认师傅已到达!");
wxMsgService.sendWxMsg(customer.getOpenId(), WxMsgEnum.CUSTOMER_ORDER, params);
}catch (Exception e){
e.printStackTrace();
}
}
return toAjax(orderDetailService.updateOrderDetail(orderDetail)); return toAjax(orderDetailService.updateOrderDetail(orderDetail));
} }
@ -808,6 +821,16 @@ public class OrderDetailController extends BaseController {
.setBehavior(OrderBehaviorEnum.FINISH_ORDER); .setBehavior(OrderBehaviorEnum.FINISH_ORDER);
orderBehaviorService.insert(orderBehavior); orderBehaviorService.insert(orderBehavior);
Customer customer = customerService.selectByCustomerId(orderDetail.getCustomerId());
// 通知师傅新订单
try {
Map<String,Object> params = new HashMap<>();
params.put("thing1", "师傅完单通知");
params.put("thing5", "请确认师傅工作已完成!");
wxMsgService.sendWxMsg(customer.getOpenId(), WxMsgEnum.CUSTOMER_ORDER, params);
}catch (Exception e){
e.printStackTrace();
}
return AjaxResult.success("发起成功"); return AjaxResult.success("发起成功");
} }
@ -821,6 +844,7 @@ public class OrderDetailController extends BaseController {
// 查询订单信息 // 查询订单信息
OrderDetail od = this.orderDetailService.selectById(orderDetail.getId()); OrderDetail od = this.orderDetailService.selectById(orderDetail.getId());
OrderMaster om = orderMasterService.selectById(od.getOrderMasterId()); OrderMaster om = orderMasterService.selectById(od.getOrderMasterId());
Worker masterWorker = workerService.selectById(om.getWorkerId());
Worker worker = workerService.selectById(od.getWorkerId()); Worker worker = workerService.selectById(od.getWorkerId());
// 删除子单 // 删除子单
orderDetailService.deleteOrderDetailByIds(orderDetail.getId().toString()); orderDetailService.deleteOrderDetailByIds(orderDetail.getId().toString());
@ -865,9 +889,9 @@ public class OrderDetailController extends BaseController {
// 通知师傅新订单 // 通知师傅新订单
try { try {
Map<String,Object> params = new HashMap<>(); Map<String,Object> params = new HashMap<>();
params.put("thing1", "订单被拒通知!"); params.put("thing1", "订单被拒通知");
params.put("thing5", "订单"+ orderDetail.getCode() +"被拒绝,请及时处理!"); params.put("thing5", "订单被拒绝,请及时处理!");
wxMsgService.sendWxMsg(worker.getOpenId(), WxMsgEnum.ORDER_PLAN, params); wxMsgService.sendWxMsg(masterWorker.getOpenId(), WxMsgEnum.ORDER_PLAN, params);
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -104,8 +104,8 @@ swagger:
#小程序配置 #小程序配置
wx: wx:
# appId: 'wxc39c2af3ea24cd37' mallAppId: 'wxc39c2af3ea24cd37'
# secret: '96d566c3169b8715904950d9cf3cbf60' mallSecret: '96d566c3169b8715904950d9cf3cbf60'
appId: 'wx105ce607b514ff2a' appId: 'wx105ce607b514ff2a'
secret: '51df6f2d33bf639fa05891af7a69a56e' secret: '51df6f2d33bf639fa05891af7a69a56e'
# appId: 'wx404f2439a8c24e15' # appId: 'wx404f2439a8c24e15'

View File

@ -10,7 +10,10 @@ public enum WxMsgEnum {
/** 任务大厅订单通知 */ /** 任务大厅订单通知 */
ORDER_PLAN("", "yqd3p4qsqn1RiyUb8kO4dPqoGKipRQg_y99nGw0jtLE"), ORDER_PLAN("", "yqd3p4qsqn1RiyUb8kO4dPqoGKipRQg_y99nGw0jtLE"),
/** 新订单通知 */ /** 新订单通知 */
NEW_ORDER("","gFoPAYF4J6Y_O5OzzNUbvMxTrsAS7aUWffdNH42xhzM"); NEW_ORDER("","gFoPAYF4J6Y_O5OzzNUbvMxTrsAS7aUWffdNH42xhzM"),
/** 商城端消息通知 */
CUSTOMER_ORDER("", "JtsGFPDjYhL2GbHfKxvTJaR_lLp8xLyw8VeR01Y0JHM")
;
/** 超时消息通知 */ /** 超时消息通知 */
// OVER_TIME("","8I5BnJMfwj-Z7udhNm9Z-kdjdg4__MV5ug1x8KKsbc0"), // OVER_TIME("","8I5BnJMfwj-Z7udhNm9Z-kdjdg4__MV5ug1x8KKsbc0"),
/** 今日单消息通知 */ /** 今日单消息通知 */

View File

@ -164,7 +164,7 @@ public class OrderServiceImpl implements OrderService {
// long day14ago = now - 10000L; // long day14ago = now - 10000L;
for (OrderDetail orderDetail : orderDetails) { for (OrderDetail orderDetail : orderDetails) {
// 筛选符合自动确认的订单 // 筛选符合自动确认的订单
if (day14ago > orderDetail.getUpdateTime().getTime()) { if (day14ago > orderDetail.getWorkFinishTime().getTime()) {
logger.info("子订单自动完成[id={}, code={}]", orderDetail.getId(), orderDetail.getCode()); logger.info("子订单自动完成[id={}, code={}]", orderDetail.getId(), orderDetail.getCode());
try { try {
// 子订单完单流程(分账与提现) // 子订单完单流程(分账与提现)

View File

@ -38,11 +38,16 @@ public class WxMsgServiceImpl implements IWxMsgService {
@Value("${wx.secret}") @Value("${wx.secret}")
private String secret; private String secret;
@Value("${wx.mallAppId}")
private String mallAppId;
@Value("${wx.mallSecret}")
private String mallSecret;
@Override @Override
public Boolean sendMsg(String openId, String remind, String orderId, String name, OrderStatus orderStatus, Long time) { public Boolean sendMsg(String openId, String remind, String orderId, String name, OrderStatus orderStatus, Long time) {
WxMsgConfig wxMsgConfig = getQRCodeMsgConfig(openId, remind, orderId, name, orderStatus, time); WxMsgConfig wxMsgConfig = getQRCodeMsgConfig(openId, remind, orderId, name, orderStatus, time);
// 通知urL // 通知urL
String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + getAccessToken(); String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + getAccessToken(true);
log.info("微信消息通知请求地址:{}", url); log.info("微信消息通知请求地址:{}", url);
log.info("微信消息通知请求参数:{}", wxMsgConfig); log.info("微信消息通知请求参数:{}", wxMsgConfig);
JSONObject responseData = postData(url, wxMsgConfig); JSONObject responseData = postData(url, wxMsgConfig);
@ -61,7 +66,11 @@ public class WxMsgServiceImpl implements IWxMsgService {
@Override @Override
public void sendWxMsg(String openId, WxMsgEnum wxMsgEnum, Map<String, Object> params) { public void sendWxMsg(String openId, WxMsgEnum wxMsgEnum, Map<String, Object> params) {
WxMsgConfig wxMsgConfig = buildMsgDto(openId, wxMsgEnum, params); WxMsgConfig wxMsgConfig = buildMsgDto(openId, wxMsgEnum, params);
String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + getAccessToken(); Boolean flag = true;
if(wxMsgEnum.getTempCode().equals(WxMsgEnum.CUSTOMER_ORDER.getTempCode())){
flag = false;
}
String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + getAccessToken(flag);
log.info("微信消息通知请求 url: {} , 参数: {}",url, wxMsgConfig); log.info("微信消息通知请求 url: {} , 参数: {}",url, wxMsgConfig);
JSONObject responseData = postData(url, wxMsgConfig); JSONObject responseData = postData(url, wxMsgConfig);
log.info("微信消息通知请求参数:{}", JSON.toJSONString(responseData)); log.info("微信消息通知请求参数:{}", JSON.toJSONString(responseData));
@ -79,10 +88,15 @@ public class WxMsgServiceImpl implements IWxMsgService {
* *
* @return * @return
*/ */
public String getAccessToken() { public String getAccessToken(Boolean flag) {
Map<String, String> params = new HashMap<>(); Map<String, String> params = new HashMap<>();
if(flag){
params.put("APPID", appId); params.put("APPID", appId);
params.put("APPSECRET", secret); params.put("APPSECRET", secret);
}else {
params.put("APPID", mallAppId);
params.put("APPSECRET", mallSecret);
}
ResponseEntity<String> responseEntity = restTemplate.getForEntity( ResponseEntity<String> responseEntity = restTemplate.getForEntity(
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}", String.class, params); "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}", String.class, params);
String body = responseEntity.getBody(); String body = responseEntity.getBody();