RowKeyGenUtil 卡券生成_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > RowKeyGenUtil 卡券生成

RowKeyGenUtil 卡券生成

 2020/3/17 12:13:04  anlinko  程序员俱乐部  我要评论(0)
  • 摘要:packagecom.njupt.passbook.utils;importcom.njupt.passbook.vo.Feedback;importcom.njupt.passbook.vo.GainPassTemplateRequest;importcom.njupt.passbook.vo.PassTemplate;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.codec.digest.DigestUtils
  • 标签:KEY
class="java" name="code">

package com.njupt.passbook.utils;

import com.njupt.passbook.vo.Feedback;
import com.njupt.passbook.vo.GainPassTemplateRequest;
import com.njupt.passbook.vo.PassTemplate;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;

/**
 * <h1>RowKey 生成器工具类</h1>
 * */
@Slf4j
public class RowKeyGenUtil {
    /**
     * <h2>根据提供的 PassTemplate 对象生成 RowKey</h2>
     * @param passTemplate {@link PassTemplate}
     * @return String RowKey
     * */
    public static String genPassTemplateRowKey(PassTemplate passTemplate){
        String passInfo=String.valueOf(passTemplate.getId())+"_"+passTemplate.getTitle();
        String rowKey= DigestUtils.md5Hex(passInfo);
        log.info("GenPassTemplateRowKey:{},{}",passInfo,rowKey);
        return rowKey;
    }

    /**
     * <h2>根据提供的领取优惠券请求生成 RowKey,只可以在领取优惠券的时候使用</h2>
     * Pass RowKey=reversed(userId)+inverse(timestamp)+PassTemplate RowKey
     * @param request {@link GainPassTemplateRequest}
     * @return String RowKey
     * */
    public static String genPassRowKey(GainPassTemplateRequest request){

        return new StringBuilder(String.valueOf(request.getUserId())).reverse().toString()
                + (Long.MAX_VALUE-System.currentTimeMillis())
                + genPassTemplateRowKey(request.getPassTemplate());

    }


    /**
     * <h2>根据 Feedback 构造 RowKey</h2>
     * @param feedback {@link Feedback}
     * @return String RowKey
     * */
    public static String genFeedbackRowKey(Feedback feedback){

        return new StringBuilder(String.valueOf(feedback.getUserId())).reverse().toString() +
                (Long.MAX_VALUE-System.currentTimeMillis());



    }


}

上一篇: Java多线程并发之同步容器和并发容器-第一篇 下一篇: 没有下一篇了!
发表评论
用户名: 匿名