Commit 7110aea8 authored by shiyu's avatar shiyu

Merge branch 'quanku_v2.1' into quanku_v2.2

# Conflicts:
#	ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/SendMsgService.java
parents 49f2590e 7f633c01
...@@ -7,7 +7,6 @@ import com.wwdz.ch.db.domain.User; ...@@ -7,7 +7,6 @@ import com.wwdz.ch.db.domain.User;
import com.xxdxxs.utils.JsonUtils; import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.utils.StringUtils; import com.xxdxxs.utils.StringUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.Cache;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -92,7 +91,7 @@ public class AliSmsSender implements SmsSender { ...@@ -92,7 +91,7 @@ public class AliSmsSender implements SmsSender {
} }
public Result sendAuctionWithTemplate(long userId, String msg) { public Result sendSms(long userId, String msg) {
try { try {
User user = cacheUtil.getAppletUsers(userId); User user = cacheUtil.getAppletUsers(userId);
if (user == null) { if (user == null) {
...@@ -107,7 +106,7 @@ public class AliSmsSender implements SmsSender { ...@@ -107,7 +106,7 @@ public class AliSmsSender implements SmsSender {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("msg", msg); map.put("msg", msg);
logger.info("拍卖通知发送内容 : {} ", msg); logger.info("短信通知发送内容 : {} ", msg);
com.aliyun.dysmsapi20170525.Client client = createClient(); com.aliyun.dysmsapi20170525.Client client = createClient();
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest() com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
.setPhoneNumbers(phone) .setPhoneNumbers(phone)
...@@ -115,7 +114,7 @@ public class AliSmsSender implements SmsSender { ...@@ -115,7 +114,7 @@ public class AliSmsSender implements SmsSender {
.setTemplateParam(JsonUtils.fromMap(map)) .setTemplateParam(JsonUtils.fromMap(map))
.setSignName("换藏小程序"); .setSignName("换藏小程序");
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new com.aliyun.teautil.models.RuntimeOptions()); SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new com.aliyun.teautil.models.RuntimeOptions());
logger.info("拍卖通知发送结果 : {} ", JsonUtils.from(sendSmsResponse)); logger.info("短信通知发送结果 : {} ", JsonUtils.from(sendSmsResponse));
if ("OK".equals(sendSmsResponse.getBody().code)) { if ("OK".equals(sendSmsResponse.getBody().code)) {
return Result.success(); return Result.success();
} }
......
...@@ -61,12 +61,12 @@ public class WxAppletApi { ...@@ -61,12 +61,12 @@ public class WxAppletApi {
public String getUrlLink(String query) { public String getUrlLink(String redirectUrl, String query) {
String urlLink = ""; String urlLink = "";
try { try {
String accessToken = wxLoginManager.getAccessToken(); String accessToken = wxLoginManager.getAccessToken();
String url = String.format(URL_LINK, accessToken); String url = String.format(URL_LINK, accessToken);
StringBuffer stringBuffer = new StringBuffer(AUCTION_MSG_URL); StringBuffer stringBuffer = new StringBuffer(redirectUrl);
OkHttpUtil okHttpUtil = OkHttpUtil.builder().url(url); OkHttpUtil okHttpUtil = OkHttpUtil.builder().url(url);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("path", stringBuffer.toString()); map.put("path", stringBuffer.toString());
...@@ -91,4 +91,6 @@ public class WxAppletApi { ...@@ -91,4 +91,6 @@ public class WxAppletApi {
} }
package com.wwdz.ch.wx.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class FollowFansMsg implements Entity {
private String openId;
private String templetId;
/**
* 被关注人名称
*/
private String followerName;
/**
* 粉丝名称
*/
private String fansName;
/**
* 时间
*/
private Date createTime;
/**
* 消息内容
*/
private String content;
}
package com.wwdz.ch.wx.impl; package com.wwdz.ch.wx.impl;
import com.alibaba.dubbo.config.annotation.Reference;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.consts.FollowFansEnum; import com.wwdz.ch.core.consts.FollowFansEnum;
import com.wwdz.ch.core.consts.MessageEnum;
import com.wwdz.ch.core.consts.ResultCode; import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.notify.AliSmsSender;
import com.wwdz.ch.core.type.PageSearchResult; import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.CacheUtil; import com.wwdz.ch.core.util.CacheUtil;
...@@ -16,31 +15,22 @@ import com.wwdz.ch.db.dao.distribution.DistributionOrderDao; ...@@ -16,31 +15,22 @@ import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import com.wwdz.ch.db.dao.distribution.SupplierItemDao; import com.wwdz.ch.db.dao.distribution.SupplierItemDao;
import com.wwdz.ch.db.domain.FollowFansRecord; import com.wwdz.ch.db.domain.FollowFansRecord;
import com.wwdz.ch.db.domain.distribution.DistributionOrder; import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.DistributorShareRecord;
import com.wwdz.ch.db.domain.distribution.SupplierItem; import com.wwdz.ch.db.domain.distribution.SupplierItem;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto; import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto; import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.wx.entity.MessageContentText; import com.wwdz.ch.wx.api.WxAppletApi;
import com.wwdz.ch.wx.entity.request.MessageRequestDto; import com.wwdz.ch.wx.entity.FollowFansMsg;
import com.wwdz.ch.wx.entity.vo.FollowFansRecordVo; import com.wwdz.ch.wx.entity.vo.FollowFansRecordVo;
import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderVo; import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderVo;
import com.wwdz.ch.wx.entity.vo.distribution.DistributorShareRecordVo;
import com.wwdz.ch.wx.service.FollowFansRecordService; import com.wwdz.ch.wx.service.FollowFansRecordService;
import com.wwdz.ch.wx.service.MessageService; import com.wwdz.ch.wx.service.MessageService;
import com.wwdz.mall.common.vo.response.CloudServerResponse; import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.wwdz.mall.contentcenter.api.CommunityAttributeReadService;
import com.wwdz.mall.contentcenter.domain.result.attribute.CommunityUserAttributeDO;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper; import com.xxdxxs.utils.EntityMapper;
import com.xxdxxs.utils.JsonUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -50,6 +40,8 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService { ...@@ -50,6 +40,8 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
private static final Logger logger = LoggerFactory.getLogger(FollowFansRecordServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(FollowFansRecordServiceImpl.class);
private static final String TEMPLET_URL = "/pages/followAndFansList/index";
@Autowired @Autowired
FollowFansRecordDao followFansRecordDao; FollowFansRecordDao followFansRecordDao;
...@@ -68,6 +60,15 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService { ...@@ -68,6 +60,15 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
@Autowired @Autowired
SupplierItemDao supplierItemDao; SupplierItemDao supplierItemDao;
@Autowired
SendMsgService sendMsgService;
@Autowired
AliSmsSender aliSmsSender;
@Autowired
WxAppletApi wxAppletApi;
@Override @Override
public Result follow(FollowFansRecordRequestDto dto) { public Result follow(FollowFansRecordRequestDto dto) {
try { try {
...@@ -89,6 +90,25 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService { ...@@ -89,6 +90,25 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("recordId", id); map.put("recordId", id);
String fansName = cacheUtil.appletUserInfoCache.get(dto.getFansId()).get().getNickname();
//发送消息通知对应的分销商有用户出价
String openId = sendMsgService.getOpenIdByUserId(dto.getFollowerId());
if (com.xxdxxs.utils.StringUtils.hasLength(openId)) {
FollowFansMsg followFansMsg = new FollowFansMsg();
followFansMsg.setFansName(fansName + "关注了你");
followFansMsg.setOpenId(openId);
followFansMsg.setContent("由" + cacheUtil.appletUserInfoCache.get(dto.getIntroducerId()).get().getNickname() + "介绍");
Result result = sendMsgService.followNoticeMsg(followFansMsg);
if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink(TEMPLET_URL,"tabType=2");
String msg = "您新增了一个粉丝" + fansName + ", 请前往"+ url + "查看";
aliSmsSender.sendSms(dto.getFollowerId(), msg);
}
} else {
String url = wxAppletApi.getUrlLink(TEMPLET_URL,"tabType=2");
String msg = "您新增了一个粉丝" + fansName + ", 请前往"+ url + "查看";
aliSmsSender.sendSms(dto.getFollowerId(), msg);
}
/* String messageKey = StringUtil.formatMessageKey(dto.getFansId(), MessageEnum.TypeEnum.FOLLOW.getCode(), dto.getFollowerId()); /* String messageKey = StringUtil.formatMessageKey(dto.getFansId(), MessageEnum.TypeEnum.FOLLOW.getCode(), dto.getFollowerId());
if (redisUtils.hasKey(messageKey)) { if (redisUtils.hasKey(messageKey)) {
return Result.success(map); return Result.success(map);
......
...@@ -13,8 +13,6 @@ import com.wwdz.ch.core.util.PriceUtil; ...@@ -13,8 +13,6 @@ import com.wwdz.ch.core.util.PriceUtil;
import com.wwdz.ch.db.dao.OfficialAccountSubscribeRecordDao; import com.wwdz.ch.db.dao.OfficialAccountSubscribeRecordDao;
import com.wwdz.ch.db.dao.UserDao; import com.wwdz.ch.db.dao.UserDao;
import com.wwdz.ch.db.dao.distribution.*; import com.wwdz.ch.db.dao.distribution.*;
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.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.AuctionRecordRequestDto; import com.wwdz.ch.db.dto.request.distribution.AuctionRecordRequestDto;
import com.wwdz.ch.wx.api.WxAppletApi; import com.wwdz.ch.wx.api.WxAppletApi;
...@@ -30,6 +28,7 @@ import org.redisson.api.RedissonClient; ...@@ -30,6 +28,7 @@ import org.redisson.api.RedissonClient;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
...@@ -47,6 +46,9 @@ public class AuctionRecordServiceImpl implements AuctionRecordService { ...@@ -47,6 +46,9 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
private static final Logger logger = LoggerFactory.getLogger(AuctionRecordServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(AuctionRecordServiceImpl.class);
@Value("${dts.wx.auction-msg-url}")
private String AUCTION_MSG_URL;
@Autowired @Autowired
AuctionConfigDao auctionConfigDao; AuctionConfigDao auctionConfigDao;
...@@ -133,16 +135,16 @@ public class AuctionRecordServiceImpl implements AuctionRecordService { ...@@ -133,16 +135,16 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
auctionOfferNoticeMsg.setOpenId(openId); auctionOfferNoticeMsg.setOpenId(openId);
Result result = sendMsgService.sendAuctionOfferOutMsg(auctionOfferNoticeMsg); Result result = sendMsgService.sendAuctionOfferOutMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) { if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL, "itemId=" + itemId + "&shareRecordId=");
String msg = "您出价过的拍品" + supplierItem.getName() + "的价格被其他人超越了, 当前价是" + PriceUtil.convertPriceFenToYuan(price) + String msg = "您出价过的拍品" + supplierItem.getName() + "的价格被其他人超越了, 当前价是" + PriceUtil.convertPriceFenToYuan(price) +
"元,竞拍截止时间是" + DateUtils.toString(endTime) +", 请前往"+ url + "查看"; "元,竞拍截止时间是" + DateUtils.toString(endTime) +", 请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(auctionRecord.getUserId(), msg); aliSmsSender.sendSms(auctionRecord.getUserId(), msg);
} }
} else { } else {
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + itemId + "&shareRecordId=");
String msg = "您出价过的拍品" + supplierItem.getName() + "的价格被其他人超越了, 当前价是" + PriceUtil.convertPriceFenToYuan(price) + String msg = "您出价过的拍品" + supplierItem.getName() + "的价格被其他人超越了, 当前价是" + PriceUtil.convertPriceFenToYuan(price) +
"元,竞拍截止时间是" + DateUtils.toString(endTime) +", 请前往"+ url + "查看"; "元,竞拍截止时间是" + DateUtils.toString(endTime) +", 请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(auctionRecord.getUserId(), msg); aliSmsSender.sendSms(auctionRecord.getUserId(), msg);
} }
} }
//插入最新出价记录 //插入最新出价记录
...@@ -176,16 +178,16 @@ public class AuctionRecordServiceImpl implements AuctionRecordService { ...@@ -176,16 +178,16 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
auctionOfferNoticeMsg.setCurrentPrice(PriceUtil.convertPriceFenToYuan(price)); auctionOfferNoticeMsg.setCurrentPrice(PriceUtil.convertPriceFenToYuan(price));
Result result = sendMsgService.offerNoticeToDistributorMsg(auctionOfferNoticeMsg); Result result = sendMsgService.offerNoticeToDistributorMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) { if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + itemId + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "有人成出价" + PriceUtil.convertPriceFenToYuan(price) + String msg = "您分销的拍品" + supplierItem.getName() + "有人成出价" + PriceUtil.convertPriceFenToYuan(price) +
"元,请前往"+ url + "查看"; "元,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(distributorShareRecord.getDistributorId(), msg); aliSmsSender.sendSms(distributorShareRecord.getDistributorId(), msg);
} }
} else { } else {
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + itemId + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "有人成出价" + PriceUtil.convertPriceFenToYuan(price) + String msg = "您分销的拍品" + supplierItem.getName() + "有人成出价" + PriceUtil.convertPriceFenToYuan(price) +
"元,请前往"+ url + "查看"; "元,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(distributorShareRecord.getDistributorId(), msg); aliSmsSender.sendSms(distributorShareRecord.getDistributorId(), msg);
} }
return Result.success(); return Result.success();
} else { } else {
......
...@@ -16,7 +16,6 @@ import com.wwdz.ch.core.util.*; ...@@ -16,7 +16,6 @@ import com.wwdz.ch.core.util.*;
import com.wwdz.ch.db.dao.FollowFansRecordDao; import com.wwdz.ch.db.dao.FollowFansRecordDao;
import com.wwdz.ch.db.dao.distribution.*; import com.wwdz.ch.db.dao.distribution.*;
import com.wwdz.ch.db.domain.FollowFansRecord; import com.wwdz.ch.db.domain.FollowFansRecord;
import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.domain.distribution.*; import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto; import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto; import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
...@@ -37,6 +36,7 @@ import org.redisson.api.RedissonClient; ...@@ -37,6 +36,7 @@ import org.redisson.api.RedissonClient;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
...@@ -63,6 +63,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -63,6 +63,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
private static final String CREATE_ORDER_KEY_PRE = "AUCTION:CREATE:"; private static final String CREATE_ORDER_KEY_PRE = "AUCTION:CREATE:";
@Value("${dts.wx.auction-msg-url}")
private String AUCTION_MSG_URL;
@Autowired @Autowired
DistributionOrderDao distributionOrderDao; DistributionOrderDao distributionOrderDao;
...@@ -296,16 +299,16 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -296,16 +299,16 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
auctionOfferNoticeMsg.setProfit(PriceUtil.convertDoubleToString(Math.floor(averageProfit))); auctionOfferNoticeMsg.setProfit(PriceUtil.convertDoubleToString(Math.floor(averageProfit)));
Result result = sendMsgService.auctionSuccessForDistributorsMsg(auctionOfferNoticeMsg); Result result = sendMsgService.auctionSuccessForDistributorsMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) { if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL, "itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) +
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(averageProfit)) + "元。请前往"+ url + "查看"; "元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(averageProfit)) + "元。请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(record.getDistributorId(), msg); aliSmsSender.sendSms(record.getDistributorId(), msg);
} }
} else { } else {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) +
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(averageProfit)) + "元。请前往"+ url + "查看"; "元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(averageProfit)) + "元。请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(record.getDistributorId(), msg); aliSmsSender.sendSms(record.getDistributorId(), msg);
} }
} }
//把该拍卖配置信息改为已处理 //把该拍卖配置信息改为已处理
...@@ -324,16 +327,16 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -324,16 +327,16 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
auctionOfferNoticeMsg.setPayEndTime(payEndTime); auctionOfferNoticeMsg.setPayEndTime(payEndTime);
Result result = sendMsgService.auctionSuccessMsg(auctionOfferNoticeMsg); Result result = sendMsgService.auctionSuccessMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) { if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" + String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" +
DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看"; DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(auctionRecord.getUserId(), msg); aliSmsSender.sendSms(auctionRecord.getUserId(), msg);
} }
} else { } else {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" + String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" +
DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看"; DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(auctionRecord.getUserId(), msg); aliSmsSender.sendSms(auctionRecord.getUserId(), msg);
} }
//给中拍用户对应分销商发消息 //给中拍用户对应分销商发消息
String lastOpenId = sendMsgService.getOpenIdByUserId(distributionOrder.getSellerId()); String lastOpenId = sendMsgService.getOpenIdByUserId(distributionOrder.getSellerId());
...@@ -348,16 +351,16 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -348,16 +351,16 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
auctionOfferNoticeMsg.setProfit(PriceUtil.convertDoubleToString(Math.floor(profit))); auctionOfferNoticeMsg.setProfit(PriceUtil.convertDoubleToString(Math.floor(profit)));
Result result = sendMsgService.auctionSuccessForDistributorsMsg(auctionOfferNoticeMsg); Result result = sendMsgService.auctionSuccessForDistributorsMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) { if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) +
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(profit)) + "元。请前往"+ url + "查看"; "元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(profit)) + "元。请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(distributionOrder.getSellerId(), msg); aliSmsSender.sendSms(distributionOrder.getSellerId(), msg);
} }
} else { } else {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + String msg = "您分销的拍品" + supplierItem.getName() + "已成拍,成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) +
"元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(profit)) + "元。请前往"+ url + "查看"; "元,您预计获得利润" + PriceUtil.convertDoubleToString(Math.floor(profit)) + "元。请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(distributionOrder.getSellerId(), msg); aliSmsSender.sendSms(distributionOrder.getSellerId(), msg);
} }
return Result.success(map); return Result.success(map);
......
...@@ -8,10 +8,7 @@ import com.wwdz.ch.db.dao.OfficialAccountSubscribeRecordDao; ...@@ -8,10 +8,7 @@ import com.wwdz.ch.db.dao.OfficialAccountSubscribeRecordDao;
import com.wwdz.ch.db.dao.UserDao; import com.wwdz.ch.db.dao.UserDao;
import com.wwdz.ch.db.domain.OfficialAccountSubscribeRecord; import com.wwdz.ch.db.domain.OfficialAccountSubscribeRecord;
import com.wwdz.ch.db.domain.User; import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg; import com.wwdz.ch.wx.entity.*;
import com.wwdz.ch.wx.entity.DeliveryNoticeMsg;
import com.wwdz.ch.wx.entity.PayNoticeMsg;
import com.wwdz.ch.wx.entity.SignedNoticeMsg;
import com.wwdz.ch.wx.service.distribution.SendMsgService; import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.xxdxxs.utils.DateUtils; import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.JsonUtils; import com.xxdxxs.utils.JsonUtils;
...@@ -667,4 +664,48 @@ public class SendMsgServiceImpl implements SendMsgService { ...@@ -667,4 +664,48 @@ public class SendMsgServiceImpl implements SendMsgService {
logger.info("============= 发送竞拍开始通知成功 ==========="); logger.info("============= 发送竞拍开始通知成功 ===========");
return true; return true;
} }
@Override
public Result followNoticeMsg(FollowFansMsg followFansMsg) {
try {
String openId = followFansMsg.getOpenId();
String token = officialAccountApi.getAccessToken();
String url = SEND_MSG_URL + "?access_token=" + token;
OkHttpUtil okHttpUtil = OkHttpUtil.builder().url(url);
Map<String, Object> map = new HashMap<>();
map.put("touser", openId);
map.put("template_id", "WW7Um5y1xuvtKF9DnBufHWuqBMnDT1FoRhjC_L2Z8V8");
Map<String, Object> miniprogramMap = new HashMap<>();
miniprogramMap.put("appid", APPLET_APPID);
StringBuffer stringBuffer = new StringBuffer("/pages/followAndFansList/index");
stringBuffer.append("?tabType=2");
miniprogramMap.put("pagepath", stringBuffer.toString());
map.put("miniprogram", miniprogramMap);
Map<String, Object> paramMap = new LinkedHashMap<>();
paramMap.put("thing2", new HashMap() {{
put("value", followFansMsg.getFansName());
}});
paramMap.put("thing1", new HashMap() {{
put("value", followFansMsg.getContent());
}});
map.put("data", paramMap);
logger.info("============ 发送关注通知模板消息内容 : {}", JsonUtils.fromMap(map));
okHttpUtil.addParams(map);
okHttpUtil.post(true);
String responseStr = okHttpUtil.async();
logger.info("openid : {}, 发送关注通知模板消息 response :{}", openId, responseStr);
String errorCode = JsonUtils.getValueByPath(responseStr, "errcode");
String errmsg = JsonUtils.getValueByPath(responseStr, "errmsg");
if (!"0".equals(errorCode)) {
logger.error("openid : {}, 发送关注通知模板消息, errorCode : {}, errmsg : {} ", openId, errorCode, errmsg);
return Result.failed();
}
logger.info("=============发送关注通知模板消息 成功 ===========");
return Result.success();
} catch (Exception e) {
logger.error("发送竞拍成功模板消息 error :{}", e);
}
return Result.failed();
}
} }
...@@ -13,18 +13,17 @@ import com.wwdz.ch.db.domain.distribution.AuctionConfig; ...@@ -13,18 +13,17 @@ import com.wwdz.ch.db.domain.distribution.AuctionConfig;
import com.wwdz.ch.db.domain.distribution.AuctionRecord; import com.wwdz.ch.db.domain.distribution.AuctionRecord;
import com.wwdz.ch.db.domain.distribution.DistributionOrder; import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.SupplierItem; 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.api.WxAppletApi;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg; import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService; import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.SendMsgService; import com.wwdz.ch.wx.service.distribution.SendMsgService;
import com.xxdxxs.utils.DateUtils; import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.StringUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -85,6 +84,9 @@ public class AutoSendMsgJob { ...@@ -85,6 +84,9 @@ public class AutoSendMsgJob {
@Autowired @Autowired
WxAppletApi wxAppletApi; WxAppletApi wxAppletApi;
@Value("${dts.wx.auction-msg-url}")
private String AUCTION_MSG_URL;
/** /**
* 隔5分钟运行一次 * 隔5分钟运行一次
*/ */
...@@ -134,9 +136,9 @@ public class AutoSendMsgJob { ...@@ -134,9 +136,9 @@ public class AutoSendMsgJob {
aliSmsSender.sendAuctionWithTemplate(userId, msg); aliSmsSender.sendAuctionWithTemplate(userId, msg);
logger.info("================商品id:{}, 将在1小时内结束,提醒短信发送成功 ==============", supplierItem.getId()); logger.info("================商品id:{}, 将在1小时内结束,提醒短信发送成功 ==============", supplierItem.getId());
}*/ }*/
String url = wxAppletApi.getUrlLink("itemId=" + itemId + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + itemId + "&shareRecordId=");
String msg = "您出过价的拍品" + supplierItem.getName() + ",将在1小时内结束,请前往"+ url + "查看"; String msg = "您出过价的拍品" + supplierItem.getName() + ",将在1小时内结束,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(userId, msg); aliSmsSender.sendSms(userId, msg);
logger.info("================商品id:{}, 将在1小时内结束,提醒短信发送成功 ==============", supplierItem.getId()); logger.info("================商品id:{}, 将在1小时内结束,提醒短信发送成功 ==============", supplierItem.getId());
redisUtils.set(abortEndKey, itemId, 3600); redisUtils.set(abortEndKey, itemId, 3600);
} }
...@@ -199,17 +201,17 @@ public class AutoSendMsgJob { ...@@ -199,17 +201,17 @@ public class AutoSendMsgJob {
auctionOfferNoticeMsg.setPayEndTime(payEndTime); auctionOfferNoticeMsg.setPayEndTime(payEndTime);
Result result = sendMsgService.prePayMsg(auctionOfferNoticeMsg); Result result = sendMsgService.prePayMsg(auctionOfferNoticeMsg);
if (!result.getSuccess()) { if (!result.getSuccess()) {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + supplierItem.getId() + "&shareRecordId=");
//发短信 //发短信
String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" + String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" +
DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看"; DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(userId, msg); aliSmsSender.sendSms(userId, msg);
} }
} else { } else {
String url = wxAppletApi.getUrlLink("itemId=" + supplierItem.getId() + "&shareRecordId="); String url = wxAppletApi.getUrlLink(AUCTION_MSG_URL,"itemId=" + supplierItem.getId() + "&shareRecordId=");
String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" + String msg = "您已中拍" + supplierItem.getName() + ",成交价是" + PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()) + "元,请在" +
DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看"; DateUtils.toString(payEndTime) + "前完成付款,请前往"+ url + "查看";
aliSmsSender.sendAuctionWithTemplate(userId, msg); aliSmsSender.sendSms(userId, msg);
logger.info("================订单号:{}, 催付款短信通知发送成功 ==============", distributionOrder.getDistributionOrderId()); logger.info("================订单号:{}, 催付款短信通知发送成功 ==============", distributionOrder.getDistributionOrderId());
} }
redisUtils.set(key, distributionOrder.getDistributionOrderId(), 3600 * 24); redisUtils.set(key, distributionOrder.getDistributionOrderId(), 3600 * 24);
......
...@@ -2,10 +2,7 @@ package com.wwdz.ch.wx.service.distribution; ...@@ -2,10 +2,7 @@ package com.wwdz.ch.wx.service.distribution;
import com.wwdz.ch.core.entity.AbstractSubscribeMsg; import com.wwdz.ch.core.entity.AbstractSubscribeMsg;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.wx.entity.AuctionOfferNoticeMsg; import com.wwdz.ch.wx.entity.*;
import com.wwdz.ch.wx.entity.DeliveryNoticeMsg;
import com.wwdz.ch.wx.entity.PayNoticeMsg;
import com.wwdz.ch.wx.entity.SignedNoticeMsg;
public interface SendMsgService { public interface SendMsgService {
...@@ -60,7 +57,7 @@ public interface SendMsgService { ...@@ -60,7 +57,7 @@ public interface SendMsgService {
* @param auctionOfferNoticeMsg * @param auctionOfferNoticeMsg
* @return * @return
*/ */
Result auctionEndMsg(AuctionOfferNoticeMsg auctionOfferNoticeMsg); Result auctionEndMsg( AuctionOfferNoticeMsg auctionOfferNoticeMsg);
/** /**
...@@ -68,7 +65,13 @@ public interface SendMsgService { ...@@ -68,7 +65,13 @@ public interface SendMsgService {
* @param auctionOfferNoticeMsg * @param auctionOfferNoticeMsg
* @return * @return
*/ */
Result offerNoticeToDistributorMsg(AuctionOfferNoticeMsg auctionOfferNoticeMsg); Result offerNoticeToDistributorMsg( AuctionOfferNoticeMsg auctionOfferNoticeMsg);
/**
* 通知被关注者
* @return
*/
Result followNoticeMsg(FollowFansMsg followFansMsg);
/** /**
......
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