package com.simple.controller; import com.github.pagehelper.PageInfo; import com.simple.common.ErrorCode; import com.simple.common.ResultData; import com.simple.config.PayProperty; import com.simple.domain.po.WxAppinfo; import com.simple.domain.po.WxCouponOrder; import com.simple.enums.EnumAppType; import com.simple.enums.EnumRefundWay; import com.simple.exception.MallinkException; import com.simple.service.WxAppinfoService; import com.simple.service.WxCouponOrderService; import com.simple.service.WxRefundOrderService; 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.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Map; @RestController @RequestMapping("wxCouponOrder") @Api(description = "核销和用户卡券查询接口") public class WxCouponOrderController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private WxCouponOrderService wxCouponOrderService; @Autowired private WxRefundOrderService wxRefundOrderService; @Autowired private WxAppinfoService wxAppinfoService; @Autowired private PayProperty payProperty; @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 (wxCouponOrder == null) wxCouponOrder = new WxCouponOrder(); wxCouponOrder.setTenantId(getTenantId()); wxCouponOrder.setSortColumns(WxCouponOrder.Field.Id_DESC); return wxCouponOrderService.listAdminAsPage(wxCouponOrder, pageNum, pageSize); } @RequestMapping("/exportData") public void exportData(HttpServletRequest request, HttpServletResponse response) { wxCouponOrderService.exportData(request, response, getTenantId()); } @ApiOperation(value = "退券退款", notes = "{\"couponOrderId\":\"string\"}") @PostMapping("/refund") public ResultData create(@RequestBody Map paramMap) { //Assert.notNull(wxRefundOrder.getName(), "角色名不能为空"); //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); 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) { logger.error("couponOrderId参数不正确: " + paramMap.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } WxAppinfo appinfoQ = new WxAppinfo(); appinfoQ.setTenantId(getTenantId()); appinfoQ.setType(EnumAppType.B.getCode()); PageInfo appinfoPageInfo = wxAppinfoService.listAsPage(appinfoQ, 1, 1); if (appinfoPageInfo.getList().size() > 0) { WxAppinfo appinfo = appinfoPageInfo.getList().get(0); if (appinfo != null) { try { wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, couponOrderId, EnumRefundWay.ADMIN, null); return new ResultData(); } 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.REFUND_ORDER_ERROR); } } } return new ResultData(ErrorCode.REFUND_ORDER_ERROR.getCode(), "AppInfo获取失败"); } }