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

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);
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();
}

View File

@ -692,6 +692,19 @@ public class OrderDetailController extends BaseController {
if (UserConstants.ORDER_CODE_NOT_UNIQUE.equals(orderDetailService.checkOrderDetailCodeUnique(orderDetail))) {
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));
}
@ -808,6 +821,16 @@ public class OrderDetailController extends BaseController {
.setBehavior(OrderBehaviorEnum.FINISH_ORDER);
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("发起成功");
}
@ -821,6 +844,7 @@ public class OrderDetailController extends BaseController {
// 查询订单信息
OrderDetail od = this.orderDetailService.selectById(orderDetail.getId());
OrderMaster om = orderMasterService.selectById(od.getOrderMasterId());
Worker masterWorker = workerService.selectById(om.getWorkerId());
Worker worker = workerService.selectById(od.getWorkerId());
// 删除子单
orderDetailService.deleteOrderDetailByIds(orderDetail.getId().toString());
@ -865,9 +889,9 @@ public class OrderDetailController extends BaseController {
// 通知师傅新订单
try {
Map<String,Object> params = new HashMap<>();
params.put("thing1", "订单被拒通知!");
params.put("thing5", "订单"+ orderDetail.getCode() +"被拒绝,请及时处理!");
wxMsgService.sendWxMsg(worker.getOpenId(), WxMsgEnum.ORDER_PLAN, params);
params.put("thing1", "订单被拒通知");
params.put("thing5", "订单被拒绝,请及时处理!");
wxMsgService.sendWxMsg(masterWorker.getOpenId(), WxMsgEnum.ORDER_PLAN, params);
}catch (Exception e){
e.printStackTrace();
}

View File

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

View File

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

View File

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

View File

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