|
@@ -1,14 +1,27 @@
|
|
|
package com.cyksj.service.mange.account;
|
|
package com.cyksj.service.mange.account;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.cyksj.common.EnvCommonService;
|
|
|
|
|
+import com.cyksj.common.constant.TemplateEnum;
|
|
|
|
|
+import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.mapper.AccountMapper;
|
|
import com.cyksj.mapper.AccountMapper;
|
|
|
|
|
+import com.cyksj.mapper.UserMapper;
|
|
|
|
|
+import com.cyksj.model.dto.WxMpTemplateData;
|
|
|
|
|
+import com.cyksj.model.dto.WxMpTemplateMessage;
|
|
|
import com.cyksj.model.entity.Account;
|
|
import com.cyksj.model.entity.Account;
|
|
|
import com.cyksj.model.entity.OrderDon;
|
|
import com.cyksj.model.entity.OrderDon;
|
|
|
|
|
+import com.cyksj.model.entity.User;
|
|
|
import com.cyksj.model.excel.ExcelAccountData;
|
|
import com.cyksj.model.excel.ExcelAccountData;
|
|
|
|
|
+import com.cyksj.model.manage.views.GroupsRelationView;
|
|
|
import com.cyksj.model.views.ExpiredAccountDataView;
|
|
import com.cyksj.model.views.ExpiredAccountDataView;
|
|
|
import com.cyksj.service.mange.CmsAccountService;
|
|
import com.cyksj.service.mange.CmsAccountService;
|
|
|
|
|
+import com.cyksj.service.wechat.WeChatService;
|
|
|
|
|
+import com.ejlchina.searcher.BeanSearcher;
|
|
|
|
|
+import com.ejlchina.searcher.param.Operator;
|
|
|
|
|
+import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -26,6 +39,14 @@ import java.util.List;
|
|
|
public class CmsAccountServiceImpl extends ServiceImpl<AccountMapper, Account> implements CmsAccountService {
|
|
public class CmsAccountServiceImpl extends ServiceImpl<AccountMapper, Account> implements CmsAccountService {
|
|
|
private final AccountMapper accountMapper;
|
|
private final AccountMapper accountMapper;
|
|
|
|
|
|
|
|
|
|
+ private final WeChatService weChatService;
|
|
|
|
|
+
|
|
|
|
|
+ private final BeanSearcher beanSearcher;
|
|
|
|
|
+
|
|
|
|
|
+ private final EnvCommonService envCommonService;
|
|
|
|
|
+
|
|
|
|
|
+ private final UserMapper userMapper;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public IPage<ExpiredAccountDataView> getExpiredAccountView(Integer goodsId, String account, Boolean renewStatus, Boolean handleStatus, String cnAccount, String usAccount, Integer userId, String startTime, String endTime, String now, Long offset, Long limit) {
|
|
public IPage<ExpiredAccountDataView> getExpiredAccountView(Integer goodsId, String account, Boolean renewStatus, Boolean handleStatus, String cnAccount, String usAccount, Integer userId, String startTime, String endTime, String now, Long offset, Long limit) {
|
|
|
return accountMapper.getExpiredAccountView(goodsId, account, renewStatus, handleStatus, cnAccount, usAccount, userId, startTime, endTime, now, new Page<>(offset, limit));
|
|
return accountMapper.getExpiredAccountView(goodsId, account, renewStatus, handleStatus, cnAccount, usAccount, userId, startTime, endTime, now, new Page<>(offset, limit));
|
|
@@ -36,6 +57,34 @@ public class CmsAccountServiceImpl extends ServiceImpl<AccountMapper, Account> i
|
|
|
return accountMapper.getExpiredAccountViewNoPage(goodsId, account, renewStatus, handleStatus, cnAccount, usAccount, userId, startTime, endTime, now);
|
|
return accountMapper.getExpiredAccountViewNoPage(goodsId, account, renewStatus, handleStatus, cnAccount, usAccount, userId, startTime, endTime, now);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void sendAccountTemplateMsg(Account account) throws Exception {
|
|
|
|
|
+ List<GroupsRelationView> relations = beanSearcher.searchList(GroupsRelationView.class, MapUtils.builder()
|
|
|
|
|
+ .field(GroupsRelationView::getAccountId, account.getId()).op(Operator.Equal)
|
|
|
|
|
+ .field(GroupsRelationView::getStatus, "validity").op(Operator.Equal)
|
|
|
|
|
+ .build());
|
|
|
|
|
+ String url = String.format("%sauth/weChat?url=%syinhe/web/mine", envCommonService.getHost(), envCommonService.getDomain());
|
|
|
|
|
+ log.info("开始发送账号修改密码模板消息,大小:{}", relations.size());
|
|
|
|
|
+ for (GroupsRelationView relation : relations) {
|
|
|
|
|
+ TemplateEnum templateEnum = TemplateEnum.PLAT_ACCOUNT_UPDATE_PRD_TEMPLATE;
|
|
|
|
|
+ User user = userMapper.selectById(relation.getUserId());
|
|
|
|
|
+ if (user != null) {
|
|
|
|
|
+ WxMpTemplateMessage templateMessage = new WxMpTemplateMessage()
|
|
|
|
|
+ .setToUser(user.getOpenId())
|
|
|
|
|
+ .setTemplateId(templateEnum.getTemplateId())
|
|
|
|
|
+ .setUrl(url);
|
|
|
|
|
+ WxMpTemplateMessage.TemplateData data = templateMessage.getData();
|
|
|
|
|
+ data.setFirst(new WxMpTemplateData("Netflix账号密码更改提醒"));
|
|
|
|
|
+ data.setKeyword1(new WxMpTemplateData("工单提醒"));
|
|
|
|
|
+ data.setKeyword2(new WxMpTemplateData("修改完成"));
|
|
|
|
|
+ data.setKeyword3(new WxMpTemplateData(DateTime.now().toString("YYYY-MM-mm HH:mm:ss")));
|
|
|
|
|
+ data.setKeyword4(new WxMpTemplateData("您好,您的账号密码已经更新,请到我的车票查看,长期用户请选择拼车/年付"));
|
|
|
|
|
+ data.setRemark(new WxMpTemplateData("点击查看我的车票,如您不是在公众号购买,请在浏览器登录查看我的车票"));
|
|
|
|
|
+ weChatService.sendTemplateMessage(weChatService.getAccessToken(), Jsons.toJson(templateMessage));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public List<Account> getNoAppleOneAccount(String appleOne) {
|
|
public List<Account> getNoAppleOneAccount(String appleOne) {
|
|
|
return accountMapper.getNoAppleOneAccount(appleOne);
|
|
return accountMapper.getNoAppleOneAccount(appleOne);
|