From f6ae01540c54e5ef65654206825c566fb93ab4fd Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 11 May 2023 12:03:35 +0800 Subject: [PATCH] fix link --- .../iformall/controller/WxChatController.java | 21 +++++- .../java/com/iformall/domain/po/WxLink.java | 30 +++++++++ .../com/iformall/mapper/WxLinkMapper.java | 16 +++++ .../com/iformall/service/WxLinkService.java | 25 +++++++ .../iformall/service/cache/WxLinkCache.java | 53 +++++++++++++++ .../service/impl/WxLinkServiceImpl.java | 67 +++++++++++++++++++ .../java/com/iformall/utils/Constant.java | 2 + .../com/iformall/utils/SysConfigConstant.java | 5 +- .../main/resources/mapper/WxLinkMapper.xml | 58 ++++++++++++++++ 9 files changed, 273 insertions(+), 4 deletions(-) create mode 100644 gptService/src/main/java/com/iformall/domain/po/WxLink.java create mode 100644 gptService/src/main/java/com/iformall/mapper/WxLinkMapper.java create mode 100644 gptService/src/main/java/com/iformall/service/WxLinkService.java create mode 100644 gptService/src/main/java/com/iformall/service/cache/WxLinkCache.java create mode 100644 gptService/src/main/java/com/iformall/service/impl/WxLinkServiceImpl.java create mode 100644 gptService/src/main/resources/mapper/WxLinkMapper.xml diff --git a/gptCApi/src/main/java/com/iformall/controller/WxChatController.java b/gptCApi/src/main/java/com/iformall/controller/WxChatController.java index ba8bfc9..10279d6 100644 --- a/gptCApi/src/main/java/com/iformall/controller/WxChatController.java +++ b/gptCApi/src/main/java/com/iformall/controller/WxChatController.java @@ -49,6 +49,9 @@ public class WxChatController extends BaseController { @Autowired WxAppinfoService wxAppinfoServie; + @Autowired + WxLinkService wxLinkService; + @GetMapping("/limit") public ResultData chatLimit() { Map retMap = new HashMap(); @@ -86,9 +89,21 @@ public class WxChatController extends BaseController { @GetMapping("/link") public ResultData link() { Map retMap = new HashMap(); - TenantEntity tenantEntity = getCUser(); - SysConfig config = sysConfigService.getByKey(SysConfigConstant.linkQrCode, tenantEntity); - retMap.put("linkQrCode", config.getConfigItemValue()); + WxCUser user = getCUser(); + SysConfig linkFirstSlogan = sysConfigService.getByKey(SysConfigConstant.linkFirstSlogan, user); + retMap.put("linkFirstSlogan", linkFirstSlogan.getConfigItemValue()); + + SysConfig linkSecondSlogan = sysConfigService.getByKey(SysConfigConstant.linkSecondSlogan, user); + retMap.put("linkSecondSlogan", linkSecondSlogan.getConfigItemValue()); + + SysConfig linkCompany = sysConfigService.getByKey(SysConfigConstant.linkCompany, user); + retMap.put("linkCompany", linkCompany.getConfigItemValue()); + + SysConfig linkCompanyAddress = sysConfigService.getByKey(SysConfigConstant.linkCompanyAddress, user); + retMap.put("linkCompanyAddress", linkCompanyAddress.getConfigItemValue()); + + List linkList = wxLinkService.getCLinkList(user); + retMap.put("linkList", linkList); return new ResultData(retMap); } } diff --git a/gptService/src/main/java/com/iformall/domain/po/WxLink.java b/gptService/src/main/java/com/iformall/domain/po/WxLink.java new file mode 100644 index 0000000..895084d --- /dev/null +++ b/gptService/src/main/java/com/iformall/domain/po/WxLink.java @@ -0,0 +1,30 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import java.util.*; + +@TableName(value = "wx_link") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString +public class WxLink extends TenantEntity { + + private static final long serialVersionUID = -5094915301794376964L; + + protected Long id; + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime") + private Date createTime; + @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateTime") + private Date updateTime; + @io.swagger.annotations.ApiModelProperty(value="二维码",name="qrCode") + private String qrCode; + @io.swagger.annotations.ApiModelProperty(value="电话",name="phone") + private String phone; + @io.swagger.annotations.ApiModelProperty(value="邮箱",name="email") + private String email; + +} diff --git a/gptService/src/main/java/com/iformall/mapper/WxLinkMapper.java b/gptService/src/main/java/com/iformall/mapper/WxLinkMapper.java new file mode 100644 index 0000000..da5b337 --- /dev/null +++ b/gptService/src/main/java/com/iformall/mapper/WxLinkMapper.java @@ -0,0 +1,16 @@ +package com.iformall.mapper; + +import java.util.*; + +import org.apache.ibatis.annotations.Param; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxLink; + +public interface WxLinkMapper extends CommonMapper { + + WxLink selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findList(WxLink wxLink); + +} diff --git a/gptService/src/main/java/com/iformall/service/WxLinkService.java b/gptService/src/main/java/com/iformall/service/WxLinkService.java new file mode 100644 index 0000000..522d6d7 --- /dev/null +++ b/gptService/src/main/java/com/iformall/service/WxLinkService.java @@ -0,0 +1,25 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxLink; +import com.iformall.domain.po.base.TenantEntity; + +import java.util.List; + +public interface WxLinkService { + + + /** + * 根据Id获得实体 + * + * @param id + * @return + */ + WxLink getById(Long id,String tenantId); + + List list(WxLink product); + + List getCLinkList(TenantEntity tenantEntity); + + WxLink getCLink(TenantEntity tenantEntity,Long id); + +} diff --git a/gptService/src/main/java/com/iformall/service/cache/WxLinkCache.java b/gptService/src/main/java/com/iformall/service/cache/WxLinkCache.java new file mode 100644 index 0000000..d617099 --- /dev/null +++ b/gptService/src/main/java/com/iformall/service/cache/WxLinkCache.java @@ -0,0 +1,53 @@ +package com.iformall.service.cache; + +import java.util.List; + +import org.springframework.data.redis.core.RedisTemplate; + +import com.iformall.domain.po.WxLink; +import com.iformall.utils.Constant; +import com.iformall.utils.RedisCacheUtils; + +public class WxLinkCache { + + private static String getKey(Long linkId) { + String key = Constant.linkPrev + linkId; + return key; + } + + public static WxLink getCache(RedisTemplate redisTemplate,Long linkId) { + String key = getKey(linkId); + return RedisCacheUtils.getCacheObject(redisTemplate, key, WxLink.class); + } + + public static void cache(RedisTemplate redisTemplate,WxLink link) { + String key = getKey(link.getId()); + RedisCacheUtils.cache(redisTemplate, key, link, 3600*24*7); + } + + public static void removeCache(RedisTemplate redisTemplate,Long linkId) { + String key = getKey(linkId); + RedisCacheUtils.removeCache(redisTemplate, key); + } + + private static String getListKey(String tenantId) { + String key = Constant.linkListPrev + tenantId; + return key; + } + + public static List getCacheList(RedisTemplate redisTemplate,String tenantId) { + String key = getListKey(tenantId); + return RedisCacheUtils.getCacheListObject(redisTemplate, key, WxLink.class); + } + + public static void cacheList(RedisTemplate redisTemplate,List wxLinkList,String tenantId) { + String key = getListKey(tenantId); + RedisCacheUtils.cache(redisTemplate, key, wxLinkList, 3600*24*7); + } + + public static void removeCacheList(RedisTemplate redisTemplate,String tenantId) { + String key = getListKey(tenantId); + RedisCacheUtils.removeCache(redisTemplate, key); + } + +} diff --git a/gptService/src/main/java/com/iformall/service/impl/WxLinkServiceImpl.java b/gptService/src/main/java/com/iformall/service/impl/WxLinkServiceImpl.java new file mode 100644 index 0000000..9fc2002 --- /dev/null +++ b/gptService/src/main/java/com/iformall/service/impl/WxLinkServiceImpl.java @@ -0,0 +1,67 @@ +package com.iformall.service.impl; + +import com.iformall.domain.po.WxLink; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.mapper.WxLinkMapper; +import com.iformall.service.WxLinkService; +import com.iformall.service.cache.WxLinkCache; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; +import java.util.List; + +@Service +public class WxLinkServiceImpl implements WxLinkService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxLinkMapper wxLinkMapper; + + @Autowired + @Qualifier("objectCommonRedisTemplate") + RedisTemplate objectCommonRedisTemplate; + + @Override + public WxLink getById(Long id, String tenantId) { + return wxLinkMapper.selectById(id, tenantId); + } + + @Override + public List list(WxLink product) { + return wxLinkMapper.findList(product); + } + + @Override + public List getCLinkList(TenantEntity tenantEntity) { + List productList = WxLinkCache.getCacheList(objectCommonRedisTemplate,tenantEntity.getTenantId()); + if (null == productList || productList.size() <= 0 ) { + WxLink p = new WxLink(); + p.updateTenantInfo(tenantEntity); + List plist = list(p); + if (null != plist && plist.size() > 0 ) { + WxLinkCache.cacheList(objectCommonRedisTemplate, plist,tenantEntity.getTenantId()); + return plist; + } + } + return productList; + } + + + @Override + public WxLink getCLink(TenantEntity tenantEntity,Long id) { + WxLink _product = WxLinkCache.getCache(objectCommonRedisTemplate,id); + if (null == _product) { + _product = getById(id, tenantEntity.getTenantId()); + if (null != _product) { + WxLinkCache.cache(objectCommonRedisTemplate, _product); + } + } + return _product; + } + + + +} diff --git a/gptService/src/main/java/com/iformall/utils/Constant.java b/gptService/src/main/java/com/iformall/utils/Constant.java index 2330d74..a9b7305 100644 --- a/gptService/src/main/java/com/iformall/utils/Constant.java +++ b/gptService/src/main/java/com/iformall/utils/Constant.java @@ -11,6 +11,8 @@ public class Constant { public static final String payaccountPrev = "gpt:payAccount:"; public static final String noticePrev = "gpt:notice:"; public static final String noticeListPrev = "gpt:noticeList:"; + public static final String linkPrev = "gpt:link:"; + public static final String linkListPrev = "gpt:linkList:"; public static final String currentUser = "currentUser"; public static final String TENANT_ID = "tenantId"; public static final String PARENT_TENANT_ID = "parentTenantId"; diff --git a/gptService/src/main/java/com/iformall/utils/SysConfigConstant.java b/gptService/src/main/java/com/iformall/utils/SysConfigConstant.java index 6be193c..e657479 100644 --- a/gptService/src/main/java/com/iformall/utils/SysConfigConstant.java +++ b/gptService/src/main/java/com/iformall/utils/SysConfigConstant.java @@ -6,6 +6,9 @@ public class SysConfigConstant { public static final String freeDays="freeDays"; public static final String promotContentCount="promotContentCount"; public static final String completionContentCount="completionContentCount"; - public static final String linkQrCode="linkQrCode"; + public static final String linkFirstSlogan="linkFirstSlogan"; + public static final String linkSecondSlogan="linkSecondSlogan"; + public static final String linkCompany="linkCompany"; + public static final String linkCompanyAddress="linkCompanyAddress"; } diff --git a/gptService/src/main/resources/mapper/WxLinkMapper.xml b/gptService/src/main/resources/mapper/WxLinkMapper.xml new file mode 100644 index 0000000..8641ea8 --- /dev/null +++ b/gptService/src/main/resources/mapper/WxLinkMapper.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`qr_code`,`phone`,`email` + + + + where `tenant_id` = #{tenantId} + + + and `id` = #{id} + + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `create_time` = #{createTime} + + + + and `update_time` = #{updateTime} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + +