refactor(cabinet): 在查询中增加按cell_id分组以优化数据展示
在SearchCabinetCellWithOrdersQuery中增加groupBy语句,确保查询结果按cell_id分组,避免重复数据展示。同时,将CabinetCellController和CabinetCellApplicationService中的查询类型统一为SearchCabinetCellWithOrdersQuery,以保持一致性。
This commit is contained in:
parent
f33f74b20a
commit
3994d99321
|
@ -11,6 +11,7 @@ import com.agileboot.domain.cabinet.cell.command.UpdateCabinetCellCommand;
|
|||
import com.agileboot.domain.cabinet.cell.db.CabinetCellEntity;
|
||||
import com.agileboot.domain.cabinet.cell.dto.CabinetCellDTO;
|
||||
import com.agileboot.domain.cabinet.cell.query.SearchCabinetCellQuery;
|
||||
import com.agileboot.domain.cabinet.cell.query.SearchCabinetCellWithOrdersQuery;
|
||||
import com.agileboot.domain.common.command.BulkOperationCommand;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import java.util.List;
|
||||
|
@ -38,7 +39,7 @@ public class CabinetCellController extends BaseController {
|
|||
|
||||
@Operation(summary = "格口列表")
|
||||
@GetMapping
|
||||
public ResponseDTO<PageDTO<CabinetCellDTO>> list(SearchCabinetCellQuery<CabinetCellEntity> query) {
|
||||
public ResponseDTO<PageDTO<CabinetCellDTO>> list(SearchCabinetCellWithOrdersQuery<CabinetCellEntity> query) {
|
||||
PageDTO<CabinetCellDTO> page = cabinetCellApplicationService.getCabinetCellList(query);
|
||||
return ResponseDTO.ok(page);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.agileboot.domain.cabinet.cell;
|
|||
|
||||
import com.agileboot.common.core.page.PageDTO;
|
||||
import com.agileboot.domain.cabinet.cell.dto.CabinetCellWithOrderCountDTO;
|
||||
import com.agileboot.domain.cabinet.cell.query.SearchCabinetCellWithOrdersQuery;
|
||||
import com.agileboot.domain.common.command.BulkOperationCommand;
|
||||
import com.agileboot.domain.cabinet.cell.command.AddCabinetCellCommand;
|
||||
import com.agileboot.domain.cabinet.cell.command.UpdateCabinetCellCommand;
|
||||
|
@ -29,7 +30,7 @@ public class CabinetCellApplicationService {
|
|||
private final CabinetCellModelFactory cabinetCellModelFactory;
|
||||
private final ShopGoodsService shopGoodsService;
|
||||
|
||||
public PageDTO<CabinetCellDTO> getCabinetCellList(SearchCabinetCellQuery<CabinetCellEntity> query) {
|
||||
public PageDTO<CabinetCellDTO> getCabinetCellList(SearchCabinetCellWithOrdersQuery<CabinetCellEntity> query) {
|
||||
// Page<CabinetCellEntity> page = cabinetCellService.getCellList(query);
|
||||
Page<CabinetCellWithOrderCountDTO> page = cabinetCellService.getCellListWithOrders(query);
|
||||
List<ShopGoodsEntity> goodsList = shopGoodsService.selectAll();
|
||||
|
|
|
@ -31,7 +31,8 @@ public class SearchCabinetCellWithOrdersQuery<T> extends AbstractPageQuery<T> {
|
|||
.eq(usageStatus != null, "cc.usage_status", usageStatus)
|
||||
.eq(availableStatus != null, "cc.available_status", availableStatus)
|
||||
.eq("cc.deleted", false)
|
||||
.between(startTime != null && endTime != null, "cc.create_time", startTime, endTime);
|
||||
.between(startTime != null && endTime != null, "cc.create_time", startTime, endTime)
|
||||
.groupBy("cc.cell_id");
|
||||
|
||||
this.timeRangeColumn = "create_time";
|
||||
|
||||
|
|
|
@ -15,10 +15,13 @@ import com.agileboot.common.utils.OpenSignUtil;
|
|||
import com.agileboot.domain.shop.order.model.OrderModel;
|
||||
import com.agileboot.domain.shop.order.model.OrderModelFactory;
|
||||
import com.agileboot.domain.shop.payment.dto.*;
|
||||
import com.agileboot.domain.shop.paymentOperationLog.PaymentOperationLogApplicationService;
|
||||
import com.agileboot.domain.shop.paymentOperationLog.command.AddPaymentOperationLogCommand;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
|
@ -32,13 +35,16 @@ import java.util.UUID;
|
|||
@RequiredArgsConstructor
|
||||
public class PaymentApplicationService {
|
||||
private final OrderModelFactory orderModelFactory;
|
||||
private final PaymentOperationLogApplicationService paymentOperationLogApplicationService;
|
||||
private static final Object LOCKER = new Object();
|
||||
|
||||
public WxJsApiPreCreateResponse callJsApiPreCreate(WxJsApiPreCreateRequest request) {
|
||||
String gatewayUrl = PayApiConstants.pay_url;
|
||||
|
||||
String result = "";
|
||||
String jsonBody = "";
|
||||
try {
|
||||
String jsonBody = JSONUtil.toJsonStr(request);
|
||||
jsonBody = JSONUtil.toJsonStr(request);
|
||||
log.info("callJsApiPreCreate 请求body:{}", jsonBody);
|
||||
|
||||
// 使用try-with-resources自动关闭连接
|
||||
|
@ -50,7 +56,7 @@ public class PaymentApplicationService {
|
|||
|
||||
// 获取HTTP状态码和响应体
|
||||
int status = httpResponse.getStatus();
|
||||
String result = httpResponse.body();
|
||||
result = httpResponse.body();
|
||||
log.info("callJsApiPreCreate 响应body:{}", result);
|
||||
|
||||
// 先校验HTTP状态码
|
||||
|
@ -74,6 +80,13 @@ public class PaymentApplicationService {
|
|||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
AddPaymentOperationLogCommand paymentOperationLogCommand = new AddPaymentOperationLogCommand();
|
||||
paymentOperationLogCommand.setParams("body:" + jsonBody + " result:" + result);
|
||||
paymentOperationLogCommand.setOperationType("submitOrder");
|
||||
paymentOperationLogCommand.setStatus(2);
|
||||
paymentOperationLogCommand.setRemark(ExceptionUtils.getStackTrace(e));
|
||||
paymentOperationLogCommand.initBaseEntity();
|
||||
paymentOperationLogApplicationService.addPaymentOperationLog(paymentOperationLogCommand);
|
||||
throw new RuntimeException("支付网关调用失败:" + e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue