mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-22 15:21:53 +08:00
Review代码修改
This commit is contained in:
parent
7d68bdc7c8
commit
a04a3a27a9
@ -1,6 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.promotion.dal.mysql.coupon;
|
package cn.iocoder.yudao.module.promotion.dal.mysql.coupon;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
@ -8,7 +8,6 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|||||||
import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageReqVO;
|
import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageReqVO;
|
||||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponDO;
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponDO;
|
||||||
import cn.iocoder.yudao.module.promotion.enums.common.PromotionProductScopeEnum;
|
import cn.iocoder.yudao.module.promotion.enums.common.PromotionProductScopeEnum;
|
||||||
import cn.iocoder.yudao.module.promotion.service.coupon.bo.CouponTakeCountBO;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.github.yulichang.toolkit.MPJWrappers;
|
import com.github.yulichang.toolkit.MPJWrappers;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
@ -16,9 +15,12 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠劵 Mapper
|
* 优惠劵 Mapper
|
||||||
*
|
*
|
||||||
@ -70,14 +72,16 @@ public interface CouponMapper extends BaseMapperX<CouponDO> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO @疯狂:这个是不是搞个 Map 就可以呀?
|
default Map<Long, Integer> selectCountByUserIdAndTemplateIdIn(Long userId, Collection<Long> templateIds) {
|
||||||
default List<CouponTakeCountBO> selectCountByUserIdAndTemplateIdIn(Long userId, Collection<Long> templateIds) {
|
String templateIdAlias = "templateId";
|
||||||
return BeanUtil.copyToList(selectMaps(MPJWrappers.lambdaJoin(CouponDO.class)
|
String countAlias = "count";
|
||||||
.select(CouponDO::getTemplateId)
|
List<Map<String, Object>> list = selectMaps(MPJWrappers.lambdaJoin(CouponDO.class)
|
||||||
.selectCount(CouponDO::getId, CouponTakeCountBO::getCount)
|
.selectAs(CouponDO::getTemplateId, templateIdAlias)
|
||||||
|
.selectCount(CouponDO::getId, countAlias)
|
||||||
.eq(CouponDO::getUserId, userId)
|
.eq(CouponDO::getUserId, userId)
|
||||||
.in(CouponDO::getTemplateId, templateIds)
|
.in(CouponDO::getTemplateId, templateIds)
|
||||||
.groupBy(CouponDO::getTemplateId)), CouponTakeCountBO.class);
|
.groupBy(CouponDO::getTemplateId));
|
||||||
|
return convertMap(list, map -> MapUtil.getLong(map, templateIdAlias), map -> MapUtil.getInt(map, countAlias));
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<CouponDO> selectListByUserIdAndStatusAndUsePriceLeAndProductScope(
|
default List<CouponDO> selectListByUserIdAndStatusAndUsePriceLeAndProductScope(
|
||||||
|
@ -1,18 +1,16 @@
|
|||||||
package cn.iocoder.yudao.module.promotion.service.coupon;
|
package cn.iocoder.yudao.module.promotion.service.coupon;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageReqVO;
|
import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.coupon.CouponPageReqVO;
|
||||||
import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon.AppCouponMatchReqVO;
|
import cn.iocoder.yudao.module.promotion.controller.app.coupon.vo.coupon.AppCouponMatchReqVO;
|
||||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponDO;
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponDO;
|
||||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.coupon.CouponTemplateDO;
|
||||||
import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;
|
import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;
|
||||||
import cn.iocoder.yudao.module.promotion.service.coupon.bo.CouponTakeCountBO;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠劵 Service 接口
|
* 优惠劵 Service 接口
|
||||||
*
|
*
|
||||||
@ -132,11 +130,8 @@ public interface CouponService {
|
|||||||
* @return 领取优惠券的数量
|
* @return 领取优惠券的数量
|
||||||
*/
|
*/
|
||||||
default Integer getTakeCount(Long templateId, Long userId) {
|
default Integer getTakeCount(Long templateId, Long userId) {
|
||||||
return CollUtil.emptyIfNull(getTakeCountListByTemplateIds(Collections.singleton(templateId), userId))
|
Map<Long, Integer> map = getTakeCountMapByTemplateIds(Collections.singleton(templateId), userId);
|
||||||
.stream()
|
return MapUtil.getInt(map, templateId, 0);
|
||||||
.findFirst()
|
|
||||||
.map(CouponTakeCountBO::getCount)
|
|
||||||
.orElse(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -146,19 +141,7 @@ public interface CouponService {
|
|||||||
* @param userId 用户编号
|
* @param userId 用户编号
|
||||||
* @return 领取优惠券的数量
|
* @return 领取优惠券的数量
|
||||||
*/
|
*/
|
||||||
default Map<Long, Integer> getTakeCountMapByTemplateIds(Collection<Long> templateIds, Long userId) {
|
Map<Long, Integer> getTakeCountMapByTemplateIds(Collection<Long> templateIds, Long userId);
|
||||||
return convertMap(getTakeCountListByTemplateIds(templateIds, userId),
|
|
||||||
CouponTakeCountBO::getTemplateId, CouponTakeCountBO::getCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 统计会员领取优惠券的数量
|
|
||||||
*
|
|
||||||
* @param templateIds 优惠券模板编号列表
|
|
||||||
* @param userId 用户编号
|
|
||||||
* @return 领取优惠券的数量
|
|
||||||
*/
|
|
||||||
List<CouponTakeCountBO> getTakeCountListByTemplateIds(Collection<Long> templateIds, Long userId);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户匹配的优惠券列表
|
* 获取用户匹配的优惠券列表
|
||||||
|
@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.promotion.service.coupon;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollStreamUtil;
|
import cn.hutool.core.collection.CollStreamUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.ListUtil;
|
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
@ -21,7 +20,6 @@ import cn.iocoder.yudao.module.promotion.dal.mysql.coupon.CouponMapper;
|
|||||||
import cn.iocoder.yudao.module.promotion.enums.coupon.CouponStatusEnum;
|
import cn.iocoder.yudao.module.promotion.enums.coupon.CouponStatusEnum;
|
||||||
import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;
|
import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTakeTypeEnum;
|
||||||
import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTemplateValidityTypeEnum;
|
import cn.iocoder.yudao.module.promotion.enums.coupon.CouponTemplateValidityTypeEnum;
|
||||||
import cn.iocoder.yudao.module.promotion.service.coupon.bo.CouponTakeCountBO;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -29,10 +27,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collection;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
@ -191,9 +186,9 @@ public class CouponServiceImpl implements CouponService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<CouponTakeCountBO> getTakeCountListByTemplateIds(Collection<Long> templateIds, Long userId) {
|
public Map<Long, Integer> getTakeCountMapByTemplateIds(Collection<Long> templateIds, Long userId) {
|
||||||
if (CollUtil.isEmpty(templateIds)) {
|
if (CollUtil.isEmpty(templateIds)) {
|
||||||
return ListUtil.empty();
|
return Collections.emptyMap();
|
||||||
}
|
}
|
||||||
return couponMapper.selectCountByUserIdAndTemplateIdIn(userId, templateIds);
|
return couponMapper.selectCountByUserIdAndTemplateIdIn(userId, templateIds);
|
||||||
}
|
}
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.promotion.service.coupon.bo;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 优惠券领取数量 BO
|
|
||||||
*
|
|
||||||
* @author owen
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class CouponTakeCountBO {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 优惠劵模板编号
|
|
||||||
*/
|
|
||||||
private Long templateId;
|
|
||||||
/**
|
|
||||||
* 领取数量
|
|
||||||
*/
|
|
||||||
private Integer count;
|
|
||||||
|
|
||||||
}
|
|
@ -32,7 +32,6 @@ public class TradeStatisticsController {
|
|||||||
@Resource
|
@Resource
|
||||||
private TradeStatisticsService tradeStatisticsService;
|
private TradeStatisticsService tradeStatisticsService;
|
||||||
|
|
||||||
// TODO @疯狂:要不这个就是 /trend/summary 的特例,前端自己查询两次?
|
|
||||||
@GetMapping("/summary")
|
@GetMapping("/summary")
|
||||||
@Operation(summary = "获得交易统计")
|
@Operation(summary = "获得交易统计")
|
||||||
@PreAuthorize("@ss.hasPermission('statistics:trade:query')")
|
@PreAuthorize("@ss.hasPermission('statistics:trade:query')")
|
||||||
@ -40,7 +39,6 @@ public class TradeStatisticsController {
|
|||||||
return success(tradeStatisticsService.getTradeSummaryComparison());
|
return success(tradeStatisticsService.getTradeSummaryComparison());
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO @疯狂:直接 comparison?主要 trend 和 comparison 二选一,一个是数据趋势,一个是数据对比哈;
|
|
||||||
@GetMapping("/trend/summary")
|
@GetMapping("/trend/summary")
|
||||||
@Operation(summary = "获得交易状况统计")
|
@Operation(summary = "获得交易状况统计")
|
||||||
@PreAuthorize("@ss.hasPermission('statistics:trade:query')")
|
@PreAuthorize("@ss.hasPermission('statistics:trade:query')")
|
||||||
|
Loading…
Reference in New Issue
Block a user