记得上下班打卡 | git大法好,push需谨慎

Commit e1458673 authored by jiangxiulong's avatar jiangxiulong

模版消息

parent 8a9ed716
...@@ -14,6 +14,7 @@ public class SweetConstant { ...@@ -14,6 +14,7 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_ARTISTS_RELATION = "sweet:artists:relation:uid:"; public final static String REDIS_KEY_SWEET_ARTISTS_RELATION = "sweet:artists:relation:uid:";
public final static String REDIS_KEY_SWEET_REMIND="sweet:remind:unionId:"; public final static String REDIS_KEY_SWEET_REMIND="sweet:remind:unionId:";
public static final String REDIS_KEY_SWEET_REMIND_ALL = "sweet:remind:unionId*";
public enum ManualPosition { public enum ManualPosition {
POSITION_1("艺人"), POSITION_1("艺人"),
......
...@@ -19,33 +19,23 @@ public class SweetTemplateController { ...@@ -19,33 +19,23 @@ public class SweetTemplateController {
@GetMapping("send") @GetMapping("send")
@ApiOperation("发送模版消息") @ApiOperation("发送模版消息")
@ApiImplicitParams({ public ResponseDto send() {
@ApiImplicitParam(type = "query", dataType = "String", name = "code", value = "微信code", required = true), return sweetTemplateService.sendMsg();
@ApiImplicitParam(type = "query", dataType = "String", name = "encryptedData", value = "encryptedData", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "iv", value = "iv", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "type", value = "1草莓 2五百里 3mdsk"),
})
public ResponseDto send(
@RequestParam() String code,
@RequestParam() String encryptedData,
@RequestParam() String iv,
@RequestParam(defaultValue = "1") Integer type
) {
sweetTemplateService.sendMsg();
return ResponseDto.success();
} }
@PostMapping("remind") @PostMapping("remind")
@ApiOperation("提醒记录") @ApiOperation("提醒记录")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "openId", value = "微信openId", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "unionId", value = "微信unionId", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "unionId", value = "微信unionId", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "performancesId", value = "演出ID", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "performancesId", value = "演出ID", required = true),
}) })
public ResponseDto remind( public ResponseDto remind(
@RequestParam() String openId,
@RequestParam() String unionId, @RequestParam() String unionId,
@RequestParam() String performancesId @RequestParam() String performancesId
) { ) {
return sweetTemplateService.remind(unionId, performancesId); return sweetTemplateService.remind(openId, unionId, performancesId);
} }
} }
package com.liquidnet.service.sweet.service.impl; package com.liquidnet.service.sweet.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient; import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.utils.RedisDataUtils; import com.liquidnet.service.sweet.utils.RedisDataUtils;
import com.liquidnet.service.sweet.vo.SweetRemindVo;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
...@@ -13,7 +17,12 @@ import me.chanjar.weixin.mp.config.WxMpConfigStorage; ...@@ -13,7 +17,12 @@ import me.chanjar.weixin.mp.config.WxMpConfigStorage;
import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl; import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Set;
/** /**
* <p> * <p>
...@@ -33,15 +42,25 @@ public class SweetTemplateServiceImpl { ...@@ -33,15 +42,25 @@ public class SweetTemplateServiceImpl {
@Autowired @Autowired
private RedisDataUtils redisDataUtils; private RedisDataUtils redisDataUtils;
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private RedisUtil redisUtil;
@Autowired @Autowired
private FeignKylinPerformanceClient feignKylinPerformanceClient; private FeignKylinPerformanceClient feignKylinPerformanceClient;
public ResponseDto send(String openId, String templateId) { public ResponseDto send(String templateId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_REMIND_ALL;
Set<String> keys = redisTemplate.keys(redisKey);
Object hkeys = redisUtil.hkeys(redisKey);
if (!CollectionUtils.isEmpty(keys)) {
for (String rkey : keys) {
SweetRemindVo remindInfo = (SweetRemindVo) redisUtil.get(rkey);
// 发送模板消息接口 // 发送模板消息接口
WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
// 接收者openid // 接收者openid
.toUser(openId) .toUser(remindInfo.getOpenId())
// 模板id // 模板id
.templateId(templateId) .templateId(templateId)
// 模板跳转链接 // 模板跳转链接
...@@ -62,14 +81,15 @@ public class SweetTemplateServiceImpl { ...@@ -62,14 +81,15 @@ public class SweetTemplateServiceImpl {
e.printStackTrace(); e.printStackTrace();
} }
System.out.println(msgId); System.out.println(msgId);
}
}
return ResponseDto.success(); return ResponseDto.success();
} }
public void sendMsg() public ResponseDto sendMsg()
{ {
String openId = ""; String templateId = "CNLDBZYQoDgTWudicx8WU81Jr9b6RyG9hmK4O0tpK-k";
String templateId = ""; return send(templateId);
send(openId, templateId);
} }
private WxMpConfigStorage wxMpConfig(String appId, String appSecret) { private WxMpConfigStorage wxMpConfig(String appId, String appSecret) {
...@@ -85,10 +105,10 @@ public class SweetTemplateServiceImpl { ...@@ -85,10 +105,10 @@ public class SweetTemplateServiceImpl {
return service; return service;
} }
public ResponseDto remind(String unionId, String performancesId) { public ResponseDto remind(String openId, String unionId, String performancesId) {
ResponseDto<KylinPerformanceVo> performanceVo = feignKylinPerformanceClient.detail(performancesId); ResponseDto<KylinPerformanceVo> performanceVo = feignKylinPerformanceClient.detail(performancesId);
KylinPerformanceVo performanceInfo = performanceVo.getData(); KylinPerformanceVo performanceInfo = performanceVo.getData();
redisDataUtils.setSweetRemind(unionId, performancesId, performanceInfo); redisDataUtils.setSweetRemind(openId, unionId, performancesId, performanceInfo);
return ResponseDto.success(); return ResponseDto.success();
} }
} }
...@@ -17,12 +17,10 @@ import com.liquidnet.service.sweet.entity.SweetRichtext; ...@@ -17,12 +17,10 @@ import com.liquidnet.service.sweet.entity.SweetRichtext;
import com.liquidnet.service.sweet.mapper.*; import com.liquidnet.service.sweet.mapper.*;
import com.liquidnet.service.sweet.vo.SweetArtistsRelationVo; import com.liquidnet.service.sweet.vo.SweetArtistsRelationVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Component @Component
public class RedisDataUtils { public class RedisDataUtils {
...@@ -230,12 +228,13 @@ public class RedisDataUtils { ...@@ -230,12 +228,13 @@ public class RedisDataUtils {
} }
// 小程序演出提醒 // 小程序演出提醒
public void setSweetRemind(String unionId, String performancesId, KylinPerformanceVo performanceInfo) { public void setSweetRemind(String openId, String unionId, String performancesId, KylinPerformanceVo performanceInfo) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_REMIND.concat(unionId); String redisKey = SweetConstant.REDIS_KEY_SWEET_REMIND.concat(unionId);
SweetRemindVo sweetRemindVo = SweetRemindVo.getNew(); SweetRemindVo sweetRemindVo = SweetRemindVo.getNew();
sweetRemindVo.setCreatedAt(DateUtil.getNowTime()); sweetRemindVo.setCreatedAt(DateUtil.getNowTime());
sweetRemindVo.setPerformancesId(performancesId); sweetRemindVo.setPerformancesId(performancesId);
sweetRemindVo.setUnionId(unionId); sweetRemindVo.setUnionId(unionId);
sweetRemindVo.setOpenId(openId);
if (null != performanceInfo) { if (null != performanceInfo) {
sweetRemindVo.setFieldName(performanceInfo.getFieldName()); sweetRemindVo.setFieldName(performanceInfo.getFieldName());
...@@ -245,4 +244,5 @@ public class RedisDataUtils { ...@@ -245,4 +244,5 @@ public class RedisDataUtils {
} }
redisUtil.set(redisKey, sweetRemindVo); redisUtil.set(redisKey, sweetRemindVo);
} }
} }
...@@ -7,6 +7,7 @@ import java.io.Serializable; ...@@ -7,6 +7,7 @@ import java.io.Serializable;
@Data @Data
public class SweetRemindVo implements Serializable, Cloneable { public class SweetRemindVo implements Serializable, Cloneable {
private String performancesId; private String performancesId;
private String openId;
private String unionId; private String unionId;
private String title; private String title;
private String timeStart; private String timeStart;
......
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