diff --git a/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ShopController.java b/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ShopController.java index 2143d55..32774c5 100644 --- a/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ShopController.java +++ b/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ShopController.java @@ -6,6 +6,7 @@ import com.agileboot.common.constant.WeixinConstants; import com.agileboot.common.core.base.BaseController; import com.agileboot.common.core.dto.ResponseDTO; import com.agileboot.common.core.page.PageDTO; +import com.agileboot.common.enums.ModeEnum; import com.agileboot.common.enums.common.BusinessTypeEnum; import com.agileboot.domain.cabinet.cell.CabinetCellApplicationService; import com.agileboot.domain.cabinet.smartCabinet.SmartCabinetApplicationService; @@ -27,7 +28,10 @@ import cn.hutool.core.date.DateUtil; import io.swagger.v3.oas.annotations.Operation; import java.math.BigDecimal; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; + import javax.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; @@ -104,6 +108,11 @@ public class ShopController extends BaseController { @Operation(summary = "商店列表") @GetMapping public ResponseDTO> page(SearchShopQuery query) { + List modeList = query.getModeList(); + if (modeList == null || modeList.isEmpty()) { + modeList = ModeEnum.getCodeList(); + query.setModeList(modeList); + } PageDTO page = shopApplicationService.getShopPage(query); return ResponseDTO.ok(page); } @@ -111,6 +120,11 @@ public class ShopController extends BaseController { @Operation(summary = "商店列表") @GetMapping("/list") public ResponseDTO> list(SearchShopQuery query) { + List modeList = query.getModeList(); + if (modeList == null || modeList.isEmpty()) { + modeList = ModeEnum.getCodeList(); + query.setModeList(modeList); + } List list = shopApplicationService.getShopList(query); return ResponseDTO.ok(list); } diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java index 3ca624a..896a6cc 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java @@ -9,6 +9,7 @@ import com.agileboot.common.exception.error.ErrorCode; import com.agileboot.domain.cabinet.cell.CabinetCellApplicationService; import com.agileboot.domain.cabinet.cell.command.OpenCellByPasswordCommand; import com.agileboot.domain.cabinet.cell.command.StoreItemToCellCommand; +import com.agileboot.domain.cabinet.cell.command.UpdateCabinetCellCommand; import com.agileboot.domain.cabinet.cell.dto.CabinetCellDTO; import com.agileboot.domain.cabinet.cell.dto.AvailableStorageCellDTO; import com.agileboot.domain.cabinet.cell.db.CabinetCellEntity; @@ -255,4 +256,22 @@ public class CabinetCellController { return ResponseDTO.fail(new ApiException(ErrorCode.Internal.INTERNAL_ERROR, e)); } } + + @Operation(summary = "编辑格口信息") + @PutMapping("/cell") + public ResponseDTO updateCell(@RequestBody UpdateCabinetCellCommand command) { + if (command.getCellId() == null) { + throw new ApiException(ErrorCode.Client.COMMON_REQUEST_PARAMETERS_INVALID, "cellId不能为空"); + } + + try { + command.setUpdaterId(0L); + command.setUpdateTime(new Date()); + cabinetCellApplicationService.updateCabinetCell(command); + return ResponseDTO.ok(); + } catch (Exception e) { + log.error("编辑格口信息失败", e); + throw new ApiException(ErrorCode.Internal.INTERNAL_ERROR, e.getMessage()); + } + } } diff --git a/agileboot-common/src/main/java/com/agileboot/common/enums/ModeEnum.java b/agileboot-common/src/main/java/com/agileboot/common/enums/ModeEnum.java new file mode 100644 index 0000000..4af1206 --- /dev/null +++ b/agileboot-common/src/main/java/com/agileboot/common/enums/ModeEnum.java @@ -0,0 +1,45 @@ +package com.agileboot.common.enums; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +public enum ModeEnum { + PAY_CABINET(0, "支付柜"), + APPROVAL_CABINET(1, "审批柜"), + BORROW_RETURN_CABINET(2, "借还柜"), + MEMBER_CABINET(3, "会员柜"), + CONSUMABLE_CABINET(4, "耗材柜"), + TEMPORARY_CABINET(5, "暂存柜"); + + private final int code; + private final String description; + + ModeEnum(int code, String description) { + this.code = code; + this.description = description; + } + + public int getCode() { + return code; + } + + public String getDescription() { + return description; + } + + public static ModeEnum fromCode(int code) { + for (ModeEnum mode : values()) { + if (mode.code == code) { + return mode; + } + } + return null; + } + + public static List getCodeList() { + return Arrays.stream(values()) + .map(mode -> mode.code) + .collect(Collectors.toList()); + } +} diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/db/CabinetCellEntity.java b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/db/CabinetCellEntity.java index fd8f2df..01a26d2 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/db/CabinetCellEntity.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/cell/db/CabinetCellEntity.java @@ -67,6 +67,10 @@ public class CabinetCellEntity extends BaseEntity { @TableField("password_create_time") private Date passwordCreateTime; + @ApiModelProperty("格口备注") + @TableField("remark") + private String remark; + @ApiModelProperty("是否已租用:0-未租用,1-已租用") @TableField("is_rented") private Integer isRented; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/SmartCabinetApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/SmartCabinetApplicationService.java index 9ddf020..d1555e4 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/SmartCabinetApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/SmartCabinetApplicationService.java @@ -232,6 +232,7 @@ public class SmartCabinetApplicationService { cellInfo.setPassword(cell.getPassword()); cellInfo.setUsageStatus(cell.getUsageStatus()); cellInfo.setCellType(cell.getCellType()); + cellInfo.setRemark(cell.getRemark()); // 处理单元格关联的商品信息 if (cell.getGoodsId() != null) { diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/dto/CabinetDetailDTO.java b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/dto/CabinetDetailDTO.java index 415ebb5..98ec290 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/dto/CabinetDetailDTO.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/dto/CabinetDetailDTO.java @@ -25,6 +25,7 @@ public class CabinetDetailDTO { private String password; private Integer usageStatus; private Integer cellType; + private String remark; } @Data diff --git a/sql/20251216_cabinet_cell.sql b/sql/20251216_cabinet_cell.sql index 50ddc9a..1ede162 100644 --- a/sql/20251216_cabinet_cell.sql +++ b/sql/20251216_cabinet_cell.sql @@ -4,4 +4,7 @@ AFTER `cell_price`; ALTER TABLE `cabinet_cell` ADD COLUMN `password_create_time` datetime DEFAULT NULL COMMENT '格口密码创建时间' -AFTER `password`; \ No newline at end of file +AFTER `password`; + +ALTER TABLE `cabinet_cell` +ADD COLUMN `remark` VARCHAR(1024) DEFAULT NULL COMMENT '格口备注';