叫号记录增加字段

This commit is contained in:
SongZhang 2024-09-14 16:05:08 +08:00
parent e35da7f608
commit f516dae0da
2 changed files with 112 additions and 114 deletions

View File

@ -19,7 +19,6 @@ import cn.ysk.cashier.pojo.shop.TbShopUser;
import cn.ysk.cashier.repository.shop.TbShopInfoRepository; import cn.ysk.cashier.repository.shop.TbShopInfoRepository;
import cn.ysk.cashier.service.app.TbCallService; import cn.ysk.cashier.service.app.TbCallService;
import cn.ysk.cashier.utils.Utils; import cn.ysk.cashier.utils.Utils;
import cn.ysk.cashier.utils.WxMiniUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -42,7 +41,6 @@ public class TbCallServiceImpl implements TbCallService {
private final TbShopInfoRepository shopInfoRepository; private final TbShopInfoRepository shopInfoRepository;
private final StringRedisTemplate redisTemplate; private final StringRedisTemplate redisTemplate;
private final TbCallQueueMapper tbCallQueueMapper; private final TbCallQueueMapper tbCallQueueMapper;
private final WxMiniUtils wxMiniUtils;
@Override @Override
public Object add(CallTableDTO addCallTableDTO) { public Object add(CallTableDTO addCallTableDTO) {
@ -222,8 +220,8 @@ public class TbCallServiceImpl implements TbCallService {
throw new BadRequestException("此用户未订阅微信小程序消息"); throw new BadRequestException("此用户未订阅微信小程序消息");
} }
wxMiniUtils.sendNearCallMsg(shopInfo.getShopName(), getStrByState(Integer.valueOf(callQueue.getState())), // wxMiniUtils.sendNearCallMsg(shopInfo.getShopName(), getStrByState(Integer.valueOf(callQueue.getState())),
callQueue.getCallNum(), current.isEmpty() ? "" : current.get(0).getCallNum(), "排号信息", callQueue.getOpenId()); // callQueue.getCallNum(), current.isEmpty() ? "" : current.get(0).getCallNum(), "排号信息", callQueue.getOpenId());
return callQueueService.updateById(callQueue); return callQueueService.updateById(callQueue);
} }

View File

@ -1,113 +1,113 @@
package cn.ysk.cashier.utils; //package cn.ysk.cashier.utils;
//
import cn.hutool.core.util.ObjectUtil; //import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpRequest; //import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil; //import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; //import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; //import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import java.util.HashMap; //import java.util.HashMap;
import java.util.LinkedHashMap; //import java.util.LinkedHashMap;
import java.util.Map; //import java.util.Map;
//
@Component //@Component
@Slf4j //@Slf4j
public class WxMiniUtils { //public class WxMiniUtils {
//
// @Value("${wx.mini.user.appId}") // @Value("${wx.mini.user.appId}")
private String appId = ""; // private String appId;
//
// @Value("${wx.mini.user.secrete}") // @Value("${wx.mini.user.secrete}")
private String secrete =""; // private String secrete;
//
// @Value("${wx.mini.user.msgId.currentCall}") // @Value("${wx.mini.user.msgId.currentCall}")
private String currentCallTempId =""; // private String currentCallTempId;
//
//
static LinkedHashMap<String,String> linkedHashMap=new LinkedHashMap<>(); // static LinkedHashMap<String,String> linkedHashMap=new LinkedHashMap<>();
//
static { // static {
//
linkedHashMap.put("40001","获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口"); // linkedHashMap.put("40001","获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口");
linkedHashMap.put("40003","不合法的 OpenID ,请开发者确认 OpenID (该用户)是否已关注公众号,或是否是其他公众号的 OpenID"); // linkedHashMap.put("40003","不合法的 OpenID ,请开发者确认 OpenID (该用户)是否已关注公众号,或是否是其他公众号的 OpenID");
linkedHashMap.put("40014","不合法的 access_token ,请开发者认真比对 access_token 的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口"); // linkedHashMap.put("40014","不合法的 access_token ,请开发者认真比对 access_token 的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口");
linkedHashMap.put("40037","不合法的 template_id"); // linkedHashMap.put("40037","不合法的 template_id");
linkedHashMap.put("43101","用户未订阅消息"); // linkedHashMap.put("43101","用户未订阅消息");
linkedHashMap.put("43107","订阅消息能力封禁"); // linkedHashMap.put("43107","订阅消息能力封禁");
linkedHashMap.put("43108","并发下发消息给同一个粉丝"); // linkedHashMap.put("43108","并发下发消息给同一个粉丝");
linkedHashMap.put("45168","命中敏感词"); // linkedHashMap.put("45168","命中敏感词");
linkedHashMap.put("47003","参数错误"); // linkedHashMap.put("47003","参数错误");
//
} // }
//
public JSONObject getAccessToken(){ // public JSONObject getAccessToken(){
String requestUrl = "https://api.weixin.qq.com/cgi-bin/token"; // String requestUrl = "https://api.weixin.qq.com/cgi-bin/token";
Map<String, Object> requestUrlParam = new HashMap<>(); // Map<String, Object> requestUrlParam = new HashMap<>();
//小程序appId // //小程序appId
requestUrlParam.put("appid", appId); // requestUrlParam.put("appid", appId);
//小程序secret // //小程序secret
requestUrlParam.put("secret", secrete); // requestUrlParam.put("secret", secrete);
//默认参数 // //默认参数
requestUrlParam.put("grant_type", "client_credential"); // requestUrlParam.put("grant_type", "client_credential");
return JSON.parseObject(HttpUtil.get(requestUrl,requestUrlParam)); // return JSON.parseObject(HttpUtil.get(requestUrl,requestUrlParam));
} // }
//
public static void main(String[] args) { // public static void main(String[] args) {
String id ="kSxJL9TR4s_UmOmNLE"; // String id ="kSxJL9TR4s_UmOmNLE";
// sendStockWarnMsg("123", "1231", "1231", "23321", id); //// sendStockWarnMsg("123", "1231", "1231", "23321", id);
} // }
//
//
public JSONObject sendTempMsg(String tempId, String toUserOpenId, Map<String, Object> data) { // public JSONObject sendTempMsg(String tempId, String toUserOpenId, Map<String, Object> data) {
log.info("开始发送微信模板消息, 接收用户openId: {}, 消息数据: {}", toUserOpenId, data); // log.info("开始发送微信模板消息, 接收用户openId: {}, 消息数据: {}", toUserOpenId, data);
JSONObject object= getAccessToken(); // JSONObject object= getAccessToken();
String accessToken=object.get("access_token")+""; // String accessToken=object.get("access_token")+"";
//
JSONObject object1=new JSONObject(); // JSONObject object1=new JSONObject();
//
object1.put("template_id", tempId); // object1.put("template_id", tempId);
object1.put("touser", toUserOpenId); // object1.put("touser", toUserOpenId);
object1.put("data",data); // object1.put("data",data);
//
object1.put("miniprogram_state","trial"); // object1.put("miniprogram_state","trial");
object1.put("lang","zh_CN"); // object1.put("lang","zh_CN");
//
String response= HttpRequest.post("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=".concat(accessToken)).body(object1.toString()).execute().body(); // String response= HttpRequest.post("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=".concat(accessToken)).body(object1.toString()).execute().body();
log.info("微信模板消息发送成功,相应内容:{}",response); // log.info("微信模板消息发送成功,相应内容:{}",response);
JSONObject resObj=JSONObject.parseObject(response); // JSONObject resObj=JSONObject.parseObject(response);
if(ObjectUtil.isNotEmpty(resObj)&&ObjectUtil.isNotNull(resObj)&&"0".equals(resObj.get("errcode")+"")){ // if(ObjectUtil.isNotEmpty(resObj)&&ObjectUtil.isNotNull(resObj)&&"0".equals(resObj.get("errcode")+"")){
return resObj; // return resObj;
} // }
//
throw new RuntimeException(linkedHashMap.getOrDefault(resObj.get("errcode") + "", "未知错误")); // throw new RuntimeException(linkedHashMap.getOrDefault(resObj.get("errcode") + "", "未知错误"));
} // }
//
public void sendNearCallMsg(String shopName, String state, String callNum, String currentNum, String note, String openId) { // public void sendNearCallMsg(String shopName, String state, String callNum, String currentNum, String note, String openId) {
Map<String, Object> data = new HashMap<String, Object>() {{ // Map<String, Object> data = new HashMap<String, Object>() {{
put("thing1", new HashMap<String, Object>() {{ // put("thing1", new HashMap<String, Object>() {{
put("value", shopName); // put("value", shopName);
}}); // }});
put("phrase2", new HashMap<String, Object>() {{ // put("phrase2", new HashMap<String, Object>() {{
put("value", state); // put("value", state);
}}); // }});
put("character_string3", new HashMap<String, Object>() {{ // put("character_string3", new HashMap<String, Object>() {{
put("value", callNum); // put("value", callNum);
}}); // }});
put("character_string4", new HashMap<String, Object>() {{ // put("character_string4", new HashMap<String, Object>() {{
put("value", currentNum); // put("value", currentNum);
}}); // }});
put("thing5", new HashMap<String, Object>() {{ // put("thing5", new HashMap<String, Object>() {{
put("value", note); // put("value", note);
}}); // }});
}}; // }};
log.info("开始发送排号到号消息, 接收用户openId: {}, 消息数据: {}", openId, data); // log.info("开始发送排号到号消息, 接收用户openId: {}, 消息数据: {}", openId, data);
try { // try {
sendTempMsg(currentCallTempId, openId, data); // sendTempMsg(currentCallTempId, openId, data);
} catch (Exception e) { // } catch (Exception e) {
log.error("发送失败, openId:{}, msg: {}", openId, e.getMessage()); // log.error("发送失败, openId:{}, msg: {}", openId, e.getMessage());
} // }
} // }
} //}