From 4e3e18cdb0d75c098b68353ef8c86cdd7c0f79b2 Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期四, 21 八月 2025 15:27:34 +0800 Subject: [PATCH] 111 --- server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java | 197 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 192 insertions(+), 5 deletions(-) diff --git a/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java b/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java index 0d47a1b..440b45d 100644 --- a/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java +++ b/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java @@ -5,15 +5,21 @@ import com.doumee.core.constants.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.IdentityInfo; +import com.doumee.dao.business.model.Orders; +import com.doumee.dao.business.model.WithdrawalOrders; +import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -29,9 +35,16 @@ private static String goodsOrderUrl = "pages/settlementDetails/settlementDetails?goodsOrderId="; private static String identityInfoUrl = "pages/mine/mine"; + @Autowired private SystemDictDataBiz systemDictDataBiz; + /** + * 淇℃伅璁よ瘉 + * @param openid + * @param identityInfo + * @throws WxErrorException + */ public void identityInfoMessage(String openid, IdentityInfo identityInfo) throws WxErrorException { RestTemplate restTemplate = new RestTemplate(); String accessToken = WxMiniConfig.wxMaService.getAccessToken(); @@ -43,12 +56,12 @@ //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛� wxMsgVO.setTouser(openid); //璁㈤槄娑堟伅妯℃澘id - wxMsgVO.setTemplate_id("4H9ztG4E9BxJLwMuYSZ6oiM7yb4KX7u7bYhkhYJP0-Y"); + wxMsgVO.setTemplate_id("VJho7-lf-4_WZFfOzenDndgwNDIA0EvCiE6vqBnExpQ"); Map<String, TemplateData> m = new HashMap<>(4); - m.put("thing11", new TemplateData(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO)?"鐢ㄥ伐璁よ瘉":Constants.equalsInteger(identityInfo.getType(),Constants.ONE)?"杩愯揣璁よ瘉":"渚涢璁よ瘉")); - m.put("phrase4", new TemplateData(Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"璁よ瘉閫氳繃":"璁よ瘉鏈�氳繃")); - m.put("date3", new TemplateData(DateUtil.getFomartDate(identityInfo.getAuditTime(),"yyyy-MM-dd HH:mm:ss"))); - m.put("thing5", new TemplateData(identityInfo.getAuditRemark())); + m.put("thing2", new TemplateData(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO)?"鐢ㄥ伐璁よ瘉":Constants.equalsInteger(identityInfo.getType(),Constants.ONE)?"杩愯揣璁よ瘉":"渚涢璁よ瘉")); + m.put("phrase6", new TemplateData(Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"璁よ瘉閫氳繃":"璁よ瘉鏈�氳繃")); + m.put("time12", new TemplateData(DateUtil.getFomartDate(identityInfo.getAuditTime(),"yyyy-MM-dd HH:mm"))); + m.put("thing14", new TemplateData(identityInfo.getAuditRemark())); wxMsgVO.setPage(identityInfoUrl); wxMsgVO.setData(m); ResponseEntity<String> responseEntity = @@ -57,4 +70,178 @@ } + /** + * + * @param openidList + * @param orders + * @param cancelType 鍙栨秷绫诲瀷锛�0=骞冲彴鍙栨秷锛�1=鍙戝崟鏂瑰彇娑堬紱1=鎺ュ崟鏂瑰彇娑� + * @throws WxErrorException + */ + public void cancelMessage(List<String> openidList, Orders orders,Integer cancelType ) throws WxErrorException { + RestTemplate restTemplate = new RestTemplate(); + String accessToken = WxMiniConfig.wxMaService.getAccessToken(); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鍙栨秷涓氬姟 -> accessToken锛歿}",accessToken); + //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級 + String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; + //鎷兼帴鎺ㄩ�佺殑妯$増 + WxMsgVO wxMsgVO = new WxMsgVO(); + //璁㈤槄娑堟伅妯℃澘id + wxMsgVO.setTemplate_id("AA97cHjvlPiNO4viMkVe4JifCf9TD5b5Eb7s6El3VS8"); + Map<String, TemplateData> m = new HashMap<>(5); + m.put("character_string3", new TemplateData(orders.getCode())); + m.put("thing2", new TemplateData(Constants.orderType.getName(orders.getType()))); + m.put("thing1", new TemplateData(orders.getLocation() + (StringUtils.isNotBlank(orders.getLocationRemark())?orders.getLocationRemark():""))); + m.put("date8", new TemplateData(DateUtil.getFomartDate(orders.getCancelTime(),"yyyy-MM-dd HH:mm:ss"))); + m.put("thing6", new TemplateData(Constants.equalsInteger(cancelType,Constants.ZERO)?"骞冲彴鍙栨秷":Constants.equalsInteger(cancelType,Constants.ONE)?"鍙戝崟鏂瑰彇娑�":"鎺ュ崟鏂瑰彇娑�")); + //TODO 璺宠浆鍦板潃 + wxMsgVO.setPage(""); + wxMsgVO.setData(m); + if(CollectionUtils.isNotEmpty(openidList)){ + for (String openid:openidList) { + //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛� + wxMsgVO.setTouser(openid); + ResponseEntity<String> responseEntity = + restTemplate.postForEntity(url, wxMsgVO, String.class); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(responseEntity)); + } + }else{ + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", "鏃犱汉鍛樹俊鎭�"); + } + } + + + public void acceptMessage(String openid, Orders orders,String memberName,String memberPhone) throws WxErrorException { + RestTemplate restTemplate = new RestTemplate(); + String accessToken = WxMiniConfig.wxMaService.getAccessToken(); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鎺ュ崟涓氬姟 -> accessToken锛歿}",accessToken); + //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級 + String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; + //鎷兼帴鎺ㄩ�佺殑妯$増 + WxMsgVO wxMsgVO = new WxMsgVO(); + wxMsgVO.setTouser(openid); + //璁㈤槄娑堟伅妯℃澘id + wxMsgVO.setTemplate_id("oVjOBLcHxIlGzOMJsdInmgI5CHGXh-UTvMzQqfFOnIg"); + Map<String, TemplateData> m = new HashMap<>(4); + m.put("character_string3", new TemplateData(orders.getCode())); + m.put("thing1", new TemplateData(Constants.orderType.getName(orders.getType()))); + m.put("thing15", new TemplateData(memberName)); + m.put("phone_number8", new TemplateData(memberPhone)); + //TODO 璺宠浆鍦板潃 + wxMsgVO.setPage(""); + wxMsgVO.setData(m); + //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛� + ResponseEntity<String> responseEntity = + restTemplate.postForEntity(url, wxMsgVO, String.class); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(responseEntity)); + } + + + public void orderUpdMessage(String openid, Orders orders) throws WxErrorException { + RestTemplate restTemplate = new RestTemplate(); + String accessToken = WxMiniConfig.wxMaService.getAccessToken(); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鍙樻洿閫氱煡 -> accessToken锛歿}",accessToken); + //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級 + String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; + //鎷兼帴鎺ㄩ�佺殑妯$増 + WxMsgVO wxMsgVO = new WxMsgVO(); + wxMsgVO.setTouser(openid); + //璁㈤槄娑堟伅妯℃澘id + wxMsgVO.setTemplate_id("3YSC7gouRlSjHXz4CrWOGFzPmGwEBtFj4snwdfMvKHk"); + Map<String, TemplateData> m = new HashMap<>(3); + m.put("character_string1", new TemplateData(orders.getCode())); + m.put("thing3", new TemplateData("鍙樻洿璁㈠崟鏃ユ湡")); + //鍙樻洿鍚庢棩鏈燂細07-23鑷�07-25 + m.put("thing5", new TemplateData("鍙樻洿鍚庢棩鏈�:" +DateUtil.getFomartDate(orders.getStartDate(),"MM-dd") + "鑷�" +DateUtil.getFomartDate(orders.getEndDate(),"MM-dd"))); + //TODO 璺宠浆鍦板潃 + wxMsgVO.setPage(""); + wxMsgVO.setData(m); + //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛� + ResponseEntity<String> responseEntity = + restTemplate.postForEntity(url, wxMsgVO, String.class); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙樻洿閫氱煡锛歿}", JSONObject.toJSONString(responseEntity)); + } + + + + + public void withdrawalMessage(String openid, WithdrawalOrders withdrawalOrders) throws WxErrorException { + RestTemplate restTemplate = new RestTemplate(); + String accessToken = WxMiniConfig.wxMaService.getAccessToken(); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鎻愮幇鎴愬姛閫氱煡 -> accessToken锛歿}",accessToken); + //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級 + String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; + //鎷兼帴鎺ㄩ�佺殑妯$増 + WxMsgVO wxMsgVO = new WxMsgVO(); + wxMsgVO.setTouser(openid); + //璁㈤槄娑堟伅妯℃澘id + wxMsgVO.setTemplate_id("fNJy4545hcrH83bP3a1vszs7XEKWjXMsrfr2XCNsql0"); + Map<String, TemplateData> m = new HashMap<>(4); + m.put("phrase2", new TemplateData("宸叉墦娆�")); + m.put("amount1", new TemplateData((new BigDecimal(withdrawalOrders.getAmount().toString()).divide(new BigDecimal("100"))).toString())); + m.put("time3", new TemplateData(DateUtil.getFomartDate(withdrawalOrders.getUpdateTime(),"yyyy.MM.dd HH.mm.ss"))); + m.put("thing4", new TemplateData("鎵撴鎴愬姛锛岃娉ㄦ剰鏌ユ敹")); + //TODO 璺宠浆鍦板潃 + wxMsgVO.setPage(""); + wxMsgVO.setData(m); + //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛� + ResponseEntity<String> responseEntity = + restTemplate.postForEntity(url, wxMsgVO, String.class); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎻愮幇鎴愬姛閫氱煡锛歿}", JSONObject.toJSONString(responseEntity)); + } + + + public void revenueMessage(String openid, Orders orders) throws WxErrorException { + RestTemplate restTemplate = new RestTemplate(); + String accessToken = WxMiniConfig.wxMaService.getAccessToken(); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鏀剁泭閫氱煡 -> accessToken锛歿}",accessToken); + //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級 + String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; + //鎷兼帴鎺ㄩ�佺殑妯$増 + WxMsgVO wxMsgVO = new WxMsgVO(); + wxMsgVO.setTouser(openid); + //璁㈤槄娑堟伅妯℃澘id + wxMsgVO.setTemplate_id("tDpYImlrdv-0d3euTrHbYZ1cEZvjVHTNlqHvV0tpLHg"); + Map<String, TemplateData> m = new HashMap<>(5); + m.put("character_string8", new TemplateData(orders.getCode())); + m.put("phrase3", new TemplateData("宸叉敮浠�")); + m.put("phrase4", new TemplateData("寰俊鏀粯")); + m.put("amount6", new TemplateData((new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100")))+"鍏�")); + m.put("date7", new TemplateData(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd HH:mm:ss"))); + //TODO 璺宠浆鍦板潃 + wxMsgVO.setPage(""); + wxMsgVO.setData(m); + //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛� + ResponseEntity<String> responseEntity = + restTemplate.postForEntity(url, wxMsgVO, String.class); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鏀剁泭閫氱煡锛歿}", JSONObject.toJSONString(responseEntity)); + } + + + public void autoDispatchMessage(String openid, Orders orders,BigDecimal distance) throws WxErrorException { + RestTemplate restTemplate = new RestTemplate(); + String accessToken = WxMiniConfig.wxMaService.getAccessToken(); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鏈嶅姟娲惧崟 -> accessToken锛歿}",accessToken); + //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級 + String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken; + //鎷兼帴鎺ㄩ�佺殑妯$増 + WxMsgVO wxMsgVO = new WxMsgVO(); + wxMsgVO.setTouser(openid); + //璁㈤槄娑堟伅妯℃澘id + wxMsgVO.setTemplate_id("1h6JYpQf-mDKV4tYQ6gGDONfx1awqtm3-y9W8vUraT4"); + Map<String, TemplateData> m = new HashMap<>(5); + m.put("thing2", new TemplateData(Constants.orderType.getName(orders.getType()))); + m.put("thing3", new TemplateData(orders.getOrderContent())); + m.put("phrase4", new TemplateData("姝ゅ湴璺濈鎮�"+distance+"鍏噷")); + m.put("amount28", new TemplateData(orders.getEstimatedAccount().toString())); + m.put("thing12", new TemplateData("宸ュ崟灏嗕簬"+DateUtil.getFomartDate(orders.getStartDate(),"MM-dd")+"寮�濮�")); + //TODO 璺宠浆鍦板潃 + wxMsgVO.setPage(""); + wxMsgVO.setData(m); + //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛� + ResponseEntity<String> responseEntity = + restTemplate.postForEntity(url, wxMsgVO, String.class); + log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鏈嶅姟娲惧崟锛歿}", JSONObject.toJSONString(responseEntity)); + } + + } -- Gitblit v1.9.3