优惠券项目---------------第十三章

根据用户id查看优惠券的信息。

放缓存?要想是什么缓存,是单机的还是redis分布式?放在缓存是读多写少的高并发的场景的。

方案:加索引。

用户优惠券列表返回值

package com.xdclass.couponserviceapi.dto;

import java.io.Serializable;

/**
 * @author daniel
 * 用户优惠券列表返回值
 */
public class UserCouponInfoDto extends UserCouponDto implements Serializable {
    /**
     * 优惠金额
     */
    private Integer reduceAmount;
    /**
     * 达到金额,如满500减50
     */
    private Integer achieveAmount;
    public Integer getReduceAmount() {
        return reduceAmount;
    }
    public void setReduceAmount(Integer reduceAmount) {
        this.reduceAmount = reduceAmount;
    }
    public Integer getAchieveAmount() {
        return achieveAmount;
    }
    public void setAchieveAmount(Integer achieveAmount) {
        this.achieveAmount = achieveAmount;
    }
}
 @Override
    public List<UserCouponInfoDto> userCouponList(Integer userId) {
        List<UserCouponInfoDto> dtos = Lists.newArrayList();
        if(userId==null){
            return dtos;
        }
        List<TUserCoupon> userCoupon = getUserCoupon(userId);
        if(CollectionUtils.isEmpty(userCoupon)){
            return dtos;
        }
        Map<Integer,TCoupon> idCouponMap = getCouponMap(userCoupon);
        //封装coupon
        return wrapCoupon(userCoupon,idCouponMap);
    }

--------------------------------13-1-----------13-2------------------------------

rpc远程挑试:

第一步:写junit测试

--------------------------------13-3------------------------------

首先暴露接口出去。

 /***
     * 获取有效时间的可用优惠券列表
     * // 1、是否存在远程调用 HTTP、RPC Metrics
     * // 2、大量内存处理  list.contain() ==>set.contain
     * @return
     */
    public List<CouponDto> getCouponList();

    public String saveUserCoupon(UserCouponDto dto);

    public List<UserCouponInfoDto> userCouponList(Integer userId);

起shop项目,注意要修改下mysql的版本为5.1.46。

连起来了:

--------------------------------13-4------------------------------

发布了374 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_28764557/article/details/104798845