package com.ruoyi.account.controller;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.ruoyi.account.api.dto.CouponListDto;
|
import com.ruoyi.account.api.dto.GrantCouponDto;
|
import com.ruoyi.account.api.model.TAppCoupon;
|
import com.ruoyi.account.api.model.TAppUserCar;
|
import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
|
import com.ruoyi.account.api.vo.CarListVO;
|
import com.ruoyi.account.api.vo.CouponListVOVO;
|
import com.ruoyi.account.api.vo.ExchangeRecordVO;
|
import com.ruoyi.account.service.TAppCouponService;
|
import com.ruoyi.account.service.TAppUserCarService;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
import com.ruoyi.common.core.web.page.BasePage;
|
import com.ruoyi.common.core.web.page.PageInfo;
|
import com.ruoyi.common.security.service.TokenService;
|
import com.ruoyi.other.api.domain.TCoupon;
|
import com.ruoyi.other.api.feignClient.OtherClient;
|
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 前端控制器
|
* </p>
|
*
|
* @author luodangjia
|
* @since 2024-08-06
|
*/
|
@RestController
|
@RequestMapping("/t-app-coupon")
|
public class TAppCouponController {
|
@Autowired
|
private TAppCouponService tAppCouponService;
|
@Autowired
|
private OtherClient otherClient;
|
|
@Autowired
|
private TAppUserCarService appUserCarService;
|
@Autowired
|
private TokenService tokenService;
|
/**
|
* 查询用户可用优惠券数量
|
* @param dto
|
* @return
|
*/
|
@ApiOperation(value = "选择优惠券分页查询", tags = {"小程序-扫一扫"})
|
@PostMapping(value = "/scan/couponList")
|
public AjaxResult<PageInfo<CouponListVOVO>> couponList(@RequestBody CouponListDto dto) {
|
PageInfo<CouponListVOVO> res = tAppCouponService.couponList(dto);
|
return AjaxResult.ok(res);
|
}
|
/**
|
* 选择车辆列表
|
* @return
|
*/
|
@ApiOperation(value = "选择车辆列表", tags = {"小程序-扫一扫"})
|
@PostMapping(value = "/scan/carList")
|
public AjaxResult<List<TAppUserCar>> carList() {
|
// todo 用户id
|
List<TAppUserCar> appUserId = appUserCarService.list(new QueryWrapper<TAppUserCar>()
|
.eq("app_user_id",tokenService.getLoginUserApplet().getUserid() ));
|
return AjaxResult.ok(appUserId);
|
}
|
|
/**
|
* 管理后台远程调用 根据优惠券ids 查询对应的发放数量
|
* @return 优惠券ids 查询每个优惠券的发放数量
|
*/
|
@PostMapping("/getCountByCouponIds")
|
public R<List<Integer>> getCountByCouponIds(String couponIds) {
|
// 最终结果 和优惠券id一一对应
|
List<Integer> res = new ArrayList<>();
|
String[] split = couponIds.split(",");
|
// 查询每个优惠券的发放数量
|
for (String s : split) {
|
res.add(tAppCouponService.list(new QueryWrapper<TAppCoupon>()
|
.eq("coupon_id", s)
|
.eq("del_flag",0)
|
).size());
|
}
|
return R.ok(res);
|
}
|
|
/**
|
* 后台远程调用 根据优惠券id 查询使用数量
|
* @param couponId
|
* @return
|
*/
|
@PostMapping("/getUseCountByCouponId")
|
public R<Integer> getUseCountByCouponId(Integer couponId){
|
return R.ok(tAppCouponService.list(new QueryWrapper<TAppCoupon>()
|
.eq("coupon_id", couponId)
|
.eq("status",2)).size());
|
}
|
/**
|
* 后台远程调用 根据优惠券id 查询领取记录
|
* @param couponId
|
* @return
|
*/
|
@PostMapping("/getExchangeRecordByCouponId")
|
public R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId){
|
return R.ok(tAppCouponService.pagelist(couponId));
|
}
|
|
/**
|
* 后台远程调用 给用户发放优惠券
|
*/
|
@PostMapping("/grantCoupon")
|
public R grantCoupon(@RequestBody GrantCouponDto dto){
|
List<TAppCoupon> res = new ArrayList<>();
|
for (String s : dto.getUserIds().split(",")) {
|
TAppCoupon tAppCoupon = new TAppCoupon();
|
tAppCoupon.setAppUserId(Long.valueOf(s));
|
tAppCoupon.setCouponId(dto.getCouponId());
|
tAppCoupon.setEndTime(dto.getEndTime());
|
tAppCoupon.setWaysToObtain(dto.getWaysToObtain());
|
tAppCoupon.setStatus(1);
|
res.add(tAppCoupon);
|
}
|
tAppCouponService.saveBatch(res);
|
return R.ok();
|
}
|
}
|