Commit 1c981dc1 authored by shiyu's avatar shiyu

短信

parent 08abc82f
......@@ -113,7 +113,7 @@ public class AliSmsSender implements SmsSender {
.setPhoneNumbers(phone)
.setTemplateCode(templateCode)
.setTemplateParam(JsonUtils.fromMap(map))
.setSignName("玩物得志");
.setSignName("换藏小程序");
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new com.aliyun.teautil.models.RuntimeOptions());
logger.info("拍卖通知发送结果 : {} ", JsonUtils.from(sendSmsResponse));
if ("OK".equals(sendSmsResponse.getBody().code)) {
......
......@@ -37,7 +37,33 @@
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.wwdz.mall</groupId>
<artifactId>notify-api</artifactId>
<version>1.9.5-RELEASE</version>
<exclusions>
<exclusion>
<artifactId>kunlun-common</artifactId>
<groupId>com.wwdz.kunlun</groupId>
</exclusion>
<exclusion>
<artifactId>kunlun-sdk</artifactId>
<groupId>com.wwdz.kunlun</groupId>
</exclusion>
<exclusion>
<artifactId>kunlunmanager-api</artifactId>
<groupId>com.wwdz.kunlun</groupId>
</exclusion>
<exclusion>
<artifactId>live-api</artifactId>
<groupId>com.wwdz.mall</groupId>
</exclusion>
<exclusion>
<artifactId>ons-client-ext</artifactId>
<groupId>com.aliyun.openservices</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
......
......@@ -3,12 +3,16 @@ package com.wwdz.ch.wx.api;
import com.wwdz.ch.core.util.OkHttpUtil;
import com.wwdz.ch.wx.entity.request.WxCheckMediaRequestDto;
import com.wwdz.ch.wx.manager.WxLoginManager;
import com.wwdz.mall.api.notify.server.ItemShortUrlServer;
import com.wwdz.mall.common.vo.response.CloudServerResponse;
import com.xxdxxs.utils.JsonUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.xml.ws.soap.Addressing;
import java.util.HashMap;
import java.util.Map;
......@@ -24,15 +28,21 @@ public class WxAppletApi {
@Value("${dts.wx.app-secret}")
private String APPLET_APP_SECRET;
@Value("${dts.wx.auction-msg-url}")
private String AUCTION_MSG_URL;
@Autowired
WxLoginManager wxLoginManager;
/* @Autowired
ItemShortUrlServer itemShortUrlServer;*/
@Resource
ItemShortUrlServer itemShortUrlServer;
// 微信小程序音视频内容安全识别地址
private static final String MEDIA_CHECK_URL = "https://api.weixin.qq.com/wxa/media_check_async?access_token=%s";
//获取urllink
private static final String URL_LINK = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=%s";
public String checkMedia(WxCheckMediaRequestDto dto) {
String accessToken = wxLoginManager.getAccessToken();
......@@ -53,21 +63,38 @@ public class WxAppletApi {
public String getUrlLink(WxCheckMediaRequestDto dto) {
public String getUrlLink(String query) {
String shortUrl = "";
try {
String accessToken = wxLoginManager.getAccessToken();
String url = String.format(MEDIA_CHECK_URL, accessToken);
String url = String.format(URL_LINK, accessToken);
StringBuffer stringBuffer = new StringBuffer(AUCTION_MSG_URL);
OkHttpUtil okHttpUtil = OkHttpUtil.builder().url(url);
Map<String, Object> map = new HashMap<>();
map.put("media_url", dto.getMediaUrl());
map.put("media_type", dto.getMediaType());
map.put("version", 2);
map.put("scene", 4);
map.put("openid", dto.getWxOpenId());
map.put("path", stringBuffer.toString());
map.put("query", query);
map.put("is_expire", true);
map.put("expire_type", 1);
map.put("expire_interval", 1);
logger.info("获取加密URLLink 参数:{}", JsonUtils.from(map));
okHttpUtil.addParams(map);
okHttpUtil.post(true);
String responseStr = okHttpUtil.async();
logger.info("[checkMedia] response :{}", responseStr);
return responseStr;
logger.info("获取加密URLLink response :{}", responseStr);
String msg = JsonUtils.getValueByPath(responseStr, "errMsg");
String urlLink = "";
if ("ok".equals(msg)) {
urlLink = JsonUtils.getValueByPath(responseStr, "urlLink");
}
CloudServerResponse<String> cloudServerResponse = itemShortUrlServer.getShortUrlForAppName(urlLink, "quanku-applet");
logger.info("获取加密URLLink ——> 转换短链接口返回: {}", cloudServerResponse);
if (cloudServerResponse.isSuccess()) {
shortUrl = cloudServerResponse.getResult();
}
} catch (Exception e) {
logger.error("获取小程序urlLink失败:{}", e);
}
return shortUrl;
}
......
......@@ -17,6 +17,7 @@ import com.wwdz.ch.db.domain.OfficialAccountSubscribeRecord;
import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.AuctionRecordRequestDto;
import com.wwdz.ch.wx.api.WxAppletApi;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordRowVo;
import com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordVo;
......@@ -82,6 +83,9 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
@Autowired
AliSmsSender aliSmsSender;
@Autowired
WxAppletApi wxAppletApi;
@Override
@Transactional
......@@ -129,13 +133,15 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
auctionOfferNoticeMsg.setOpenId(openId);
Result result = sendMsgService.sendAuctionOfferOutMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId=");
String msg = "您出价过的拍品" + supplierItem.getName() + "的价格被其他人超越了, 当前价是" + PriceUtil.convertPriceFenToYuan(price) +
"元,竞拍截止时间是" + DateUtils.toString(endTime) +", 请前往\"换藏小程序\"查看";
"元,竞拍截止时间是" + DateUtils.toString(endTime) +", 请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(auctionRecord.getUserId(), msg);
}
} else {
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId=");
String msg = "您出价过的拍品" + supplierItem.getName() + "的价格被其他人超越了, 当前价是" + PriceUtil.convertPriceFenToYuan(price) +
"元,竞拍截止时间是" + DateUtils.toString(endTime) +", 请前往\"换藏小程序\"查看";
"元,竞拍截止时间是" + DateUtils.toString(endTime) +", 请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(auctionRecord.getUserId(), msg);
}
}
......@@ -170,13 +176,15 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
auctionOfferNoticeMsg.setCurrentPrice(PriceUtil.convertPriceFenToYuan(price));
Result result = sendMsgService.offerNoticeToDistributorMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "有人成出价" + PriceUtil.convertPriceFenToYuan(price) +
"元,请前往\"换藏小程序\"查看";
"元,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(distributorShareRecord.getDistributorId(), msg);
}
} else {
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "有人成出价" + PriceUtil.convertPriceFenToYuan(price) +
"元,请前往\"换藏小程序\"查看";
"元,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(distributorShareRecord.getDistributorId(), msg);
}
return Result.success();
......
......@@ -17,6 +17,7 @@ import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.wx.api.WxAppletApi;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.wx.entity.DeliveryNoticeMsg;
import com.wwdz.ch.wx.entity.SignedNoticeMsg;
......@@ -96,6 +97,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Autowired
AliSmsSender aliSmsSender;
@Autowired
WxAppletApi wxAppletApi;
@Transactional
@Override
public Result createDistributionOrder(DistributionOrderRequestDto dto) {
......@@ -281,13 +285,15 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
auctionOfferNoticeMsg.setProfit(PriceUtil.convertDoubleToString(Math.floor(averageProfit)));
Result result = sendMsgService.auctionSuccessForDistributorsMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) +
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(averageProfit)) + "元。请前往\"换藏小程序\"查看";
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(averageProfit)) + "元。请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(record.getDistributorId(), msg);
}
} else {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) +
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(averageProfit)) + "元。请前往\"换藏小程序\"查看";
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(averageProfit)) + "元。请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(record.getDistributorId(), msg);
}
}
......@@ -307,13 +313,15 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
auctionOfferNoticeMsg.setPayEndTime(payEndTime);
Result result = sendMsgService.auctionSuccessMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" +
DateUtils.toString(payEndTime) + "前完成付款,请前往\"换藏小程序\"查看。";
DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(auctionRecord.getUserId(), msg);
}
} else {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" +
DateUtils.toString(payEndTime) + "前完成付款,请前往\"换藏小程序\"查看。";
DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(auctionRecord.getUserId(), msg);
}
//给中拍用户对应分销商发消息
......@@ -329,13 +337,15 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
auctionOfferNoticeMsg.setProfit(PriceUtil.convertDoubleToString(Math.floor(profit)));
Result result = sendMsgService.auctionSuccessForDistributorsMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) +
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(profit)) + "元。请前往\"换藏小程序\"查看";
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(profit)) + "元。请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(distributionOrder.getSellerId(), msg);
}
} else {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) +
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(profit)) + "元。请前往\"换藏小程序\"查看";
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(profit)) + "元。请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(distributionOrder.getSellerId(), msg);
}
......
......@@ -14,6 +14,7 @@ import com.wwdz.ch.db.domain.distribution.AuctionRecord;
import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.SupplierItem;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.wx.api.WxAppletApi;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.SendMsgService;
......@@ -81,6 +82,9 @@ public class AutoSendMsgJob {
@Autowired
RedisUtils redisUtils;
@Autowired
WxAppletApi wxAppletApi;
/**
* 隔5分钟运行一次
*/
......@@ -130,7 +134,8 @@ public class AutoSendMsgJob {
aliSmsSender.sendAuctionWithTemplate(userId, msg);
logger.info("================商品id:{}, 将在1小时内结束,提醒短信发送成功 ==============", supplierItem.getId());
}*/
String msg = "您出过价的拍品" + supplierItem.getName() + ",将在1小时内结束,请前往\"换藏小程序\"查看。";
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId=");
String msg = "您出过价的拍品" + supplierItem.getName() + ",将在1小时内结束,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(userId, msg);
logger.info("================商品id:{}, 将在1小时内结束,提醒短信发送成功 ==============", supplierItem.getId());
redisUtils.set(abortEndKey, itemId, 3600);
......@@ -194,14 +199,16 @@ public class AutoSendMsgJob {
auctionOfferNoticeMsg.setPayEndTime(payEndTime);
Result result = sendMsgService.prePayMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId=");
//发短信
String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" +
DateUtils.toString(payEndTime) + "前完成付款,请前往\"换藏小程序\"查看。";
DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(userId, msg);
}
} else {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" +
DateUtils.toString(payEndTime) + "前完成付款,请前往\"换藏小程序\"查看。";
DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(userId, msg);
logger.info("================订单号:{}, 催付款短信通知发送成功 ==============", distributionOrder.getDistributionOrderId());
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment