From bad63e65d7bf98a7869d03a9f35d3837dc6f574a Mon Sep 17 00:00:00 2001 From: dzq Date: Mon, 21 Apr 2025 11:40:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=95=86=E5=93=81=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8=E5=AE=A1=E6=89=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在商品管理模块中新增自动审批功能,包括在商品表单、编辑模态框和列表中添加自动审批开关及相关逻辑。同时更新了商品DTO接口以支持自动审批字段。 --- src/api/shop/goods.ts | 22 +++++ src/api/shop/java/SearchShopOrderQuery.java | 34 -------- src/api/shop/java/ShopOrderController.java | 31 ------- src/api/shop/java/ShopOrderEntity.java | 94 --------------------- src/views/shop/goods/goods-edit-modal.vue | 5 ++ src/views/shop/goods/goods-form-modal.vue | 10 ++- src/views/shop/goods/index.vue | 9 +- 7 files changed, 43 insertions(+), 162 deletions(-) delete mode 100644 src/api/shop/java/SearchShopOrderQuery.java delete mode 100644 src/api/shop/java/ShopOrderController.java delete mode 100644 src/api/shop/java/ShopOrderEntity.java diff --git a/src/api/shop/goods.ts b/src/api/shop/goods.ts index 6a82c9e..6d07df0 100644 --- a/src/api/shop/goods.ts +++ b/src/api/shop/goods.ts @@ -5,27 +5,48 @@ export interface GoodsQuery extends BasePageQuery { categoryId?: number; status?: number; goodsId?: number; + autoApproval?: number; } /** 商品DTO */ export interface GoodsDTO { + /** 商品ID */ goodsId?: number; + /** 商品名称 */ goodsName: string; + /** 商品分类ID */ categoryId: number; + /** 商品价格 */ price: number; + /** 库存数量 */ stock: number; + /** 商品状态(0下架 1上架) */ status: number; + /** 自动审批开关(0关闭 1开启) */ + autoApproval: number; + /** 商品封面图 */ coverImg: string; + /** 商品详情(富文本) */ goodsDetail: string; + /** 创建人ID */ creatorId?: number; + /** 创建时间 */ createTime?: Date; + /** 更新人ID */ updaterId?: number; + /** 更新时间 */ updateTime?: Date; + /** 备注信息 */ remark?: string; + /** 删除标志(0存在 1删除) */ deleted?: number; + /** 所属货柜名称 */ cabinetName?: string; + /** 货柜单元格编号 */ cellNo?: number; + /** 单元格编号(字符串形式) */ cellNoStr?: string; + /** 总库存量(含所有仓库) */ totalStock?: number; } @@ -36,6 +57,7 @@ export interface GoodsRequest { price: number; stock: number; status: number; + autoApproval: number; coverImg?: string; goodsDetail: string; remark?: string; diff --git a/src/api/shop/java/SearchShopOrderQuery.java b/src/api/shop/java/SearchShopOrderQuery.java deleted file mode 100644 index 95b3fae..0000000 --- a/src/api/shop/java/SearchShopOrderQuery.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.agileboot.domain.shop.order.query; - -import cn.hutool.core.util.StrUtil; -import com.agileboot.common.core.page.AbstractPageQuery; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import java.util.Date; -import lombok.Data; -import lombok.EqualsAndHashCode; - -@EqualsAndHashCode(callSuper = true) -@Data -public class SearchShopOrderQuery extends AbstractPageQuery { - - private String orderNumber; - private Integer status; - private Integer payStatus; - private Date startTime; - private Date endTime; - - @Override - public QueryWrapper addQueryCondition() { - QueryWrapper queryWrapper = new QueryWrapper<>(); - - queryWrapper - .like(StrUtil.isNotEmpty(orderNumber), "order_number", orderNumber) - .eq(status != null, "status", status) - .eq(payStatus != null, "pay_status", payStatus) - .between(startTime != null && endTime != null, "create_time", startTime, endTime) - .eq("deleted", 0) - .orderByDesc("create_time"); - - return queryWrapper; - } -} \ No newline at end of file diff --git a/src/api/shop/java/ShopOrderController.java b/src/api/shop/java/ShopOrderController.java deleted file mode 100644 index e445945..0000000 --- a/src/api/shop/java/ShopOrderController.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.agileboot.admin.controller.shop; - -import com.agileboot.common.core.base.BaseController; -import com.agileboot.common.core.dto.ResponseDTO; -import com.agileboot.common.core.page.PageDTO; -import com.agileboot.domain.shop.order.OrderApplicationService; -import com.agileboot.domain.shop.order.db.ShopOrderEntity; -import com.agileboot.domain.shop.order.query.SearchShopOrderQuery; -import io.swagger.v3.oas.annotations.Operation; -import lombok.RequiredArgsConstructor; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/shop/order") -@RequiredArgsConstructor -@Validated -public class ShopOrderController extends BaseController { - private OrderApplicationService orderApplicationService; - - - @Operation(summary = "订单列表") -// @PreAuthorize("@permission.has('shop:goods:list')") - @GetMapping("/list") - public ResponseDTO> list(SearchShopOrderQuery query) { - PageDTO page = orderApplicationService.getOrderList(query); - return ResponseDTO.ok(page); - } -} diff --git a/src/api/shop/java/ShopOrderEntity.java b/src/api/shop/java/ShopOrderEntity.java deleted file mode 100644 index 553cd32..0000000 --- a/src/api/shop/java/ShopOrderEntity.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.agileboot.domain.shop.order.db; - -import com.agileboot.common.core.base.BaseEntity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -/** - *

- * 商品订单表 - *

- * - * @author valarchie - * @since 2025-03-10 - */ -@Getter -@Setter -@TableName("shop_order") -@ApiModel(value = "ShopOrderEntity对象", description = "商品订单表") -public class ShopOrderEntity extends BaseEntity { - - private static final long serialVersionUID = 1L; - - @ApiModelProperty("订单唯一ID") - @TableId(value = "order_id", type = IdType.AUTO) - private Long orderId; - - @ApiModelProperty("ucid") - @TableField("ucid") - private String ucid; - - @ApiModelProperty("openid") - @TableField("openid") - private String openid; - - @ApiModelProperty("支付网关交易id") - @TableField("trade_id") - private String tradeId; - - @ApiModelProperty("手机号码") - @TableField("mobile") - private String mobile; - - @ApiModelProperty("企业微信用户ID或汇邦云用户ID") - @TableField("userid") - private String userid; - - @ApiModelProperty("用户姓名") - @TableField("name") - private String name; - - @ApiModelProperty("是否内部用户(0否 1汇邦云用户 2企业微信用户)") - @TableField("is_internal") - private Integer isInternal; - - @ApiModelProperty("业务系统订单ID(对接外部系统)") - @TableField("biz_order_id") - private String bizOrderId; - - @ApiModelProperty("订单总金额") - @TableField("total_amount") - private BigDecimal totalAmount; - - @ApiModelProperty("订单状态(1待付款 2已付款 3已发货 4已完成 5已取消)") - @TableField("`status`") - private Integer status; - - @ApiModelProperty("支付状态(1未支付 2已支付 3退款中 4已退款)") - @TableField("pay_status") - private Integer payStatus; - - @ApiModelProperty("支付方式") - @TableField("payment_method") - private String paymentMethod; - - @ApiModelProperty("支付时间") - @TableField("pay_time") - private Date payTime; - - - @Override - public Serializable pkVal() { - return this.orderId; - } - -} diff --git a/src/views/shop/goods/goods-edit-modal.vue b/src/views/shop/goods/goods-edit-modal.vue index 145ffaf..24d4931 100644 --- a/src/views/shop/goods/goods-edit-modal.vue +++ b/src/views/shop/goods/goods-edit-modal.vue @@ -29,6 +29,7 @@ const formData = reactive({ price: 0, stock: 0, status: 1, + autoApproval: 0, categoryId: 0, goodsDetail: "", coverImg: "" @@ -154,6 +155,10 @@ watch( + + + 上架 diff --git a/src/views/shop/goods/goods-form-modal.vue b/src/views/shop/goods/goods-form-modal.vue index c2699ef..3ab7baa 100644 --- a/src/views/shop/goods/goods-form-modal.vue +++ b/src/views/shop/goods/goods-form-modal.vue @@ -2,7 +2,7 @@ import { ref, reactive, onMounted, watch } from "vue"; import { ElMessage, FormRules } from "element-plus"; import { useRenderIcon } from "@/components/ReIcon/src/hooks"; -import { addGoodsApi } from "@/api/shop/goods"; +import { addGoodsApi, GoodsDTO } from "@/api/shop/goods"; import { CategoryDTO, getCategoryAllApi } from "@/api/shop/category"; import Confirm from "@iconify-icons/ep/check"; import Upload from "@iconify-icons/ep/upload"; @@ -18,11 +18,12 @@ const props = defineProps({ const emit = defineEmits(["update:visible", "refresh"]); const formRef = ref(); -const formData = reactive({ +const formData = reactive({ goodsName: "", price: 0, stock: 0, status: 1, + autoApproval: 0, categoryId: 0, goodsDetail: "", coverImg: "" @@ -123,6 +124,11 @@ const beforeAvatarUpload = (rawFile) => { + + + + 上架 diff --git a/src/views/shop/goods/index.vue b/src/views/shop/goods/index.vue index dd019e4..93ac198 100644 --- a/src/views/shop/goods/index.vue +++ b/src/views/shop/goods/index.vue @@ -38,7 +38,7 @@ const pagination = ref({ // 加载数据 const loading = ref(false); -const dataList = ref([]); +const dataList = ref([]); const multipleSelection = ref([]); const editVisible = ref(false); const configVisible = ref(false); @@ -181,6 +181,13 @@ const handleEdit = (row: GoodsDTO) => { + + +