ソースを参照

价格表-添加字段

liyafei 4 日 前
コミット
aaff2d4506

+ 110 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreProductItem.java

@@ -0,0 +1,110 @@
+package shop.alien.entity.store;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 商品表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("store_product_item")
+@ApiModel(value = "StoreProductItem对象", description = "商品表")
+public class StoreProductItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "父id")
+    @TableField(value = "pid", fill = FieldFill.INSERT)
+    private Long pid;
+
+    @ApiModelProperty(value = "门店id")
+    @TableField("store_id")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "商品名称")
+    @TableField("prod_name")
+    private String prodName;
+
+    @ApiModelProperty(value = "商品类型,整型枚举:1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次")
+    @TableField("prod_type")
+    private Integer prodType;
+
+    @ApiModelProperty(value = "图片列表,最多 9 张 URL")
+    @TableField("images")
+    private String images;
+
+    @ApiModelProperty(value = "图文详情-图片")
+    @TableField("image_content")
+    private String imageContent;
+
+    @ApiModelProperty(value = "图文详情-文字")
+    @TableField("detail_content")
+    private String detailContent;
+
+    @ApiModelProperty(value = "补充说明")
+    @TableField("extra_note")
+    private String extraNote;
+
+    @ApiModelProperty(value = "是否需要预约:0=否,1=是")
+    @TableField("need_reserve")
+    private Integer needReserve;
+
+    @ApiModelProperty(value = "预约规则")
+    @TableField("reserve_rule")
+    private String reserveRule;
+
+    @ApiModelProperty(value = "适用人数")
+    @TableField("people_limit")
+    private Integer peopleLimit;
+
+    @ApiModelProperty(value = "使用规则")
+    @TableField("usage_rule")
+    private String usageRule;
+
+    @ApiModelProperty(value = "状态:0-待审核 1-审核通过 2-审核拒绝")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "拒绝原因")
+    @TableField("rejection_reason")
+    private String rejectionReason;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("created_user_id")
+    private Long createdUserId;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("updated_user_id")
+    private Long updatedUserId;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "created_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+}
+

+ 37 - 0
alien-entity/src/main/resources/mapper/StoreProductItemMapper.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="shop.alien.mapper.StoreProductItemMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="shop.alien.entity.store.StoreProductItem">
+        <id column="id" property="id" />
+        <result column="pid" property="pid" />
+        <result column="store_id" property="storeId" />
+        <result column="prod_name" property="prodName" />
+        <result column="prod_type" property="prodType" />
+        <result column="images" property="images" />
+        <result column="image_content" property="imageContent" />
+        <result column="detail_content" property="detailContent" />
+        <result column="extra_note" property="extraNote" />
+        <result column="need_reserve" property="needReserve" />
+        <result column="reserve_rule" property="reserveRule" />
+        <result column="people_limit" property="peopleLimit" />
+        <result column="usage_rule" property="usageRule" />
+        <result column="status" property="status" />
+        <result column="rejection_reason" property="rejectionReason" />
+        <result column="delete_flag" property="deleteFlag" />
+        <result column="created_user_id" property="createdUserId" />
+        <result column="updated_user_id" property="updatedUserId" />
+        <result column="created_time" property="createdTime" />
+        <result column="updated_time" property="updatedTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, pid, store_id, prod_name, prod_type, images, image_content, detail_content, 
+        extra_note, need_reserve, reserve_rule, people_limit, usage_rule, status, 
+        rejection_reason, delete_flag, created_user_id, updated_user_id, created_time, updated_time
+    </sql>
+
+</mapper>
+

+ 66 - 64
alien-store/src/main/java/shop/alien/store/config/MyBatisFieldHandler.java

@@ -1,64 +1,66 @@
-package shop.alien.store.config;
-
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.reflection.MetaObject;
-import org.springframework.stereotype.Component;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import shop.alien.util.common.JwtUtil;
-
-import java.util.Date;
-import java.util.Objects;
-
-/**
- * Mybatis日期填充
- *
- * @author ssk
- * @version 1.0
- * @date 2024/12/6 10:19
- */
-@Component
-@Slf4j
-public class MyBatisFieldHandler implements MetaObjectHandler {
-
-    /**
-     * insert操作时填充方法
-     *
-     * @param metaObject 元对象
-     */
-    @Override
-    public void insertFill(MetaObject metaObject) {
-        log.info("=================================insertFill=========================================");
-        System.out.println(metaObject.getOriginalObject());
-        //字段为实体类名, 不是表字段名
-        this.setFieldValByName("createdTime", new Date(), metaObject);
-        this.setFieldValByName("updatedTime", new Date(), metaObject);
-        if (JwtUtil.hasToken()) {
-            this.setFieldValByName("createdUserId", Objects.requireNonNull(JwtUtil.getCurrentUserInfo()).getInteger("userId"), metaObject);
-            this.setFieldValByName("updatedUserId", Objects.requireNonNull(JwtUtil.getCurrentUserInfo()).getInteger("userId"), metaObject);
-        } else {
-            this.setFieldValByName("createdUserId", 0, metaObject);
-            this.setFieldValByName("updatedUserId", 0, metaObject);
-        }
-    }
-
-    /**
-     * update操作时填充方法
-     *
-     * @param metaObject 元对象
-     */
-    @Override
-    public void updateFill(MetaObject metaObject) {
-        log.info("=================================updateFill=========================================");
-        //字段为实体类名, 不是表字段名
-        this.setFieldValByName("updatedTime", new Date(), metaObject);
-        if (JwtUtil.hasToken()) {
-            this.setFieldValByName("updatedUserId", Objects.requireNonNull(JwtUtil.getCurrentUserInfo()).getInteger("userId"), metaObject);
-        } else {
-            this.setFieldValByName("updatedUserId", 0, metaObject);
-        }
-    }
-}
+package shop.alien.store.config;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import shop.alien.util.common.JwtUtil;
+
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * Mybatis日期填充
+ *
+ * @author ssk
+ * @version 1.0
+ * @date 2024/12/6 10:19
+ */
+@Component
+@Slf4j
+public class MyBatisFieldHandler implements MetaObjectHandler {
+
+    /**
+     * insert操作时填充方法
+     *
+     * @param metaObject 元对象
+     */
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.info("=================================insertFill=========================================");
+        System.out.println(metaObject.getOriginalObject());
+        //字段为实体类名, 不是表字段名
+        this.setFieldValByName("createdTime", new Date(), metaObject);
+        this.setFieldValByName("updatedTime", new Date(), metaObject);
+        // 设置pid默认值为0
+        this.setFieldValByName("pid", 0L, metaObject);
+        if (JwtUtil.hasToken()) {
+            this.setFieldValByName("createdUserId", Objects.requireNonNull(JwtUtil.getCurrentUserInfo()).getInteger("userId"), metaObject);
+            this.setFieldValByName("updatedUserId", Objects.requireNonNull(JwtUtil.getCurrentUserInfo()).getInteger("userId"), metaObject);
+        } else {
+            this.setFieldValByName("createdUserId", 0, metaObject);
+            this.setFieldValByName("updatedUserId", 0, metaObject);
+        }
+    }
+
+    /**
+     * update操作时填充方法
+     *
+     * @param metaObject 元对象
+     */
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.info("=================================updateFill=========================================");
+        //字段为实体类名, 不是表字段名
+        this.setFieldValByName("updatedTime", new Date(), metaObject);
+        if (JwtUtil.hasToken()) {
+            this.setFieldValByName("updatedUserId", Objects.requireNonNull(JwtUtil.getCurrentUserInfo()).getInteger("userId"), metaObject);
+        } else {
+            this.setFieldValByName("updatedUserId", 0, metaObject);
+        }
+    }
+}

+ 128 - 0
alien-store/src/main/java/shop/alien/store/controller/StoreProductItemController.java

@@ -0,0 +1,128 @@
+package shop.alien.store.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.*;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+import shop.alien.entity.result.R;
+import shop.alien.entity.store.StoreProductItem;
+import shop.alien.store.service.StoreProductItemService;
+import shop.alien.util.myBaticsPlus.QueryBuilder;
+
+import java.util.List;
+
+/**
+ * 商品表 前端控制器
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Slf4j
+@Api(tags = {"商品管理"})
+@CrossOrigin
+@RestController
+@RequestMapping("/storeProductItem")
+@RequiredArgsConstructor
+public class StoreProductItemController {
+
+    private final StoreProductItemService storeProductItemService;
+
+    @ApiOperation("新增商品")
+    @ApiOperationSupport(order = 1)
+    @PostMapping("/add")
+    public R<StoreProductItem> addStoreProductItem(@RequestBody StoreProductItem storeProductItem) {
+        log.info("StoreProductItemController.addStoreProductItem?storeProductItem={}", storeProductItem);
+        return storeProductItemService.addStoreProductItem(storeProductItem);
+    }
+
+    @ApiOperation("编辑商品")
+    @ApiOperationSupport(order = 2)
+    @PostMapping("/edit")
+    public R<StoreProductItem> editStoreProductItem(@RequestBody StoreProductItem storeProductItem) {
+        log.info("StoreProductItemController.editStoreProductItem?storeProductItem={}", storeProductItem);
+        return storeProductItemService.editStoreProductItem(storeProductItem);
+    }
+
+    @ApiOperation("删除商品")
+    @ApiOperationSupport(order = 3)
+    @DeleteMapping("/delete")
+    public R<Boolean> deleteStoreProductItem(@RequestParam(value = "id") Long id) {
+        log.info("StoreProductItemController.deleteStoreProductItem?id={}", id);
+        return storeProductItemService.deleteStoreProductItem(id);
+    }
+
+    @ApiOperation("根据ID查询商品")
+    @ApiOperationSupport(order = 4)
+    @GetMapping("/getById")
+    public R<StoreProductItem> getStoreProductItemById(@RequestParam(value = "id") Long id) {
+        log.info("StoreProductItemController.getStoreProductItemById?id={}", id);
+        return storeProductItemService.getStoreProductItemById(id);
+    }
+
+    @ApiOperation("保存或更新商品")
+    @ApiOperationSupport(order = 5)
+    @PostMapping("/saveOrUpdate")
+    public R<StoreProductItem> saveOrUpdate(@RequestBody StoreProductItem storeProductItem) {
+        log.info("StoreProductItemController.saveOrUpdate?storeProductItem={}", storeProductItem);
+        boolean result = storeProductItemService.saveOrUpdate(storeProductItem);
+        if (result) {
+            return R.data(storeProductItem);
+        }
+        return R.fail("操作失败");
+    }
+
+    @ApiOperation("通用列表查询")
+    @ApiOperationSupport(order = 6)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "主键", dataType = "Long", paramType = "query"),
+            @ApiImplicitParam(name = "pid", value = "父id", dataType = "Long", paramType = "query"),
+            @ApiImplicitParam(name = "storeId", value = "门店id", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "prodName", value = "商品名称", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "prodType", value = "商品类型(1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次)", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "needReserve", value = "是否需要预约(0=否,1=是)", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "status", value = "状态(0-待审核 1-审核通过 2-审核拒绝)", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "rejectionReason", value = "拒绝原因", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "createdTime_Start", value = "创建时间开始(范围查询)", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "createdTime_End", value = "创建时间结束(范围查询)", dataType = "String", paramType = "query")
+    })
+    @GetMapping("/getList")
+    public R<List<StoreProductItem>> getList(@ModelAttribute StoreProductItem storeProductItem) {
+        log.info("StoreProductItemController.getList?storeProductItem={}", storeProductItem);
+        List<StoreProductItem> list = QueryBuilder.of(storeProductItem)
+                .build()
+                .list(storeProductItemService);
+        return R.data(list);
+    }
+
+    @ApiOperation("通用分页查询")
+    @ApiOperationSupport(order = 7)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page", value = "页数(默认1)", dataType = "int", paramType = "query"),
+            @ApiImplicitParam(name = "size", value = "页容(默认10)", dataType = "int", paramType = "query"),
+            @ApiImplicitParam(name = "id", value = "主键", dataType = "Long", paramType = "query"),
+            @ApiImplicitParam(name = "pid", value = "父id", dataType = "Long", paramType = "query"),
+            @ApiImplicitParam(name = "storeId", value = "门店id", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "prodName", value = "商品名称", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "prodType", value = "商品类型(1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次)", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "needReserve", value = "是否需要预约(0=否,1=是)", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "status", value = "状态(0-待审核 1-审核通过 2-审核拒绝)", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "rejectionReason", value = "拒绝原因", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "createdTime_Start", value = "创建时间开始(范围查询)", dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "createdTime_End", value = "创建时间结束(范围查询)", dataType = "String", paramType = "query")
+    })
+    @GetMapping("/getPage")
+    public R<IPage<StoreProductItem>> getPage(@ModelAttribute StoreProductItem storeProductItem,
+                                              @RequestParam(defaultValue = "1") int page,
+                                              @RequestParam(defaultValue = "10") int size) {
+        log.info("StoreProductItemController.getPage?storeProductItem={},page={},size={}", storeProductItem, page, size);
+        int pageNum = page > 0 ? page : 1;
+        int pageSize = size > 0 ? size : 10;
+        IPage<StoreProductItem> pageResult = QueryBuilder.of(storeProductItem)
+                .page(pageNum, pageSize)
+                .build()
+                .page(storeProductItemService);
+        return R.data(pageResult);
+    }
+}
+