package com.matrix.system.padApi.action; import cn.hutool.core.util.ObjectUtil; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.app.vo.OrderDetailVo; import com.matrix.system.common.bean.BusParameterSettings; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.constance.Dictionary; import com.matrix.system.enums.BooleanEnum; import com.matrix.system.hive.action.BaseController; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.SysOrder; import com.matrix.system.hive.service.SysOrderService; import com.matrix.system.padApi.dto.PadOrderListDto; import com.matrix.system.padApi.vo.PadOrderDetailVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @CrossOrigin(origins = "*") @Api(value = "PadOrderAction", tags = "pad端订单请求") @RestController @RequestMapping(value = "/api/pad/order") public class PadOrderAction extends BaseController { @Resource private SysOrderService sysOrderService; @Resource private SysOrderService orderService; @Autowired private BusParameterSettingsDao busParameterSettingsDao; @ApiOperation(value = "获取订单列表", notes = "获取订单列表") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = PadOrderDetailVo.class) }) @PostMapping(value = "/findOrderList") public AjaxResult findOrderList(@RequestBody @Validated PadOrderListDto orderListDto) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); int offset = (orderListDto.getPageNum() - 1) * orderListDto.getPageSize(); int limit = orderListDto.getPageSize(); PaginationVO pageVo = new PaginationVO(); pageVo.setOffset(offset); pageVo.setLimit(limit); if (!DataAuthUtil.hasAllShopAuth()) { orderListDto.setShopId(user.getShopId()); } QueryUtil.setQueryLimitCom(orderListDto); return AjaxResult.buildSuccessInstance(sysOrderService.findPadApiOrderListInPage(orderListDto, pageVo), sysOrderService.findPadApiOrderListTotal(orderListDto)); } @ApiOperation(value = "获取订单详情", notes = "获取订单详情") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = OrderDetailVo.class) }) @GetMapping(value = "/findOrderDetail/{orderId}") public AjaxResult findOrderDetail(@PathVariable("orderId") Long orderId) { OrderDetailVo orderDetail = sysOrderService.findApiOrderDetailByOrderId(orderId); AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); ajaxResult.putInMap("orderDetail", orderDetail); return ajaxResult; } @ApiOperation(value = "取消订单", notes = "取消订单") @GetMapping(value = "/cancelOrder/{id}") @Transactional(rollbackFor = Exception.class) public AjaxResult cancelOrder(Long id) { SysOrder order = orderService.findById(id); if (ObjectUtil.isEmpty(order)) { return new AjaxResult(AjaxResult.STATUS_FAIL, "订单不存在!"); } BusParameterSettings shopManageAbleCancelDfkOrder = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER, order.getCompanyId()); if (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue()) && BooleanEnum.TRUE.getValue() == shopManageAbleCancelDfkOrder.getIntParamValue()) { if (!Dictionary.ORDER_STATU_DFK.equals(order.getStatu())) { return new AjaxResult(AjaxResult.STATUS_FAIL, "您只能取消待付款订单"); } } orderService.cancelOrder(id); return AjaxResult.buildSuccessInstance("取消成功"); } @ApiOperation(value = "收款", notes = "收款") @PostMapping(value = "/sk") public AjaxResult sk(@RequestBody SysOrder order) throws GlobleException { orderService.payOrder(order); return AjaxResult.buildSuccessInstance("收款成功"); } @ApiOperation(value = "补交", notes = "补交") @PostMapping(value = "/bj") public AjaxResult bj(@RequestBody SysOrder order){ orderService.updateAfterMoney(order); return AjaxResult.buildSuccessInstance("补交成功"); } }