Browse Source

2022年11月14 8:25

wangzhuo 3 years ago
parent
commit
176765265c

+ 8 - 4
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IWechatClient.java

@@ -4,8 +4,11 @@ import org.springblade.common.constant.LauncherConstant;
 import org.springblade.purchase.sales.entity.Biding;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.Date;
+
 @FeignClient(
 	value = LauncherConstant.APPLICATION_CLIENT_NAME
 )
@@ -19,10 +22,11 @@ public interface IWechatClient {
 
 	/**
 	 * 推送消息
-	 * @param openId
-	 * @param biding
 	 */
 	@GetMapping(API_NEW_PUSH)
-	String newsPush(@RequestParam("openId") String openId,
-					@RequestParam("biding") Biding biding);
+	String newsPush(@RequestParam("unionId") String unionId,
+					@RequestParam("contractNo") String contractNo,
+					@RequestParam("keyword3") String keyword3,
+					@RequestParam("keyword4") String keyword4,
+					@RequestParam("keyword5") String  keyword5);
 }

+ 4 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Biding.java

@@ -2,9 +2,11 @@ package org.springblade.purchase.sales.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -129,6 +131,8 @@ public class Biding implements Serializable {
 	 * 装柜日期
 	 */
 	@ApiModelProperty(value = "装柜日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
 	private Date loadingTime;
 
 	/**

+ 14 - 12
blade-service/blade-client/src/main/java/org/springblade/client/wechat/feign/WechatClient.java

@@ -17,14 +17,12 @@ import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.purchase.sales.entity.Biding;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @NonDS
 @ApiIgnore()
@@ -35,15 +33,18 @@ public class WechatClient implements IWechatClient {
 	//公众号的appId以及secret
 	private static final String appId = "wxf077390a6ec17f23";
 	private static final String appSecret = "50e84930675a0c06057d45a6d64ec548";
+	// 小程序的appId以及appSecret
+	private static final String APP_ID = "wx0a0feca24b695636";
+
+
 	/**
 	 * 发送模板消息
 	 *
 	 * @param unionId  接收此消息的openId
-	 * @param biding
 	 * @return 结果
 	 */
 	@Override
-	public String newsPush(String unionId, Biding biding) {
+	public String newsPush(String unionId, String contractNo, String keyword3, String keyword4, String keyword5) {
 		//获得token
 		Map<String,String> tokenMap = this.getToken();
 		//获得用户列表
@@ -65,17 +66,17 @@ public class WechatClient implements IWechatClient {
 				List<WxMpTemplateData> data = Arrays.asList(
 					new WxMpTemplateData("first", "[提醒]您有新的竞价消息,请尽快报价,过期作废"),
 					new WxMpTemplateData("keyword1", "发布"),
-					new WxMpTemplateData("keyword2", biding.getContractNo()),
-					new WxMpTemplateData("keyword3", biding.getDepartureHarbor() + "至" + biding.getObjectiveHarbor()),
-					new WxMpTemplateData("keyword4", biding.getCargoInformation()),
-					new WxMpTemplateData("keyword5", biding.getLoadingTime().toString()),
-					new WxMpTemplateData("remark", biding.getRemark())
+					new WxMpTemplateData("keyword2", contractNo),
+					new WxMpTemplateData("keyword3", keyword3),
+					new WxMpTemplateData("keyword4", keyword4),
+					new WxMpTemplateData("keyword5", keyword5),
+					new WxMpTemplateData("remark", "感谢您的使用。")
 				);
 				//2,推送消息
 				WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
 					.toUser(openid)//要推送的用户openid
 					.templateId("Ad7zPbJWk4P44J2muNTDJCHwbxr5trgfPeHLq4oklRE")//模版id
-					.url("https://www.baidu.com/")//点击模版消息要访问的网址
+					.miniProgram(new WxMpTemplateMessage.MiniProgram(APP_ID, "pages/index"))
 					.data(data)
 					.build();
 				try {
@@ -99,6 +100,7 @@ public class WechatClient implements IWechatClient {
 		try {
 			String response = HttpUtil.get(requestUrl);
 			JSONObject jsonObject = JSONObject.parseObject(response);
+			log.info("token======>"+jsonObject);
 			if (ObjectUtil.isEmpty(jsonObject.get("errcode"))){
 				String accessToken = String.valueOf(jsonObject.get("access_token"));
 				if (ObjectUtil.isEmpty(accessToken)){

+ 7 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/BidingServiceImpl.java

@@ -38,6 +38,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
@@ -267,6 +268,10 @@ public class BidingServiceImpl extends ServiceImpl<BidingMapper, Biding> impleme
 			throw new SecurityException("订单已作废");
 		}
 
+		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+		String harbor = salesBiding.getDepartureHarbor() + "至" + salesBiding.getObjectiveHarbor();
+		String loadingTime = dateFormat.format(salesBiding.getLoadingTime());
+
 		//根据代理客户的客户联系人进行消息推送
 		//获得所有代理客户
 		List<BidingAgent> agentList = bidingAgentService.getBidingAgent(salesBiding);;
@@ -280,7 +285,8 @@ public class BidingServiceImpl extends ServiceImpl<BidingMapper, Biding> impleme
 				R<User> user = userClient.userInfoById(corpsAttn.getUserId());
 				if (ObjectUtil.isNotEmpty(user)){
 					if (ObjectUtil.isNotEmpty(user.getData().getUnionId())){
-						String msg = wechatClient.newsPush(user.getData().getUnionId(),biding);
+						String msg = wechatClient.newsPush(user.getData().getUnionId(),
+							salesBiding.getContractNo(), harbor, salesBiding.getCargoInformation(),loadingTime);
 					}
 				}
 			});