| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package com.cyksj.service.mange.impl;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.util.StrUtil;
- import com.cyksj.common.EnvCommonService;
- import com.cyksj.common.constant.TemplateEnum;
- import com.cyksj.common.util.Jsons;
- import com.cyksj.mapper.SpotifyUnLimitRecordMapper;
- import com.cyksj.mapper.UserMapper;
- import com.cyksj.model.dto.WxMpTemplateData;
- import com.cyksj.model.dto.WxMpTemplateMessage;
- import com.cyksj.model.entity.SpotifyUnLimitRecord;
- import com.cyksj.model.entity.User;
- import com.cyksj.model.views.WxAppTemplateView;
- import com.cyksj.service.mange.SpotifySendMsgService;
- import com.cyksj.service.template.TemplateCommonService;
- import com.cyksj.service.wechat.WeChatService;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Service;
- import javax.annotation.PostConstruct;
- /*
- *项目名: netflix
- *文件名: SpotifySendMsgServiceImpl
- *创建者: JavaZou
- *创建时间:2022/12/21 16:01
- */
- @Service
- @Slf4j
- @RequiredArgsConstructor
- public class SpotifySendMsgServiceImpl implements SpotifySendMsgService {
- private final EnvCommonService envCommonService;
- private final WeChatService weChatService;
- private final UserMapper userMapper;
- private final SpotifyUnLimitRecordMapper spotifyUnLimitRecordMapper;
- private static String spotifyUnLimitSuccessUrl;
- private final TemplateCommonService templateCommonService;
- @PostConstruct
- public void init() {
- String host = envCommonService.getHost();
- String domain = envCommonService.getDomain();
- String redirectUrl = String.format("%s%s", domain, "yinhe/web/?temp=couponId?1?goodsId?4?skuId?14");
- spotifyUnLimitSuccessUrl = String.format("%sauth/weChat?url=%s", host, redirectUrl);
- }
- @Override
- public void sendSpotifyUnLimitSuccessMsg(SpotifyUnLimitRecord record) throws Exception {
- if (!EnvCommonService.active.equals(envCommonService.getEnv())) {
- SpotifyUnLimitRecord unLimitRecord = spotifyUnLimitRecordMapper.selectById(record.getId());
- if (unLimitRecord != null && !unLimitRecord.getIsSend()) {
- User user = userMapper.selectById(unLimitRecord.getUserId());
- if (user != null && StrUtil.isNotBlank(user.getOpenId())) {
- String openId = user.getOpenId();
- WxAppTemplateView wxAppTemplateView = templateCommonService.getWxAppByUserId(openId, TemplateEnum.SPOTIFY_ACCOUNT_UN_LIMIT_SUCCESS_TEMPLATE.getDesc());
- if (wxAppTemplateView != null) {
- WxMpTemplateMessage templateMessage = new WxMpTemplateMessage()
- .setToUser(openId)
- .setTemplateId(wxAppTemplateView.getTemplateId())
- .setUrl(spotifyUnLimitSuccessUrl);
- WxMpTemplateMessage.TemplateData data = templateMessage.getData();
- data.setFirst(new WxMpTemplateData("您的Spotify账号登录限制解除成功"));
- data.setKeyword1(new WxMpTemplateData(user.getNickname()));
- data.setKeyword2(new WxMpTemplateData(DateUtil.format(unLimitRecord.getUpdateTime(), "yyyy-MM-dd HH:mm:ss")));
- data.setRemark(new WxMpTemplateData("建议您购买Spotify年付会员,无需每过14天解除限制,点击了解"));
- weChatService.sendTemplateMessage(weChatService.getAccessToken(wxAppTemplateView.getAppId()), Jsons.toJson(templateMessage));
- unLimitRecord.setIsSend(true);
- spotifyUnLimitRecordMapper.updateById(unLimitRecord);
- }
- }
- }
- }
- }
- }
|