|
|
@@ -6,11 +6,13 @@ import java.util.List;
|
|
|
|
|
|
import com.fs.common.core.domain.R;
|
|
|
import com.fs.common.core.redis.RedisCache;
|
|
|
+import com.fs.common.exception.CustomException;
|
|
|
import com.fs.common.utils.DateUtils;
|
|
|
import com.fs.hisStore.domain.*;
|
|
|
import com.fs.hisStore.mapper.*;
|
|
|
import com.fs.hisStore.param.FsCouponIssueParam;
|
|
|
import com.fs.hisStore.param.FsStoreCouponReceiveParam;
|
|
|
+import com.fs.hisStore.param.FsUserCouponScrmSendParam;
|
|
|
import com.fs.hisStore.vo.FsStoreCouponIssueVO;
|
|
|
import lombok.Synchronized;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -181,5 +183,56 @@ public class FsStoreCouponIssueScrmServiceImpl implements IFsStoreCouponIssueScr
|
|
|
return fsStoreCouponIssueMapper.selectFsStoreCouponIssueListVO(fsStoreCouponIssue);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public R sendFsUserCoupon(FsUserCouponScrmSendParam param) {
|
|
|
+ Long userId = param.getUserId();
|
|
|
+ if (userId ==null){
|
|
|
+ throw new CustomException("用户不能为空");
|
|
|
+ }
|
|
|
+ FsStoreCouponIssueScrm couponIssue=fsStoreCouponIssueMapper.selectFsStoreCouponIssueById(param.getId());
|
|
|
+ if(couponIssue.getStatus().equals(0)){
|
|
|
+ return R.error("此优惠券已停止领取");
|
|
|
+ }
|
|
|
+ if(couponIssue.getLimitTime().getTime()<new Date().getTime()){
|
|
|
+ return R.error("此优惠券已过期");
|
|
|
+ }
|
|
|
+ //判断用户是否领取过
|
|
|
+ FsUserScrm user= userMapper.selectFsUserById(userId);
|
|
|
+ if(user.getLevel().equals(0)){
|
|
|
+ if(fsStoreCouponIssueUserMapper.checkReceive(userId.toString(),param.getId())>0){
|
|
|
+ return R.error("已领取");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(couponIssue.getTotalCount()<=couponIssue.getRemainCount()){
|
|
|
+ return R.error("此优惠券已领完");
|
|
|
+ }
|
|
|
+ FsStoreCouponScrm coupon=couponMapper.selectFsStoreCouponById(couponIssue.getCouponId());
|
|
|
+ //写入领取表
|
|
|
+ FsStoreCouponIssueUserScrm couponIssueUser=new FsStoreCouponIssueUserScrm();
|
|
|
+ couponIssueUser.setUserId(userId);
|
|
|
+ couponIssueUser.setIssueId(param.getId());
|
|
|
+ couponIssueUser.setIsDel(0);
|
|
|
+ couponIssueUser.setCreateTime(new Date());
|
|
|
+ fsStoreCouponIssueUserMapper.insertFsStoreCouponIssueUser(couponIssueUser);
|
|
|
+ FsStoreCouponUserScrm couponUser=new FsStoreCouponUserScrm();
|
|
|
+ couponUser.setCouponId(couponIssue.getCouponId());
|
|
|
+ couponUser.setUserId(userId);
|
|
|
+ couponUser.setCouponTitle(couponIssue.getCouponName());
|
|
|
+ couponUser.setCouponPrice(coupon.getCouponPrice());
|
|
|
+ couponUser.setUseMinPrice(coupon.getUseMinPrice());
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(new Date());
|
|
|
+ calendar.add(Calendar.DATE,coupon.getCouponTime().intValue());
|
|
|
+ couponUser.setLimitTime(calendar.getTime());
|
|
|
+ couponUser.setCreateTime(new Date());
|
|
|
+ couponUser.setType("send");
|
|
|
+ couponUser.setStatus(0);
|
|
|
+ fsStoreCouponUserMapper.insertFsStoreCouponUser(couponUser);
|
|
|
+ //更新领取数量
|
|
|
+ fsStoreCouponIssueMapper.updateFsStoreCouponIssueCount(param.getId());
|
|
|
+ return R.ok("领取成功");
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|