package com.simple.controller; import com.github.pagehelper.PageInfo; import com.simple.annotation.AuthIgnore; import com.simple.common.ErrorCode; import com.simple.common.Result; import com.simple.common.ResultData; import com.simple.domain.po.WxCouponOrder; import com.simple.exception.MallinkException; import com.simple.service.WxCouponOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Map; @RestController @RequestMapping("/api/couponOrder") @Api(description = "卡券相关接口") public class WxCouponOrderController extends BaseController { private Logger logger = Logger.getLogger(WxCouponOrderController.class); @Autowired private WxCouponOrderService wxCouponOrderService; @ApiOperation("分页列表接口") @GetMapping("list") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) public ResultData list(@ModelAttribute WxCouponOrder wxCouponOrder, Integer pageNum, Integer pageSize) { if (null == wxCouponOrder) wxCouponOrder = new WxCouponOrder(); final PageInfo page = wxCouponOrderService.listAsPage(wxCouponOrder, pageNum, pageSize); return new ResultData(page); } @ApiOperation("根据id更新接口") @PostMapping("update") public ResultData update(@RequestBody WxCouponOrder wxCouponOrder) { wxCouponOrderService.saveOrUpdate(wxCouponOrder); return new ResultData(); } @ApiOperation("交易流水分页列表接口") @GetMapping("listUnverified") @ApiImplicitParams({ @ApiImplicitParam(name = "date", value = "日期yyyy-MM-dd", dataType = "string", paramType = "query"), @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query",required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query",required = true)}) public ResultData listUnverified(String date, Integer pageNum, Integer pageSize) { return wxCouponOrderService.listOnDateAsPage(getUser().getId(), date, pageNum, pageSize, false); } @ApiOperation("核销流水分页列表接口") @GetMapping("listVerified") @ApiImplicitParams({ @ApiImplicitParam(name = "date", value = "日期yyyy-MM-dd", dataType = "string", paramType = "query"), @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query",required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query",required = true)}) public ResultData listVerified(String date, Integer pageNum, Integer pageSize) { return wxCouponOrderService.listOnDateAsPage(getUser().getId(), date, pageNum, pageSize, true); } @ApiOperation("某日期交易总流水") @GetMapping("getUnverifiedAmountOnDate") @ApiImplicitParams({ @ApiImplicitParam(name = "date", value = "日期yyyy-MM-dd", dataType = "string", paramType = "query")}) public ResultData getUnverifiedAmountOnDate(String date) { return wxCouponOrderService.listOnDateAsPage(getUser().getId(), date, null, null, false); } @ApiOperation("某日期核销总流水") @GetMapping("getVerifiedAmountOnDate") @ApiImplicitParams({ @ApiImplicitParam(name = "date", value = "日期yyyy-MM-dd", dataType = "string", paramType = "query")}) public ResultData getVerifiedAmountOnDate(String date) { return wxCouponOrderService.listOnDateAsPage(getUser().getId(), date, null, null, true); } @ApiOperation(value = "卡券详情接口") @GetMapping("detail") @ApiImplicitParams({ @ApiImplicitParam(name = "couponOrderId", value = "券ID", dataType = "string", paramType = "query", required = true) }) public ResultData detail(String couponOrderId) { if(couponOrderId == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } return wxCouponOrderService.detailBUserVo(getUser().getId(), couponOrderId); } @ApiOperation(value = "核销接口", notes = "{\"couponOrderId\":\"string\"}") @PostMapping("verify") public ResultData verify(@RequestBody Map paramMap) { logger.info(paramMap.toString()); String couponOrderIdStr = paramMap.get("couponOrderId"); if (StringUtils.isBlank(couponOrderIdStr)) { logger.error("couponOrderId不能为空: " + paramMap.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } Long couponOrderId = 0L; try { couponOrderId = Long.valueOf(couponOrderIdStr); } catch (NumberFormatException e) { couponOrderId = 0L; logger.error("couponOrderId参数不正确: " + paramMap.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } try { ResultData rd = wxCouponOrderService.verify(couponOrderId, getUser().getId()); return rd; } catch (MallinkException e) { logger.error("核销异常: " + e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage()); } catch (Exception e) { logger.error("核销异常: " + e.getMessage()); return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage()); } } @ApiOperation(value = "根据couponOrderId查询接口", notes = "{\"couponOrderId\":\"string\"}") @PostMapping("/findById") public ResultData findById(@RequestBody Map paramMap) { logger.info(paramMap.toString()); String couponOrderIdStr = paramMap.get("couponOrderId"); if (StringUtils.isBlank(couponOrderIdStr)) { logger.error("couponOrderId不能为空: " + paramMap.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } Long couponOrderId = 0L; try { couponOrderId = Long.valueOf(couponOrderIdStr); } catch (NumberFormatException e) { couponOrderId = 0L; logger.error("couponOrderId参数不正确: " + paramMap.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } return new ResultData(Result.SUCCESS, "查询成功", wxCouponOrderService.getById(couponOrderId)); } }