SysconfigServiceImpl.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. package jnpf.base.service.impl;
  2. import cn.hutool.core.collection.CollectionUtil;
  3. import com.baomidou.dynamic.datasource.annotation.DSTransactional;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import jnpf.base.entity.EmailConfigEntity;
  6. import jnpf.base.entity.SysConfigEntity;
  7. import jnpf.base.mapper.SysconfigMapper;
  8. import jnpf.base.model.MailAccount;
  9. import jnpf.base.service.SuperServiceImpl;
  10. import jnpf.base.service.SysconfigService;
  11. import jnpf.base.util.Pop3Util;
  12. import jnpf.base.util.SmtpUtil;
  13. import jnpf.model.BaseSystemInfo;
  14. import jnpf.model.SocialsSysConfig;
  15. import jnpf.util.CacheKeyUtil;
  16. import jnpf.util.JsonUtil;
  17. import jnpf.util.RedisUtil;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import java.util.ArrayList;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. import java.util.stream.Collectors;
  25. /**
  26. * 系统配置
  27. *
  28. * @author JNPF开发平台组
  29. * @version V3.1.0
  30. * @copyright 引迈信息技术有限公司
  31. * @date 2019年9月27日 上午9:18
  32. */
  33. @Service
  34. public class SysconfigServiceImpl extends SuperServiceImpl<SysconfigMapper, SysConfigEntity> implements SysconfigService {
  35. @Autowired
  36. private RedisUtil redisUtil;
  37. @Autowired
  38. private CacheKeyUtil cacheKeyUtil;
  39. @Autowired
  40. private Pop3Util pop3Util;
  41. @Override
  42. public List<SysConfigEntity> getList(String type) {
  43. List<SysConfigEntity> list = new ArrayList<>();
  44. if ("WeChat".equals(type)) {
  45. QueryWrapper<SysConfigEntity> queryWrapper = new QueryWrapper<>();
  46. list = this.list(queryWrapper).stream().filter(t -> "QYHConfig".equals(t.getCategory()) || "MPConfig".equals(t.getCategory())).collect(Collectors.toList());
  47. }
  48. if ("SysConfig".equals(type)) {
  49. QueryWrapper<SysConfigEntity> queryWrapper = new QueryWrapper<>();
  50. list = this.list(queryWrapper).stream().filter(t -> !"QYHConfig".equals(t.getCategory()) && !"MPConfig".equals(t.getCategory())).collect(Collectors.toList());
  51. }
  52. return list;
  53. }
  54. @Override
  55. public BaseSystemInfo getWeChatInfo() {
  56. Map<String, String> objModel = new HashMap<>(16);
  57. List<SysConfigEntity> list = this.getList("WeChat");
  58. for (SysConfigEntity entity : list) {
  59. objModel.put(entity.getFkey(), entity.getValue());
  60. }
  61. BaseSystemInfo baseSystemInfo = JsonUtil.getJsonToBean(objModel, BaseSystemInfo.class);
  62. return baseSystemInfo;
  63. }
  64. @Override
  65. public BaseSystemInfo getSysInfo() {
  66. String cacheKey = cacheKeyUtil.getSystemInfo();
  67. if (redisUtil.exists(cacheKey)) {
  68. String json = String.valueOf(redisUtil.getString(cacheKey));
  69. return JsonUtil.getJsonToBean(json, BaseSystemInfo.class);
  70. }
  71. Map<String, String> objModel = new HashMap<>(16);
  72. List<SysConfigEntity> list = this.getList("SysConfig");
  73. for (SysConfigEntity entity : list) {
  74. objModel.put(entity.getFkey(), entity.getValue());
  75. }
  76. BaseSystemInfo baseSystemInfo = JsonUtil.getJsonToBean(objModel, BaseSystemInfo.class);
  77. redisUtil.insert(cacheKey, JsonUtil.getObjectToString(baseSystemInfo));
  78. return baseSystemInfo;
  79. }
  80. @Override
  81. @DSTransactional
  82. public void save(List<SysConfigEntity> entitys) {
  83. String cacheKey = cacheKeyUtil.getSystemInfo();
  84. redisUtil.remove(cacheKey);
  85. this.baseMapper.deleteFig();
  86. for (SysConfigEntity entity : entitys) {
  87. entity.setCategory("SysConfig");
  88. this.baseMapper.insert(entity);
  89. }
  90. }
  91. @Override
  92. @DSTransactional
  93. public boolean saveMp(List<SysConfigEntity> entitys) {
  94. String cacheKey = cacheKeyUtil.getWechatConfig();
  95. int flag = 0;
  96. redisUtil.remove(cacheKey);
  97. this.baseMapper.deleteMpFig();
  98. for (SysConfigEntity entity : entitys) {
  99. entity.setCategory("MPConfig");
  100. if (this.baseMapper.insert(entity) > 0) {
  101. flag++;
  102. }
  103. }
  104. if (entitys.size() == flag) {
  105. return true;
  106. }
  107. return false;
  108. }
  109. @Override
  110. @DSTransactional
  111. public void saveQyh(List<SysConfigEntity> entitys) {
  112. String cacheKey = cacheKeyUtil.getWechatConfig();
  113. redisUtil.remove(cacheKey);
  114. this.baseMapper.deleteQyhFig();
  115. for (SysConfigEntity entity : entitys) {
  116. entity.setCategory("QYHConfig");
  117. this.baseMapper.insert(entity);
  118. }
  119. }
  120. @Override
  121. public String checkLogin(EmailConfigEntity configEntity) {
  122. MailAccount mailAccount = new MailAccount();
  123. mailAccount.setAccount(configEntity.getAccount());
  124. mailAccount.setPassword(configEntity.getPassword());
  125. mailAccount.setPop3Host(configEntity.getPop3Host());
  126. mailAccount.setPop3Port(configEntity.getPop3Port());
  127. mailAccount.setSmtpHost(configEntity.getSmtpHost());
  128. mailAccount.setSmtpPort(configEntity.getSmtpPort());
  129. if ("1".equals(String.valueOf(configEntity.getEmailSsl()))) {
  130. mailAccount.setSsl(true);
  131. } else {
  132. mailAccount.setSsl(false);
  133. }
  134. if (mailAccount.getSmtpHost() != null) {
  135. return SmtpUtil.checkConnected(mailAccount);
  136. }
  137. if (mailAccount.getPop3Host() != null) {
  138. return pop3Util.checkConnected(mailAccount);
  139. }
  140. return "false";
  141. }
  142. @Override
  143. public String getValueByKey(String keyStr) {
  144. QueryWrapper<SysConfigEntity> queryWrapper = new QueryWrapper<>();
  145. queryWrapper.lambda().eq(SysConfigEntity::getFkey, keyStr);
  146. List<SysConfigEntity> list = list(queryWrapper);
  147. if (CollectionUtil.isNotEmpty(list)) {
  148. return list.get(0).getValue();
  149. }
  150. return null;
  151. }
  152. @Override
  153. public SocialsSysConfig getSocialsConfig() {
  154. String cacheKey = cacheKeyUtil.getSocialsConfig();
  155. if (redisUtil.exists(cacheKey)) {
  156. String json = String.valueOf(redisUtil.getString(cacheKey));
  157. return JsonUtil.getJsonToBean(json, SocialsSysConfig.class);
  158. }
  159. Map<String, String> objModel = new HashMap<>();
  160. QueryWrapper<SysConfigEntity> queryWrapper = new QueryWrapper<>();
  161. queryWrapper.lambda().eq(SysConfigEntity::getCategory, "SocialsConfig");
  162. List<SysConfigEntity> configList = this.list(queryWrapper);
  163. for (SysConfigEntity entity : configList) {
  164. objModel.put(entity.getFkey(), entity.getValue());
  165. }
  166. SocialsSysConfig config = JsonUtil.getJsonToBean(objModel, SocialsSysConfig.class);
  167. redisUtil.insert(cacheKey, JsonUtil.getObjectToString(config));
  168. return config;
  169. }
  170. @Override
  171. public void saveSocials(List<SysConfigEntity> entitys) {
  172. String cacheKey = cacheKeyUtil.getSocialsConfig();
  173. redisUtil.remove(cacheKey);
  174. QueryWrapper<SysConfigEntity> queryWrapper = new QueryWrapper<>();
  175. queryWrapper.lambda().eq(SysConfigEntity::getCategory, "SocialsConfig");
  176. this.remove(queryWrapper);
  177. for (SysConfigEntity entity : entitys) {
  178. this.baseMapper.insert(entity);
  179. }
  180. }
  181. }