package com.matrix.system.shopXcx.api.action; import com.matrix.component.redis.RedisClient; import com.matrix.component.redis.RedisUserLoginUtils; import com.matrix.core.pojo.AjaxResult; import com.matrix.system.app.authority.AppAuthorityManager; import com.matrix.system.common.service.SysUsersService; import com.matrix.system.hive.bean.SysOrderFlow; import com.matrix.system.hive.bean.SysVipInfo; import com.matrix.system.hive.dao.SysOrderDao; import com.matrix.system.hive.dao.SysOrderFlowDao; import com.matrix.system.hive.dao.SysOrderItemDao; import com.matrix.system.hive.dao.SysVipInfoDao; import com.matrix.system.hive.service.SysShopInfoService; import com.matrix.system.shopXcx.api.dto.ErpOrderListDto; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailFlowVo; import com.matrix.system.shopXcx.api.vo.ErpOrderDetailVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * @author wzy * @date 2020-12-21 **/ @Api(value = "WxErpOrderAction", tags = "小程序端Erp订单查询接口") @RestController @RequestMapping(value = "/wxapi/erpOrder") public class WxErpOrderAction { @Autowired private SysUsersService sysUsersService; @Autowired private SysShopInfoService sysShopInfoService; @Autowired private AppAuthorityManager authorityManager; @Autowired private RedisClient redisClient; @Autowired private SysVipInfoDao vipInfoDao; @Autowired RedisUserLoginUtils redisUserLoginUtils; @Autowired private SysOrderDao sysOrderDao; @Autowired private SysOrderItemDao orderItemDao; @Autowired private SysOrderFlowDao orderFlowDao; @Value("${file_storage_path}") private String fileStoragePath; @Value("${static_resource_url}") private String nginxUrl; @ApiOperation(value = "查询用户所有在ERP中产生的订单") @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ErpOrderListDto.class) }) @PostMapping(value = "/findUserOrderList") public AjaxResult findUserOrderList(@RequestBody @Validated ErpOrderListDto erpOrderListDto) { SysVipInfo vipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class); erpOrderListDto.setVipId(vipInfo.getId()); List rows = sysOrderDao.selectErpOrderList(erpOrderListDto); rows.forEach(item -> { item.setItems(orderItemDao.selectErpOrderItemByOrderId(item.getOrderId())); }); return AjaxResult.buildSuccessInstance(rows, "查询成功"); } @ApiOperation(value = "查询用户在ERP中的订单详情") @ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ErpOrderListDto.class) }) @GetMapping(value = "/findUserOrderById/{orderId}") public AjaxResult findUserOrderList(@PathVariable Long orderId) { ErpOrderDetailVo order = sysOrderDao.findUserOrderById(orderId); order.setItems(orderItemDao.selectErpOrderItemByOrderId(order.getOrderId())); List sysOrderFlows = orderFlowDao.selectPayMethodsAmountByOrderId(orderId); List flowVos = new ArrayList<>(); sysOrderFlows.forEach(item -> { ErpOrderDetailFlowVo erpOrderDetailFlowVo = new ErpOrderDetailFlowVo(); BeanUtils.copyProperties(item, erpOrderDetailFlowVo); flowVos.add(erpOrderDetailFlowVo); }); order.setFlow(flowVos); AjaxResult result = AjaxResult.buildSuccessInstance("查询成功"); result.putInMap("order", order); return result; } }