1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package com.example.demo.coupon.service.impl;
- import cn.hutool.core.util.IdUtil;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.example.demo.common.utils.TokenUtils;
- import com.example.demo.coupon.dao.CouponMapper;
- import com.example.demo.coupon.domain.Coupon;
- import com.example.demo.coupon.domain.UserCoupon;
- import com.example.demo.coupon.dto.UserCouponDto;
- import com.example.demo.coupon.service.UserCouponService;
- import com.example.demo.coupon.dao.UserCouponMapper;
- import com.example.demo.user.vo.ResultVo;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.Calendar;
- import java.util.Date;
- /**
- * @author 徐乐
- * @description 针对表【user_coupon(用户优惠券记录表)】的数据库操作Service实现
- * @createDate 2025-06-17 18:40:22
- */
- @Service
- public class UserCouponServiceImpl extends ServiceImpl<UserCouponMapper, UserCoupon>
- implements UserCouponService{
- @Autowired
- private CouponMapper couponMapper;
- @Autowired
- private UserCouponMapper userCouponMapper;
- @Override
- public ResultVo userGetCoupon(UserCouponDto dto, String token) {
- Long userId = TokenUtils.getUserId(token);
- if (userId==null){
- return ResultVo.error(101,"请先登录");
- }
- UserCoupon userCoupon = new UserCoupon();
- userCoupon.setId(IdUtil.getSnowflake().nextId());
- userCoupon.setUserId(userId);
- Coupon coupon = couponMapper.selectById(dto.getCouponId());
- userCoupon.setCouponId(coupon.getId());
- userCoupon.setCouponName(coupon.getCouponName());
- userCoupon.setAmount(coupon.getAmount());
- coupon.setRemainCount(coupon.getRemainCount()-1);
- userCoupon.setObtainTime(new Date());
- userCoupon.setUseTime(null);
- // 处理 endTime:基于 startTime 延长 7 天
- Date startTime = userCoupon.getObtainTime();
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(startTime);
- // 关键:Calendar.DAY_OF_MONTH 代表日期字段,加 7 天
- calendar.add(Calendar.DAY_OF_MONTH, 7);
- Date endTime = calendar.getTime();
- userCoupon.setExpireTime(endTime);
- userCouponMapper.insert(userCoupon);
- couponMapper.updateById(coupon);
- return ResultVo.success("用户领取优惠券成功");
- }
- }
|