package com.platform.yijia.controller;
import com.google.gson.Gson;
import com.platform.yijia.config.YiJiaRequest;
import com.platform.yijia.pojo.Coupon;
import com.platform.yijia.pojo.UserCoupon;
import com.platform.yijia.service.CouponService;
import com.platform.yijia.utils.CodeMsg;
import com.platform.yijia.utils.ResultData;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/*
*
CouponController
* 优惠券
* @Author JK
* @Date 2021年7月6日
*/
@Controller
@YiJiaRequest()
@CrossOrigin
@Api(tags = "优惠券")
public class CouponController {
private static Logger logger =(Logger) LoggerFactory.getLogger(CouponController.class);
@Resource
private CouponService couponService;
//获取优惠券信息
@RequestMapping(value = "/selectCouponInfo", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "获取优惠券信息", httpMethod = "GET", notes = "获取优惠券信息")
public String selectCouponInfo(@ApiParam(value = "优惠券ID", required = true) @RequestParam Integer id){
Gson gson =new Gson();
ResultData resultData = null;
try {
Coupon coupon = new Coupon();
coupon.setId(id);
Coupon couponInfo = couponService.selectCouponInfo(coupon);
resultData = ResultData.success(couponInfo);
}catch (Exception e){
logger.error("获取优惠券错误信息:" + e.getMessage());
resultData = ResultData.error(CodeMsg.SEARCH_FAIL);
}
return gson.toJson(resultData);
}
//获取客户所拥有的优惠券
@RequestMapping(value = "/selectUserCoupons", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "获取客户所拥有的优惠券", httpMethod = "GET", notes = "获取客户所拥有的优惠券")
public String selectUserCoupons(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId,
@ApiParam(value = "用户unionId", required = true) @RequestParam String unionId){
Gson gson =new Gson();
ResultData resultData = null;
try {
UserCoupon userCoupon = new UserCoupon();
userCoupon.setStationId(stationId);
userCoupon.setUnionId(unionId);
List userCoupons = couponService.selectUserCoupons(userCoupon);
resultData = ResultData.success(userCoupons);
}catch (Exception e){
logger.error("获取客户所拥有的优惠券错误信息:" + e.getMessage());
resultData = ResultData.error(CodeMsg.SEARCH_FAIL);
}
return gson.toJson(resultData);
}
//用户领取优惠券
@RequestMapping(value = "/addUserCoupon", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "用户领取优惠券", httpMethod = "POST", notes = "用户领取优惠券")
public String addUserCoupon(@ApiParam(value = "用户优惠券实体类", required = true) @RequestBody UserCoupon userCoupon){
Gson gson = new Gson();
ResultData resultData = null;
try{
if(userCoupon.getCouponId() !=null){
Coupon coupon = new Coupon();
coupon.setId(userCoupon.getCouponId());
//获取该优惠券信息
Coupon couponInfo = couponService.selectCouponInfo(coupon);
//该优惠券是否存在
if(couponInfo !=null){
//优惠券是否已发放
if(couponInfo.getGrantStatus() !=null && couponInfo.getGrantStatus().equals("1")){
//该优惠券是否有效
if(couponInfo.getStatus() !=null && couponInfo.getStatus().equals("1")){
userCoupon.setCouponIsEffective("1");
userCoupon.setCouponIsUsed("0");
userCoupon.setCouponNo("123456789");
userCoupon.setGetCouponTime(new Date());
couponService.addUserCoupon(userCoupon);
resultData = ResultData.success("领取成功!");
}else {
resultData = ResultData.error(CodeMsg.COUPON_LOSE_EFFECTIVE);
}
}else {
resultData = ResultData.error(CodeMsg.COUPON_NO_GRANT);
}
}else {
resultData = ResultData.error(CodeMsg.NO_COUPON);
}
}else {
resultData = ResultData.error(CodeMsg.REQUEST_FAIL);
}
}catch (Exception e){
logger.error("用户领取优惠券错误信息:" + e.getMessage());
resultData = ResultData.error(CodeMsg.INSERT_FAIL);
}
return gson.toJson(resultData);
}
}