领券中心列表

pull/1/head
wqy 2 years ago
parent cdf0ebe536
commit cea5007a85

@ -0,0 +1,40 @@
package com.cyl.manager.act.controller;
import com.cyl.manager.act.domain.entity.CouponActivity;
import com.cyl.manager.act.domain.entity.IntegralHistory;
import com.cyl.manager.act.domain.query.CouponActivityQuery;
import com.cyl.manager.act.domain.query.IntegralHistoryQuery;
import com.cyl.manager.act.domain.vo.CouponActivityVO;
import com.cyl.manager.act.service.CouponActivityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(description = "优惠券接口列表")
@RestController
@RequestMapping("/h5/coupon")
public class H5CouponController {
@Autowired
private CouponActivityService couponActivityService;
@ApiOperation("优惠券活动列表")
@PostMapping("/activity/list")
public ResponseEntity<Page<CouponActivityVO>> list(Pageable page) {
//获取所有未过期且运行中的活动
return ResponseEntity.ok(couponActivityService.selectListByH5(page));
}
@GetMapping("/activity/get")
public ResponseEntity<CouponActivity> getDetail(Long id) {
CouponActivity detail = couponActivityService.getDetail(id);
return ResponseEntity.ok(detail);
}
}

@ -93,5 +93,11 @@ public class CouponActivityVO {
private List<Product> productList; private List<Product> productList;
//使用的张数
private Integer useCount; private Integer useCount;
private Boolean canGet;
//获取的张数
private Integer getCount;
} }

@ -2,6 +2,7 @@ package com.cyl.manager.act.mapper;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Stream; import java.util.stream.Stream;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -24,4 +25,6 @@ public interface MemberCouponMapper extends BaseMapper<MemberCoupon> {
List<MemberCoupon> selectByEntity(MemberCoupon memberCoupon); List<MemberCoupon> selectByEntity(MemberCoupon memberCoupon);
List<CouponActivityVO> countUseCoupon(@Param("couponIds") Collection<Long> couponIds); List<CouponActivityVO> countUseCoupon(@Param("couponIds") Collection<Long> couponIds);
List<CouponActivityVO> countGetCoupon(@Param("couponIds") Set<Long> ids, @Param("memberId") Long memberId);
} }

@ -7,6 +7,7 @@ import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cyl.h5.config.SecurityUtil;
import com.cyl.manager.act.domain.entity.MemberCoupon; import com.cyl.manager.act.domain.entity.MemberCoupon;
import com.cyl.manager.act.domain.vo.CouponActivityVO; import com.cyl.manager.act.domain.vo.CouponActivityVO;
import com.cyl.manager.act.mapper.MemberCouponMapper; import com.cyl.manager.act.mapper.MemberCouponMapper;
@ -109,6 +110,21 @@ public class CouponActivityService {
return new PageImpl<>(resList, page, total); return new PageImpl<>(resList, page, total);
} }
public CouponActivity getDetail(Long id) {
return couponActivityMapper.selectById(id);
// if (couponActivity == null) {
// return null;
// }
// CouponActivityVO res = new CouponActivityVO();
// BeanUtils.copyProperties(couponActivity,res);
// if (Arrays.asList(2, 3).contains(couponActivity.getUseScope()) && StringUtils.isNotEmpty(couponActivity.getProductIds())) {
// List<Product> products = productMapper.selectBatchIds(Arrays.stream(couponActivity.getProductIds().split(",")).map(item -> Long.parseLong(item)).collect(Collectors.toSet()));
// res.setProductList(products);
// }
// return res;
}
/** /**
* *
* *
@ -146,4 +162,36 @@ public class CouponActivityService {
public int deleteById(Long id) { public int deleteById(Long id) {
return couponActivityMapper.deleteById(id); return couponActivityMapper.deleteById(id);
} }
public Page<CouponActivityVO> selectListByH5(Pageable page) {
PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize());
QueryWrapper<CouponActivity> qw = new QueryWrapper<>();
LocalDateTime now = LocalDateTime.now();
qw.lt("begin_time", now)
.gt("end_time", now);
List<CouponActivity> list = couponActivityMapper.selectList(qw);
if (CollectionUtil.isEmpty(list)) {
return new PageImpl<>(Collections.emptyList(), page, 0);
}
long total = ((com.github.pagehelper.Page) list).getTotal();
//看用户已领取的张数
Set<Long> ids = list.stream().map(it -> it.getId()).collect(Collectors.toSet());
Map<Long, Integer> countMap = memberCouponMapper.countGetCoupon(ids, SecurityUtil.getLocalMember().getId()).stream().collect(Collectors.toMap(it -> it.getId(), it -> it.getGetCount()));
List<CouponActivityVO> resList = new ArrayList<>();
for (CouponActivity it : list) {
CouponActivityVO vo = new CouponActivityVO();
BeanUtils.copyProperties(it, vo);
Integer integer = countMap.get(it.getId());
if (integer == null || integer < it.getUserLimit()) {
vo.setGetCount(integer == null ? 0 : integer);
vo.setCanGet(true);
} else {
vo.setGetCount(integer);
vo.setCanGet(false);
}
resList.add(vo);
}
return new PageImpl<>(resList, page, total);
}
} }

@ -75,4 +75,6 @@ public class ProductQuery {
//排查的id //排查的id
private List<Long> excludeProductIds; private List<Long> excludeProductIds;
private List<Long> ids;
} }

@ -98,6 +98,9 @@ public class ProductService {
if (CollectionUtil.isNotEmpty(query.getExcludeProductIds())) { if (CollectionUtil.isNotEmpty(query.getExcludeProductIds())) {
qw.notIn("id",query.getExcludeProductIds()); qw.notIn("id",query.getExcludeProductIds());
} }
if (CollectionUtil.isNotEmpty(query.getIds())) {
qw.in("id",query.getIds());
}
return productMapper.selectList(qw); return productMapper.selectList(qw);
} }

@ -56,4 +56,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and use_status = 1 and use_status = 1
group by coupon_activity_id group by coupon_activity_id
</select> </select>
<select id="countGetCoupon" resultType="com.cyl.manager.act.domain.vo.CouponActivityVO">
select coupon_activity_id as id,count(1) as getCount
from act_member_coupon
where coupon_activity_id in
<foreach collection="couponIds" close=")" index="index" item="item" open="(" separator=",">
#{item}
</foreach>
and member_id = #{memberId}
group by coupon_activity_id
</select>
</mapper> </mapper>

Loading…
Cancel
Save