| | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.SuccessTip; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.controller.req.CouponSendReq; |
| | | import com.stylefeng.guns.modular.system.enums.CouponStatusEnum; |
| | | import com.stylefeng.guns.modular.system.enums.StatusEnum; |
| | | import com.stylefeng.guns.modular.system.model.TAgent; |
| | | import com.stylefeng.guns.modular.system.model.TUserToCoupon; |
| | | import com.stylefeng.guns.modular.system.service.ITUserToCouponService; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.poi.hdf.extractor.TC; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.util.Assert; |
| | | import org.springframework.util.CollectionUtils; |
| | |
| | | import com.stylefeng.guns.modular.system.model.TCoupon; |
| | | import com.stylefeng.guns.modular.system.service.ITCouponService; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.ZoneId; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private ITCouponService tCouponService; |
| | | @Autowired |
| | | private ITUserToCouponService tUserToCouponService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(Integer couponType,Integer couponServiceType,String createtime) { |
| | | public Object list(Integer couponType,Integer couponServiceType,String createTime) { |
| | | EntityWrapper<TCoupon> wrapper = new EntityWrapper<>(); |
| | | if(Objects.nonNull(couponType)){ |
| | | wrapper.eq("coupon_type",couponType); |
| | |
| | | wrapper.eq("coupon_service_type",couponServiceType); |
| | | } |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createtime)){ |
| | | String[] split = createtime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | wrapper.between("createtime",startTime,endTime); |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("create_time",startTime,endTime); |
| | | } |
| | | wrapper.orderBy(true,"createtime",false); |
| | | wrapper.groupBy(true,"coupon_name"); |
| | | wrapper.groupBy(true,"coupon_type"); |
| | | wrapper.ne("status", StatusEnum.DELETE.getCode()); |
| | | wrapper.orderBy(true,"create_time",false); |
| | | return tCouponService.selectList(wrapper); |
| | | } |
| | | |
| | | /** |
| | | * 获取活动券列表 |
| | | */ |
| | | @RequestMapping(value = "/activityCouponList") |
| | | @ResponseBody |
| | | public Object activityCouponList(String couponName) { |
| | | EntityWrapper<TCoupon> wrapper = new EntityWrapper<>(); |
| | | if(StringUtils.hasLength(couponName)){ |
| | | wrapper.like("coupon_name",couponName); |
| | | } |
| | | wrapper.eq("coupon_type",1); |
| | | wrapper.eq("coupon_state",1); |
| | | wrapper.orderBy(true,"create_time",false); |
| | | return tCouponService.selectList(wrapper); |
| | | } |
| | | |
| | |
| | | if(isExit){ |
| | | return new SuccessTip(500,"该优惠券名称与类型已存在!"); |
| | | } |
| | | // 如果是新人优惠券,查询是否存在已启用的新人优惠券 |
| | | if(tCoupon.getCouponType() == 2){ |
| | | int count = tCouponService.selectCount(new EntityWrapper<TCoupon>() |
| | | .eq("coupon_type", 2) |
| | | .eq("coupon_state", 1) |
| | | .eq("status", true)); |
| | | if(count>0){ |
| | | return new SuccessTip(500,"已存在已启用的新人优惠券!"); |
| | | } |
| | | } |
| | | tCouponService.insert(tCoupon); |
| | | return SUCCESS_TIP; |
| | | } |
| | |
| | | @RequestMapping(value = "/delete") |
| | | @ResponseBody |
| | | public Object delete(@RequestParam Integer tCouponId) { |
| | | /*TCoupon tCoupon = tCouponService.selectById(tCouponId); |
| | | tCoupon.setCouponStatus(StatusEnum.DELETE.getCode()); |
| | | tCouponService.updateById(tCoupon);*/ |
| | | tCouponService.deleteById(tCouponId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改优惠券状态 |
| | | */ |
| | | @RequestMapping(value = "/update-status") |
| | | @ResponseBody |
| | | public Object updateStatus(Integer id,Integer status) { |
| | | TCoupon tCoupon = tCouponService.selectById(id); |
| | | |
| | | // 查询已启用的新人券数量 |
| | | int count = tCouponService.selectCount(new EntityWrapper<TCoupon>().eq("coupon_state", 1) |
| | | .eq("coupon_type",2)); |
| | | |
| | | // 判断是否为新人券,新人券只可启用一条记录 |
| | | if(count > 0 && 2 == tCoupon.getCouponType() && 2 == status){ |
| | | return new SuccessTip(500,"已有启动的新人券!"); |
| | | } |
| | | |
| | | if(1 == status){ |
| | | tCoupon.setCouponState(2); |
| | | } |
| | | if(2 == status){ |
| | | tCoupon.setCouponState(1); |
| | | } |
| | | tCouponService.updateById(tCoupon); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | |
| | | |
| | | List<Integer> userIds = couponSendReq.getUserIds(); |
| | | |
| | | // 查询选择的优惠券 |
| | | TCoupon tCoupon = tCouponService.selectById(couponSendReq.getCouponId()); |
| | | |
| | | List<TUserToCoupon> tUserToCoupons = new ArrayList<>(userIds.size()); |
| | | |
| | | for (Integer userId : userIds) { |
| | | // 创建用户优惠券关联表 |
| | | TUserToCoupon tUserToCoupon = new TUserToCoupon(); |
| | | tUserToCoupon.setCouponId(tCoupon.getId()); |
| | | tUserToCoupon.setUserId(userId); |
| | | tUserToCoupon.setCouponTotal(1); |
| | | tUserToCoupon.setValidCount(1); |
| | | Date expireTime = Date.from(LocalDate.now().plusDays(tCoupon.getCouponValidity()).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()); |
| | | tUserToCoupon.setExpireTime(expireTime); |
| | | |
| | | // 添加发放人id和类型 |
| | | tUserToCoupon.setObjectId(ShiroKit.getUser().getObjectId()); |
| | | tUserToCoupon.setRoleType(ShiroKit.getUser().getRoleType()); |
| | | |
| | | tUserToCoupons.add(tUserToCoupon); |
| | | } |
| | | tUserToCouponService.insertBatch(tUserToCoupons); |
| | | |
| | | // 查询该优惠券的列表 |
| | | List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("coupon_name", couponSendReq.getCouponName()) |
| | | /*List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("coupon_name", couponSendReq.getCouponName()) |
| | | .eq("coupon_status",CouponStatusEnum.UNISSUED.getCode())); |
| | | Assert.isTrue(!CollectionUtils.isEmpty(tCoupons),"该优惠券不存在!"); |
| | | List<TCoupon> tCouponList = new ArrayList<>(); |
| | |
| | | } |
| | | if(!CollectionUtils.isEmpty(tCouponList)){ |
| | | tCouponService.updateBatchById(tCouponList); |
| | | } |
| | | }*/ |
| | | return SUCCESS_TIP; |
| | | } |
| | | |