Browse Source

[C端][优化]:首页券列表优化

release_toaliyun_real
Stormeye Wu 6 years ago
parent
commit
746550967b
20 changed files with 366 additions and 11 deletions
  1. +20
    -0
      mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java
  2. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java
  3. +19
    -0
      mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java
  4. +20
    -0
      mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java
  5. +20
    -0
      mallinkCallback/src/main/java/com/iformall/config/RedisConfig.java
  6. +20
    -0
      mallinkMQConsumer/src/main/java/com/iformall/config/RedisConfig.java
  7. +20
    -0
      mallinkPosApi/src/main/java/com/iformall/config/RedisConfig.java
  8. +20
    -0
      mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java
  9. +49
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java
  10. +34
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumTargetAd.java
  11. +46
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java
  12. +0
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java
  13. +0
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java
  14. +32
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java
  15. +20
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
  16. +0
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  17. +5
    -1
      mallinkService/src/main/resources/mapper/WxCouponMapper.xml
  18. +1
    -1
      mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml
  19. +19
    -0
      mallinkSysAdmin/src/main/java/com/iformall/config/RedisConfig.java
  20. +20
    -0
      mallinkWebSocketServer/src/main/java/com/iformall/config/RedisConfig.java

+ 20
- 0
mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,6 +1,8 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -156,6 +158,24 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);

// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


+ 1
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java View File

@@ -9,6 +9,7 @@ import com.iformall.controller.app.WxAppinfoController;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.dto.WxCouponChannelDto;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.vo.WxCouponChannelVo;
import com.iformall.mapper.WxCouponChannelMapper;


+ 19
- 0
mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,6 +1,8 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -119,6 +121,23 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);
// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


+ 20
- 0
mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,7 +1,9 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponCVo;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -137,6 +139,24 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);

// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


+ 20
- 0
mallinkCallback/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,6 +1,8 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -156,6 +158,24 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);

// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


+ 20
- 0
mallinkMQConsumer/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,6 +1,8 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -141,6 +143,24 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);

// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


+ 20
- 0
mallinkPosApi/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,6 +1,8 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -119,6 +121,24 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);

// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


+ 20
- 0
mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,6 +1,8 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -141,6 +143,24 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);

// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


+ 49
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java View File

@@ -0,0 +1,49 @@
package com.iformall.enums;

import java.util.HashMap;
import java.util.Map;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumCacheKey {

C_INDEX_PAGE_LIST(0, "couponChannelList_"),

;
private static Map<Integer,EnumCacheKey> map = new HashMap<Integer,EnumCacheKey>();
static {
for (EnumCacheKey value : values()) {
map.put(value.code, value);
}
}

public static EnumCacheKey getEnum(Integer code) {
if (code == null) return null;
return map.get(code);
}

public static String getEnumMessage(Integer code) {
if (code == null) return null;
if (map.get(code) == null)
return null;
return map.get(code).getMessage();
}

private Integer code;
private String message;


EnumCacheKey(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 34
- 0
mallinkService/src/main/java/com/iformall/enums/EnumTargetAd.java View File

@@ -0,0 +1,34 @@
package com.iformall.enums;

public enum EnumTargetAd {


LIST(1, "列表"),
BUG(2, "显示抢购"),
;

public static EnumTargetAd getEnum(Integer code) {
for (EnumTargetAd value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumTargetAd(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 46
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java View File

@@ -15,12 +15,18 @@ import com.iformall.domain.vo.WxMerchantVo;
import com.iformall.enums.*;
import com.iformall.mapper.*;
import com.iformall.service.*;
import com.iformall.utils.JsonUtil;
import org.apache.commons.lang3.StringUtils;
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.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;

import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

@Service
@@ -46,6 +52,10 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService {
@Autowired
WxFloatingLayerMapper wxFloatingLayerMapper;

@Autowired
@Qualifier("couponChannelRedisTemplate")
RedisTemplate<String, PageInfo<WxCouponChannelVo>> cdRedisTemplate;

/**
* B端业务端
* @param record
@@ -111,9 +121,23 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService {
record.setUpdateDate(new Date());
wxCouponChannelMapper.updateById(record);
}

//清除缓存
clearCache(record.getTenantId());
return new ResultData();
}

/**
* 清除c端首页卷列表缓存
* @param tenantId
*/
public void clearCache(String tenantId){
for (int i = 1; i <=5 ; i++) {
String key = EnumCacheKey.C_INDEX_PAGE_LIST.getMessage()+tenantId+"_" + i + ":";
cdRedisTemplate.delete(key);
}
}

@Override
public ResultData addBatch(String[] ids, String[] channelId, String tanantId, Date beginTime, Date endTime) {
List<WxCouponChannelAddVo> errorList = new ArrayList<>();
@@ -284,6 +308,28 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService {
*/
@Override
public PageInfo<WxCouponChannelVo> listPageCVo(WxCouponChannel record, Integer pageIndex, Integer pageSize) {
PageInfo<WxCouponChannelVo> pageInfo;
//仅c端首页走缓存
if(EnumCouponChannelType.COUPON_CHANNEL_ID_LIST.getCode().equals(record.getTargetAd())
&& new Integer(6).equals(pageSize)
&& pageIndex.intValue() <=5
&& record.getBusiness() == null) {

logger.info("listPageCVo.chache");
String key = EnumCacheKey.C_INDEX_PAGE_LIST.getMessage() +record.getTenantId()+"_" + pageIndex + ":";
ValueOperations<String, PageInfo<WxCouponChannelVo>> operations = cdRedisTemplate.opsForValue();
boolean hasKey = cdRedisTemplate.hasKey(key);
if (hasKey) {
pageInfo = operations.get(key);
logger.info("listPageCVo.chache.get:{}", pageInfo.getList()==null?0:pageInfo.getList().size());
}else{
pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponChannelMapper.findVoList(record));
}
//插入缓存
operations.set(key, pageInfo, 60, TimeUnit.SECONDS);
return pageInfo;
}

return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponChannelMapper.findVoList(record));
}



+ 0
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java View File

@@ -21,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;
import java.util.stream.Collectors;

@Service
public class WxCouponInjectServiceImpl implements WxCouponInjectService {


+ 0
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java View File

@@ -11,7 +11,6 @@ import com.iformall.exception.MallinkException;
import com.iformall.mapper.WxCouponPasswordMapper;
import com.iformall.service.ExcelService;
import com.iformall.service.WxCouponPasswordService;
import com.iformall.utils.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;


+ 32
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java View File

@@ -13,6 +13,7 @@ import com.iformall.domain.dto.WxCouponMerchantDto;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.vo.WxCouponCVo;
import com.iformall.domain.vo.WxCouponChannelVo;
import com.iformall.domain.vo.WxCouponStatisVo;
import com.iformall.domain.vo.WxMerchantVo;
import com.iformall.enums.*;
@@ -24,6 +25,8 @@ import org.apache.commons.lang3.StringUtils;
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 org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
@@ -71,6 +74,10 @@ import java.util.stream.Collectors;
@Autowired
WxCouponPasswordService couponPasswordService;

@Autowired
@Qualifier("couponChannelRedisTemplate")
RedisTemplate<String, PageInfo<WxCouponChannelVo>> cdRedisTemplate;

@Override
public ResultData list(WxCoupon wxCoupon, Integer pageNum, Integer pageSize) {
if (null == wxCoupon) wxCoupon = new WxCoupon();
@@ -429,9 +436,24 @@ import java.util.stream.Collectors;
wxCouponMapper.updateById(record);

}

//清空缓存
clearCache(record.getTenantId());
return new ResultData(record.getId());
}


/**
* 清除c端首页卷列表缓存
* @param tenantId
*/
public void clearCache(String tenantId){
for (int i = 1; i <=5 ; i++) {
String key = EnumCacheKey.C_INDEX_PAGE_LIST.getMessage() +tenantId+"_" + i + ":";
cdRedisTemplate.delete(key);
}
}

@Override
public void deleteById(Long id) {
wxCouponMapper.deleteById(id);
@@ -590,12 +612,14 @@ import java.util.stream.Collectors;
// 库存 是否改变
bChanged = true;
}
if(wxCoupon.getInventory()-wxCoupon.getRemainInventory() != oldCoupon.getInventory() - oldCoupon.getRemainInventory()) {
Integer newSale = wxCoupon.getInventory()-wxCoupon.getRemainInventory();
Integer oldSale = oldCoupon.getInventory() - oldCoupon.getRemainInventory();
if (!newSale.equals(oldSale)) {
// 已售卖数不变
logger.error("已售卖数不变");
return new ResultData(ErrorCode.COUPON_STOCK_ERR.getCode(), "已售卖数不变");
logger.error("券库存要保证同增同减");
return new ResultData(ErrorCode.COUPON_STOCK_ERR.getCode(), "券库存要保证同增同减");
}
if(wxCoupon.getValidType() != oldCoupon.getValidType()) {
if (!wxCoupon.getValidType().equals(oldCoupon.getValidType())) {
// 券有效期类型不能改变
logger.error("券有效期类型不能改变");
return new ResultData(ErrorCode.COUPON_VALID_DATE_ERR.getCode(), "券有效期类型不能改变");
@@ -627,8 +651,10 @@ import java.util.stream.Collectors;

wxCoupon.setOrgInventory(oldCoupon.getInventory());
wxCoupon.setOrgRemainInventory(oldCoupon.getRemainInventory());
if((wxCoupon.getRemainInventory() - wxCoupon.getOrgRemainInventory()) != (wxCoupon.getInventory() - wxCoupon.getOrgInventory())) {
// 库存要保证,同增同减
Integer newSale1 = wxCoupon.getRemainInventory() - wxCoupon.getOrgRemainInventory();
Integer oldSale1 = wxCoupon.getInventory() - wxCoupon.getOrgInventory();
if (!newSale1.equals(oldSale1)) {
// 库存要保证,同增同减
logger.error("券库存要保证同增同减");
return new ResultData(ErrorCode.COUPON_STOCK_NO_EQUAL_ERR);
}


+ 20
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java View File

@@ -13,6 +13,7 @@ import com.iformall.domain.po.msg.WxMsgRecord;
import com.iformall.domain.vo.FlowUserVo;
import com.iformall.domain.vo.UserTaskVo;
import com.iformall.domain.vo.WxBillAll;
import com.iformall.domain.vo.WxCouponChannelVo;
import com.iformall.enums.*;
import com.iformall.mapper.*;
import com.iformall.mq.MqBaseProducer;
@@ -38,6 +39,8 @@ import org.flowable.task.api.TaskQuery;
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 org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -90,6 +93,9 @@ public class WxFlowServiceImpl implements WxFlowService {
private WxBillSettleMapper wxBillSettleMapper;
@Autowired
private WxBillSettleService wxBillSettleService;
@Autowired
@Qualifier("couponChannelRedisTemplate")
RedisTemplate<String, PageInfo<WxCouponChannelVo>> cdRedisTemplate;

/**
* 获取流程key
@@ -286,6 +292,7 @@ public class WxFlowServiceImpl implements WxFlowService {
wxCoupon.setRemainInventory(remainInventory);
wxCoupon.setType(type);
wxCoupon.setValidType(validType);
wxCoupon.setTenantId(wxCoupon.getTenantId());
wxCouponService.updateCouponStockAndEndTime(wxCoupon);
}
}else if(EnumCouponAppType.CANCLE.getCode().equals(operateType)){
@@ -298,6 +305,8 @@ public class WxFlowServiceImpl implements WxFlowService {
}
wxCoupon.setApprovalType(operateType);
wxCouponMapper.updateById(wxCoupon);
//清除缓存
clearCache(wxCoupon.getTenantId());
}else if(EnumFlowKey.SETTLE.getCode().equals(flowType)){
WxBillSettle wxBillSettle = new WxBillSettle();
wxBillSettle.setId(businessId);
@@ -323,6 +332,17 @@ public class WxFlowServiceImpl implements WxFlowService {
}
}

/**
* 清除c端首页卷列表缓存
* @param tenantId
*/
public void clearCache(String tenantId){
for (int i = 1; i <=5 ; i++) {
String key = EnumCacheKey.C_INDEX_PAGE_LIST.getMessage()+tenantId+"_" + i + ":";
cdRedisTemplate.delete(key);
}
}

public Map<String,Object> mallUserInfoToMap(MallUserInfo userInfo){
try {
Map<String, Object> map = new HashMap<>();


+ 0
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java View File

@@ -18,7 +18,6 @@ import com.iformall.mapper.*;
import com.iformall.mq.MqBaseProducer;
import com.iformall.service.*;
import com.iformall.utils.*;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;


+ 5
- 1
mallinkService/src/main/resources/mapper/WxCouponMapper.xml View File

@@ -271,7 +271,11 @@
SET
`remain_inventory` = #{remainInventory}, `inventory` = #{inventory},
`valid_type` = #{validType}, `valid_end_date` = #{validEndDate}, `valid_days` = #{validDays}
WHERE `tenant_id` = #{tenantId} and id = #{id} and `remain_inventory` = #{orgRemainInventory} and `inventory` = #{orgInventory}
WHERE 1=1
<if test=" null != tenantId ">
and `tenant_id` = #{tenantId}
</if>
and id = #{id} and `remain_inventory` = #{orgRemainInventory} and `inventory` = #{orgInventory}
</update>




+ 1
- 1
mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml View File

@@ -141,7 +141,7 @@
(select count(*) as coupon_count,coupon_id from wx_coupon_password
where tenant_id=#{tenantId} and status=0 group by coupon_id) cp
inner join wx_coupon c on cp.coupon_id = c.id
where c.tenant_id=#{tenantId} and c.status=0
where c.tenant_id=#{tenantId} and c.status=0 and c.put_apply_status in(0,2)
<if test=" null != couponId ">
and cp.`coupon_id` = #{couponId}
</if>


+ 19
- 0
mallinkSysAdmin/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,6 +1,8 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -156,6 +158,23 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);
// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


+ 20
- 0
mallinkWebSocketServer/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -1,6 +1,8 @@
package com.iformall.config;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxCouponChannelVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
@@ -141,6 +143,24 @@ public class RedisConfig extends CachingConfigurerSupport {
return template;
}

@Bean("couponChannelRedisTemplate")
public RedisTemplate<String, PageInfo<WxCouponChannelVo>> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, PageInfo<WxCouponChannelVo>> template = new RedisTemplate<>();

Jackson2JsonRedisSerializer<PageInfo> j = new Jackson2JsonRedisSerializer<PageInfo>(PageInfo.class);

// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}

@Bean("buserTokenRedisTemplate")
public RedisTemplate<String, WxBuser> getBuserTokenRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxBuser> template = new RedisTemplate();


Loading…
Cancel
Save