From 40ae1644108246dd911ffb070264ec00c71f55e0 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 30 May 2020 13:47:13 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=88=B8=E7=A0=81=E8=AF=A6=E6=83=85][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E5=88=B8=E7=A0=81=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxCouponOrderController.java | 50 +++++++++++++++++-- .../iformall/mapper/WxCouponOrderMapper.java | 1 + .../service/WxCouponOrderService.java | 2 + .../impl/WxCouponOrderServiceImpl.java | 8 +++ .../resources/mapper/WxCouponOrderMapper.xml | 12 ++++- 5 files changed, 68 insertions(+), 5 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 6be1ae997..264d4da3b 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -9,12 +9,14 @@ import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCardCVo; +import com.iformall.domain.vo.WxCouponCVo; import com.iformall.domain.vo.WxCouponOrderCVo; import com.iformall.enums.EnumCouponChannelActivityStatus; import com.iformall.enums.EnumCouponOrderStatus; import com.iformall.enums.EnumCouponOrderValidStatus; import com.iformall.service.MemCouponFromDspService; import com.iformall.service.WxCouponOrderService; +import com.iformall.service.WxCouponService; import com.iformall.utils.Constant; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -24,7 +26,10 @@ 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.StringRedisTemplate; +import org.springframework.data.redis.core.ValueOperations; import org.springframework.web.bind.annotation.*; import java.util.*; @@ -35,12 +40,18 @@ import java.util.*; public class WxCouponOrderController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + private WxCouponService wxCouponService; @Autowired private WxCouponOrderService wxCouponOrderService; @Autowired private MemCouponFromDspService memCouponFromDspService; + @Autowired + @Qualifier("couponDetailRedisTemplate") + RedisTemplate cdRedisTemplate; + @Autowired StringRedisTemplate stringRedisTemplate; @@ -82,7 +93,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(page); } - @RedisCache(expireTime = 300) + @RedisCache(expireTime = 100) @ApiOperation(value = "券详情接口") @GetMapping("detail") @ApiImplicitParams({ @@ -94,15 +105,46 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderId); - + WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId); if (wxCouponOrderCVo == null) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } - if (!wxCouponOrderCVo.getCUserId().equals(getUserId())) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } + WxCouponCVo wxCouponCVo = null; + String key = "cd:" + wxCouponOrderCVo.getCouponId(); + ValueOperations operations = cdRedisTemplate.opsForValue(); + // 缓存 + boolean hasKey = cdRedisTemplate.hasKey(key); + if (hasKey) { + // 从缓存获取用户信息 + wxCouponCVo = operations.get(key); + if (wxCouponCVo == null) { + return new ResultData(ErrorCode.COUPON_IS_EMPTY); + } + } else { + wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId()); + if (wxCouponCVo == null) { + return new ResultData(ErrorCode.COUPON_IS_EMPTY); + } + } + + wxCouponOrderCVo.setType(wxCouponCVo.getType()); + wxCouponOrderCVo.setCoverImg(wxCouponCVo.getCoverImg()); + wxCouponOrderCVo.setTitle(wxCouponCVo.getTitle()); + wxCouponOrderCVo.setSubTitle(wxCouponCVo.getSubTitle()); + wxCouponOrderCVo.setSalePrice(wxCouponCVo.getSalePrice()); + wxCouponOrderCVo.setUsePrice(wxCouponCVo.getUsePrice()); + wxCouponOrderCVo.setPrice(wxCouponCVo.getPrice()); + wxCouponOrderCVo.setUnit(wxCouponCVo.getUnit()); + wxCouponOrderCVo.setDetail(wxCouponCVo.getDetail()); + wxCouponOrderCVo.setRemark(wxCouponCVo.getRemark()); + wxCouponOrderCVo.setValidType(wxCouponCVo.getValidType()); + wxCouponOrderCVo.setValidStartDate(wxCouponCVo.getValidStartDate()); + wxCouponOrderCVo.setValidEndDate(wxCouponCVo.getValidEndDate()); + wxCouponOrderCVo.setAutoRefund(wxCouponCVo.getAutoRefund()); + Date now = new Date(); if (wxCouponOrderCVo.getValidStartDate() != null && wxCouponOrderCVo.getValidEndDate() != null ) { if (wxCouponOrderCVo.getValidStartDate().getTime() > now.getTime()) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java index 0c282b5c5..dd945dc8c 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java @@ -41,6 +41,7 @@ public interface WxCouponOrderMapper extends CommonMapper { List findListOfCUser(WxCouponOrder wxCouponOrder); WxCouponOrderCVo findDetailOfCUser(@Param("id")Long id); + WxCouponOrderCVo findSimpleDetailOfCUser(@Param("id")Long id); List findListOfAdmin(WxCouponOrderBVo wxCouponOrder); WxCouponOrderBVo findDetailOfAdmin(@Param("id")Long id); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index aba815a45..5abb3da78 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -123,6 +123,8 @@ public interface WxCouponOrderService { */ WxCouponOrderCVo detailCUserVo(String couponOrderId); + WxCouponOrderCVo simpleDetailCUserVo(String couponOrderId); + /** * C用户查券carlist * diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index b6ba5c197..5ad0f6568 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -240,6 +240,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { return wxCouponOrderCVo; } + @Override + public WxCouponOrderCVo simpleDetailCUserVo(String couponOrderId) { + WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderMapper.findSimpleDetailOfCUser(Long.valueOf(couponOrderId)); + if (wxCouponOrderCVo == null) + throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); + return wxCouponOrderCVo; + } + @Override public ResultData carListCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize) { diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 9aae563c0..f69b38563 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -868,6 +868,10 @@ c.type,c.cover_img,c.title,c.sub_title,c.sale_price,c.use_price,c.price,c.unit,c.detail,c.remark,c.valid_type,c.valid_start_date,c.valid_end_date,c.auto_refund + + co.id,co.tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.verify_type + + @@ -941,11 +945,17 @@ + +