java后端缓存 And BaseMapper


java后端缓存 And BaseMapper


缓存

@Slf4j
@Component
public class RetailerStatisticCacher {

    private LoadingCache<Pair<Long,String>, SettleStatisticDto> retailerStatisticCache;

    @RpcConsumer(check = "false")
    private SettleStatisticService settleStatisticService;

    @PostConstruct
    public void init(){
        retailerStatisticCache = CacheBuilder.newBuilder()
                .expireAfterWrite(2, TimeUnit.MINUTES)
                .maximumSize(5000)
                .build(new CacheLoader<Pair<Long,String> , SettleStatisticDto>() {
                    @Override
                    public SettleStatisticDto load(Pair<Long,String> sort) throws Exception {

                            Response<SettleStatisticDto> retailerStatisticDto =
                                    settleStatisticService.retailerStatistic(sort.first,sort.second);
                            if (!retailerStatisticDto.isSuccess()){
                                throw new ServiceException(retailerStatisticDto.getError());
                            }
                            return retailerStatisticDto.getResult();
                    }
                });
    }
    /**
     * 根据 查找对应的信息
     */
    public SettleStatisticDto findStatisticStatistic(Long retailerId, String settleMonth) {
        return RespHelper.or500(settleStatisticService.retailerStatistic(retailerId,settleMonth));
//        Pair<Long, String> packageIdAndAddressIdPair = Pair.of(retailerId, settleMonth);
//        return retailerStatisticCache.getUnchecked(packageIdAndAddressIdPair);
    }

    /**
     * 缓存全部失效
     */
    public void invalidateAll() {
        this.retailerStatisticCache.invalidateAll();
    }

手动查询

@Mapper
public interface HisenseO2oSettleNewRetailMapper extends BaseMapper<HisenseO2oSettleNewRetail> {

}
private HisenseO2oSettleNewRetailMapper hisenseO2oSettleNewRetailMapper;

@Autowired
    public SettleStatisticServiceImpl(
            HisenseO2oSettleNewRetailMapper hisenseO2oSettleNewRetailMapper,
           ) {
        this.hisenseO2oSettleNewRetailMapper = hisenseO2oSettleNewRetailMapper;
    }


public Response<SettleStatisticDto> retailerStatistic(Long retailerId, String settleMonth) {
            QueryWrapper<HisenseO2oSettleNewRetail> theMonthSaleCriteria = new QueryWrapper<HisenseO2oSettleNewRetail>()
                    .select("COALESCE(sum(total_fee),0) as total_fee")
                    .eq("shop_id", sellerId)
                    .eq("type",OrderSource.SHOP.getValue())
                    .in("fee_type",FeeType.PAYMENT_GOODS.getValue())
                    .ge("settle_month", settleMonth)
                    .lt("settle_status", RebateSettleStatus.ALREADY_SETTLE.value());

            HisenseO2oSettleNewRetail thisMonthSaleFee = hisenseO2oSettleNewRetailMapper.selectOne(theMonthSaleCriteria);
            .......
            .......
            .......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值