package com.stylefeng.guns.modular.api; import com.stylefeng.guns.modular.system.service.IUserCouponRecordService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.CouponWarpper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; 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.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; /** * 优惠券控制器 */ @Api @RestController @RequestMapping("/api/coupon") public class CouponController { @Autowired private IUserCouponRecordService userCouponRecordService; @Autowired private IUserInfoService userInfoService; /** * 获取个人优惠券列表 * @param state * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/queryMyCoupons") @ApiOperation(value = "获取个人优惠券列表", tags = {"用户端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "优惠券状态(1=未使用,2=已使用)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryMyCoupons(Integer state, Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List> list = userCouponRecordService.queryMyCoupons(state, pageNum, size, uid); return ResultUtil.success(CouponWarpper.getCouponWarppers(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 删除优惠券 * @param id * @param request * @return */ @ResponseBody @PostMapping("/delMyCoupon") @ApiOperation(value = "删除优惠券", tags = {"用户端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "优惠券id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil delMyCoupon(Integer id, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return userCouponRecordService.delMyCoupon(id, uid); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 赠送优惠券 * @param id * @param userId * @param request * @return */ @ResponseBody @PostMapping("/handselCoupon") @ApiOperation(value = "赠送优惠券", tags = {"用户端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "优惠券id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(value = "赠送用户id", name = "userId", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil handselCoupon(Integer id, Integer userId, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return userCouponRecordService.handselCoupon(id, uid, userId); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } }