From 5d4eaa8e45fcffe7885ee45dbd48a7bd826de1f0 Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 13 May 2022 12:19:00 +0800 Subject: [PATCH] fix bug --- .../market/WxCouponChannelController.java | 20 ++++++++++++ .../controller/market/WxCouponController.java | 25 +++++++++++++-- .../controller/WxCouponChannelController.java | 16 ++++++++++ .../controller/WxCouponController.java | 22 +++++++++++-- .../controller/WxCouponController.java | 31 +------------------ .../service/impl/WxMerchantServiceImpl.java | 8 +++++ 6 files changed, 87 insertions(+), 35 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java index a911531e6..ae1318998 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java @@ -14,6 +14,7 @@ import com.iformall.domain.po.base.BaseEntity; import com.iformall.exception.MallinkException; import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxCouponService; +import com.iformall.service.util.CouponCacheUtils; import com.iformall.utils.RedisLock; import io.swagger.annotations.Api; @@ -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.web.bind.annotation.*; import java.util.ArrayList; @@ -45,6 +48,10 @@ public class WxCouponChannelController extends BaseController { @Autowired private WxCouponService wxCouponService; + + @Autowired + @Qualifier("objectCommonRedisTemplate") + RedisTemplate redisTemplate; @ApiOperation("分页列表接口") @GetMapping("list") @@ -86,6 +93,7 @@ public class WxCouponChannelController extends BaseController { if(couponChannel!=null){ wxCouponChannelService.updateQrCode(couponChannel,couponChannel.getId(),couponChannel.getType()); } + CouponCacheUtils.removeCouponChannelCache(redisTemplate, wxCouponChannel.getId()); return resultData; } @@ -109,6 +117,14 @@ public class WxCouponChannelController extends BaseController { String[] channelId = wxCouponChannelDto.getChannelId().split(","); ResultData resultData = wxCouponChannelService.addBatch(wxCouponChannelDto.getType(),ids, channelId, getTenantInfo(), wxCouponChannelDto.getShowBeginTime(), wxCouponChannelDto.getBeginTime(), wxCouponChannelDto.getEndTime(),wxCouponChannelDto.getChannelPrice(),wxCouponChannelDto.getChannelStock()); + + if (null != channelId && channelId.length > 0 ) { + for (String chId: channelId) { + if (!StringUtils.isBlank(chId)) { + CouponCacheUtils.removeCouponChannelCache(redisTemplate, Long.parseLong(chId)); + } + } + } return resultData; } @@ -149,6 +165,7 @@ public class WxCouponChannelController extends BaseController { wxCouponChannelService.setChannelStock(wxCouponChannel, wxCouponChannel.getChannelStock()); redisLock.setCouponStock(wxCouponChannel.getCouponId(), coupon.getRemainInventory()); redisLock.setCouponChannelStock(wxCouponChannel.getId(), wxCouponChannel.getChannelStock()); + CouponCacheUtils.removeCouponChannelCache(redisTemplate, wxCouponChannel.getId()); return new ResultData(Result.SUCCESS, "设置成功", ""); }catch(MallinkException e) { logger.error("setChannelStock error.",e); @@ -168,6 +185,7 @@ public class WxCouponChannelController extends BaseController { wxCouponChannelService.releaseChannelStock(wxCouponChannel); redisLock.removeCouponStock(wxCouponChannel.getCouponId()); redisLock.removeCouponChannelStock(wxCouponChannel.getId()); + CouponCacheUtils.removeCouponChannelCache(redisTemplate, wxCouponChannel.getId()); return new ResultData(Result.SUCCESS, "设置成功", ""); }catch(MallinkException e) { logger.error("releaseChannelStock error.",e); @@ -188,6 +206,7 @@ public class WxCouponChannelController extends BaseController { try { wxCouponChannel.updateTenantInfo(getTenantInfo()); wxCouponChannelService.setChannelPrice(wxCouponChannel); + CouponCacheUtils.removeCouponChannelCache(redisTemplate, wxCouponChannel.getId()); return new ResultData(Result.SUCCESS, "设置成功", ""); }catch(MallinkException e) { logger.error("setChannelPrice error.",e); @@ -205,6 +224,7 @@ public class WxCouponChannelController extends BaseController { wxCouponChannel.updateTenantInfo(getTenantInfo()); try { wxCouponChannelService.setChannelPrice(wxCouponChannel); + CouponCacheUtils.removeCouponChannelCache(redisTemplate, wxCouponChannel.getId()); return new ResultData(Result.SUCCESS, "设置成功", ""); }catch(MallinkException e) { logger.error("releaseSetChannelPrice error.",e); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java index 9413a5f8e..ad9b09ef8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -21,6 +21,7 @@ import com.iformall.service.WxCouponService; import com.iformall.service.WxFlowService; import com.iformall.service.WxMallService; import com.iformall.service.WxPayAccountService; +import com.iformall.service.util.CouponCacheUtils; import com.iformall.utils.DateUtils; import com.iformall.utils.RedisLock; @@ -34,6 +35,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.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -58,6 +61,10 @@ public class WxCouponController extends BaseController { private WxMallService wxMallService; @Autowired RedisLock redisLock; + + @Autowired + @Qualifier("objectCommonRedisTemplate") + RedisTemplate redisTemplate; @ApiOperation("分页列表接口") @GetMapping("list") @@ -170,6 +177,8 @@ public class WxCouponController extends BaseController { //修改coupon applyStatus状态为审核中 wxCoupon.setPutApplyStatus(EnumRentContractAppStatus.APPLYING.getCode()); } + CouponCacheUtils.setCouponCache(redisTemplate, wxCoupon.getId(), wxCoupon); + return resultData; } @@ -213,7 +222,10 @@ public class WxCouponController extends BaseController { } } - return wxCouponService.saveOrUpdate(wxCoupon); + ResultData result = wxCouponService.saveOrUpdate(wxCoupon); + CouponCacheUtils.removeCouponCache(redisTemplate, wxCoupon.getId()); + CouponCacheUtils.removeCouponMerchantCache(redisTemplate, wxCoupon.getId()); + return result; } @ApiOperation("根据id更新库存及有效期接口") @@ -336,7 +348,7 @@ public class WxCouponController extends BaseController { redisLock.setCouponStock(wxCoupon.getId(), wxCoupon.getRemainInventory()); return wxCouponService.updateCouponStockAndEndTime(wxCoupon); } - + CouponCacheUtils.removeCouponCache(redisTemplate, wxCoupon.getId()); return new ResultData(); } @@ -347,6 +359,8 @@ public class WxCouponController extends BaseController { public ResultData delete(Long id) { logger.debug("[" + getIpAddr() + "] WxCouponController::delete"); wxCouponService.deleteById(id,getTenantInfo().getTenantId()); + CouponCacheUtils.removeCouponCache(redisTemplate, id); + CouponCacheUtils.removeCouponMerchantCache(redisTemplate, id); return new ResultData(Result.SUCCESS, "删除成功", null); } @@ -498,6 +512,9 @@ public class WxCouponController extends BaseController { wxCouponPassword.setCouponId(0L); } couponPasswordService.exportData(request, response, wxCouponPassword); + if (null != wxCouponPassword.getCouponId()) { + CouponCacheUtils.removeCouponCache(redisTemplate, wxCouponPassword.getCouponId()); + } } @ApiOperation("根据id获取富文本接口") @@ -520,7 +537,9 @@ public class WxCouponController extends BaseController { return new ResultData(ResultData.ERROR, "缺少validEndDate"); } - return new ResultData(wxCouponService.cardDefer(wxCoupon.getId(),getTenantInfo().getTenantId(),wxCoupon.getValidEndDate())); + ResultData result = wxCouponService.cardDefer(wxCoupon.getId(),getTenantInfo().getTenantId(),wxCoupon.getValidEndDate()); + CouponCacheUtils.removeCouponCache(redisTemplate, wxCoupon.getId()); + return result; } } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponChannelController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponChannelController.java index 518a2d35d..08f36c65a 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponChannelController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponChannelController.java @@ -9,6 +9,8 @@ import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.vo.WxCouponChannelVo; import com.iformall.service.WxCouponChannelService; +import com.iformall.service.util.CouponCacheUtils; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -17,6 +19,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.web.bind.annotation.*; import java.util.ArrayList; @@ -32,6 +36,10 @@ public class WxCouponChannelController extends BaseController { @Autowired private WxCouponChannelService wxCouponChannelService; + + @Autowired + @Qualifier("objectCommonRedisTemplate") + RedisTemplate redisTemplate; @ApiOperation("分页列表接口") @GetMapping("list") @@ -68,6 +76,7 @@ public class WxCouponChannelController extends BaseController { if(couponChannel!=null){ wxCouponChannelService.updateQrCode(couponChannel,couponChannel.getId(),couponChannel.getType()); } + CouponCacheUtils.removeCouponChannelCache(redisTemplate, wxCouponChannel.getId()); return resultData; } @@ -88,6 +97,13 @@ public class WxCouponChannelController extends BaseController { String[] ids = wxCouponChannelDto.getCouponIds().split(","); String[] channelId = wxCouponChannelDto.getChannelId().split(","); ResultData resultData = wxCouponChannelService.addBatch(wxCouponChannelDto.getType(),ids, channelId, getTenantInfo(),wxCouponChannelDto.getShowBeginTime(), wxCouponChannelDto.getBeginTime(), wxCouponChannelDto.getEndTime(),null,null); + if (null != channelId && channelId.length > 0 ) { + for (String chId: channelId) { + if (!StringUtils.isBlank(chId)) { + CouponCacheUtils.removeCouponChannelCache(redisTemplate, Long.parseLong(chId)); + } + } + } return resultData; } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java index 3519b9c00..d2f61717f 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -17,6 +17,7 @@ import com.iformall.domain.vo.WxCouponStatisVo; import com.iformall.enums.*; import com.iformall.mapper.WxCouponChannelMapper; import com.iformall.service.*; +import com.iformall.service.util.CouponCacheUtils; import com.iformall.utils.DateUtils; import com.iformall.utils.RedisLock; import io.swagger.annotations.Api; @@ -29,6 +30,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.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -55,6 +58,10 @@ public class WxCouponController extends BaseController { private WxMallService wxMallService; @Autowired RedisLock redisLock; + + @Autowired + @Qualifier("objectCommonRedisTemplate") + RedisTemplate redisTemplate; @ApiOperation("分页列表接口") @GetMapping("list") @@ -217,6 +224,7 @@ public class WxCouponController extends BaseController { //修改coupon applyStatus状态为审核中 wxCoupon.setPutApplyStatus(EnumRentContractAppStatus.APPLYING.getCode()); } + CouponCacheUtils.setCouponCache(redisTemplate, wxCoupon.getId(), wxCoupon); return resultData; } @@ -252,7 +260,10 @@ public class WxCouponController extends BaseController { return new ResultData(ResultData.ERROR, "券未查询到。"+wxCoupon.getId()); } redisLock.setCouponStock(wxCoupon.getId(), coupon.getRemainInventory()); - return wxCouponService.saveOrUpdate(wxCoupon); + ResultData result = wxCouponService.saveOrUpdate(wxCoupon); + CouponCacheUtils.removeCouponCache(redisTemplate, wxCoupon.getId()); + CouponCacheUtils.removeCouponMerchantCache(redisTemplate, wxCoupon.getId()); + return result; } @ApiOperation("根据id更新库存及有效期接口") @@ -323,7 +334,9 @@ public class WxCouponController extends BaseController { } } redisLock.setCouponStock(wxCoupon.getId(), wxCoupon.getRemainInventory()); - return wxCouponService.updateCouponStockAndEndTime(wxCoupon); + ResultData result = wxCouponService.updateCouponStockAndEndTime(wxCoupon); + CouponCacheUtils.removeCouponCache(redisTemplate, wxCoupon.getId()); + return result; } @ApiOperation("根据id删除接口") @@ -335,6 +348,8 @@ public class WxCouponController extends BaseController { } logger.debug("[" + getIpAddr() + "] WxCouponController::delete"); wxCouponService.deleteById(id,getTenantInfo().getTenantId()); + CouponCacheUtils.removeCouponCache(redisTemplate, id); + CouponCacheUtils.removeCouponMerchantCache(redisTemplate, id); return new ResultData(Result.SUCCESS, "删除成功", null); } @@ -433,6 +448,9 @@ public class WxCouponController extends BaseController { wxCouponPassword.setCouponId(0L); } couponPasswordService.exportData(request, response, wxCouponPassword); + if (null != wxCouponPassword.getCouponId()) { + CouponCacheUtils.removeCouponCache(redisTemplate, wxCouponPassword.getCouponId()); + } } @ApiOperation("根据id获取富文本接口") diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java index b39e4b260..ec00a11b1 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -221,10 +221,7 @@ public class WxCouponController extends BaseController { } - @Autowired - @Qualifier("objectCommonRedisTemplate") - RedisTemplate objectCommonRedisTemplate; - + @Deprecated @ApiOperation("根据id(couponChannel)查询接口") @GetMapping("/detail") @ApiImplicitParams({ @@ -371,32 +368,6 @@ public class WxCouponController extends BaseController { return new ResultData(wxCouponCVo); } -// @ApiOperation("根据id(couponId)查询接口") -// @GetMapping("/getMerchantList") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "couponId", value = "couponId", dataType = "String", paramType = "query", required = true) -// }) -// public ResultData getMerchantList(Long couponId) { -// -// if (couponId == null) { -// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); -// } -// -// String key = Constant.coupon_merchants_key+getTenantInfo().getTenantId()+":"+couponId; -// -// List valueList = RedisCacheUtils.getCacheListObject(objectCommonRedisTemplate, key, WxMerchantVo.class); -// if(valueList != null && valueList.size() > 0){ -// return new ResultData(valueList); -// } -// valueList = couponService.getCouponMerchantList(getTenantInfo(),couponId); -// if(valueList == null || valueList.size() == 0){ -// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); -// } -// -// RedisCacheUtils.cache(objectCommonRedisTemplate,key,valueList,3600l); -// return new ResultData(valueList); -// } - private WxCouponCVo generateWxCouponCVo(Long couponChannelIdL,String tenantId) { WxCouponChannel cc = wxCouponChannelService.getById(couponChannelIdL,tenantId); if (cc == null) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 5eb3ac0fd..e80c43b18 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -19,6 +19,7 @@ import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.*; +import com.iformall.service.util.CouponCacheUtils; import com.iformall.utils.Constant; import com.iformall.utils.DateUtils; import org.apache.commons.collections.CollectionUtils; @@ -26,7 +27,9 @@ 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.context.annotation.Lazy; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; @@ -143,6 +146,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { @Autowired WxBrandMapper wxBrandMapper; + + @Autowired + @Qualifier("objectCommonRedisTemplate") + RedisTemplate redisTemplate; @Override public PageInfo listAsPage(WxMerchant record, Integer pageIndex, Integer pageSize) { @@ -446,6 +453,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxCoupon.updateTenantInfo(wxMerchant); wxCoupon.setStatus(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode()); wxCouponService.saveOrUpdate(wxCoupon); + CouponCacheUtils.removeCouponMerchantCache(redisTemplate, cid); }); } }