1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package com.ylx.massage.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.ylx.massage.domain.Coupon;
- import com.ylx.massage.domain.vo.CouponReceiveVo;
- import com.ylx.massage.mapper.CouponReceiveMapper;
- import com.ylx.massage.domain.CouponReceive;
- import com.ylx.massage.service.CouponReceiveService;
- import com.ylx.massage.service.CouponService;
- import com.ylx.massage.utils.DateTimeUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * 优惠券领取表(CouponReceive)表服务实现类
- *
- * @author makejava
- * @since 2024-05-14 11:25:45
- */
- @Service("couponReceiveService")
- public class CouponReceiveServiceImpl extends ServiceImpl<CouponReceiveMapper, CouponReceive> implements CouponReceiveService {
- @Resource
- private CouponService couponService;
- @Resource
- private CouponReceiveMapper couponReceiveMapper;
- @Override
- public Coupon submit(CouponReceive couponReceive) {
- LambdaQueryWrapper<CouponReceive> queryWrapper = new LambdaQueryWrapper<>();
- Coupon coupon = couponService.getById(couponReceive.getCouponId());
- if (coupon == null) {
- return null;
- }
- queryWrapper.eq(CouponReceive::getOpenid, couponReceive.getOpenid()).eq(CouponReceive::getCouponId, couponReceive.getCouponId());
- //限制没人只能领x张
- List<CouponReceive> one = this.list(queryWrapper);
- if (coupon.getUserLimit() <= one.size()) {
- return null;
- }
- couponReceive.setExpirationTime(DateTimeUtils.addDays(new Date(), coupon.getTermDays()));
- this.save(couponReceive);
- return coupon;
- }
- @Override
- public List<CouponReceiveVo> getByOpenId(String openid) {
- return couponReceiveMapper.getByOpenId(openid);
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void removeCoupons(List<CouponReceiveVo> coupons) {
- boolean b = this.removeByIds(coupons.stream().map(CouponReceiveVo::getId).collect(Collectors.toList()));
- //使用数量+1
- coupons.forEach(coup -> {
- UpdateWrapper<Coupon> wrapper = new UpdateWrapper<>();
- wrapper.lambda().eq(Coupon::getId, coup.getCouponId());
- wrapper.setSql(" used_num = used_num + " + 1);
- couponService.update(wrapper);
- });
- }
- }
|