tanzhongran 3 yıl önce
ebeveyn
işleme
f137a79785

+ 97 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/SkuController.java

@@ -0,0 +1,97 @@
+package com.abi.qms.platform.controller.console;
+
+import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.res.GetSkuRes;
+import com.abi.qms.platform.dto.res.ListSkuRes;
+import com.abi.qms.platform.service.SkuService;
+import com.abi.task.common.api.base.BaseResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * <p>
+ * 商品管理
+ * </p>
+ *
+ * @author Andy.Tan
+ */
+@Slf4j
+@RestController
+@RequestMapping("sku")
+@Api(tags = "商品管理")
+public class SkuController {
+
+    @Autowired
+    private SkuService skuService;
+
+
+    @ApiOperation("新增商品")
+    @PostMapping("addSku")
+    public BaseResponse addSku(@Validated @RequestBody AddSkuReq addSkuReq) throws Exception{
+        //新增商品
+        skuService.addSku(addSkuReq);
+        //包装出参
+        return BaseResponse.create();
+    }
+
+    @ApiOperation("编辑商品")
+    @PostMapping("updateSku")
+    public BaseResponse updateSku(@Validated @RequestBody UpdateSkuReq updateSkuReq) throws Exception{
+        //编辑商品
+        skuService.updateSku(updateSkuReq);
+        //包装出参
+        return BaseResponse.create();
+    }
+
+    @ApiOperation("分页查询商品")
+    @GetMapping("listSku")
+    public BaseResponse<ListSkuRes> listSku(@Validated ListSkuReq listSkuReq) throws Exception{
+        //分页查询商品
+        ListSkuRes result = skuService.listSku(listSkuReq);
+        //包装出参
+        return BaseResponse.create(result);
+    }
+
+    @ApiOperation("查询商品明细")
+    @GetMapping("getSku")
+    public BaseResponse<GetSkuRes> getSku(@Validated GetSkuReq getSkuReq) throws Exception{
+        //查询商品明细
+        GetSkuRes  result = skuService.getSku(getSkuReq);
+        //包装出参
+        return BaseResponse.create(result);
+    }
+
+    @ApiOperation("商品启用")
+    @PostMapping("enableSku")
+    public BaseResponse enableSku(@Validated @RequestBody EnableSkuReq enableSkuReq) throws Exception{
+        //商品启用
+        skuService.enableSku(enableSkuReq);
+        //包装出参
+        return BaseResponse.create();
+    }
+
+    @ApiOperation("商品禁用")
+    @PostMapping("disableSku")
+    public BaseResponse disableSku(@Validated @RequestBody DisableSkuReq disableSkuReq) throws Exception{
+        //商品禁用
+        skuService.disableSku(disableSkuReq);
+        //包装出参
+        return BaseResponse.create();
+    }
+
+}
+
+
+
+
+
+
+
+

+ 3 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/BaseSku.java

@@ -36,6 +36,9 @@ public class BaseSku {
 	@Schema(name = "子品牌code")
     private String subBrandCode;
 
+    @Schema(name = "是否有效 0-无效 1-有效")
+    private Integer valid;
+
 	@Schema(name = "创建时间")
     private LocalDateTime createTime;
 

+ 28 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/AddSkuReq.java

@@ -0,0 +1,28 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 新增商品入参
+ */
+@Data
+@Schema
+public class AddSkuReq implements Serializable {
+
+    @Schema(name = "商品编号(即页面上手输的skuid)")
+    private String skuCode;
+
+    @Schema(name = "sku名称")
+    private String skuName;
+
+    @Schema(name = "品牌code")
+    private String brandCode;
+
+    @Schema(name = "子品牌code")
+    private String subBrandCode;
+
+
+}

+ 21 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/DisableSkuReq.java

@@ -0,0 +1,21 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 商品入参
+ */
+@Data
+@Schema
+public class DisableSkuReq implements Serializable {
+
+    @NotNull(message = "ID为空")
+    @Schema(name = "ids")
+    private List<Long> ids;
+
+}

+ 21 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/EnableSkuReq.java

@@ -0,0 +1,21 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 商品入参
+ */
+@Data
+@Schema
+public class EnableSkuReq implements Serializable {
+
+    @NotNull(message = "ID为空")
+    @Schema(name = "ids")
+    private List<Long> ids;
+
+}

+ 21 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/GetSkuReq.java

@@ -0,0 +1,21 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 查询商品明细入参
+ */
+@Data
+@Schema
+public class GetSkuReq implements Serializable {
+
+    @NotNull(message = "ID为空")
+    @Schema(name = "id")
+    private Long id;
+
+}

+ 16 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/ListSkuReq.java

@@ -0,0 +1,16 @@
+package com.abi.qms.platform.dto.req;
+
+import com.abi.task.common.api.base.PageReq;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 分页查询商品入参
+ */
+@Data
+@Schema
+public class ListSkuReq extends PageReq implements Serializable {
+
+}

+ 31 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/UpdateSkuReq.java

@@ -0,0 +1,31 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 编辑商品入参
+ */
+@Data
+@Schema
+public class UpdateSkuReq implements Serializable {
+
+    @Schema(name = "id")
+    private Long id;
+
+    @Schema(name = "商品编号(即页面上手输的skuid)")
+    private String skuCode;
+
+    @Schema(name = "sku名称")
+    private String skuName;
+
+    @Schema(name = "品牌code")
+    private String brandCode;
+
+    @Schema(name = "子品牌code")
+    private String subBrandCode;
+
+
+}

+ 45 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/GetSkuRes.java

@@ -0,0 +1,45 @@
+package com.abi.qms.platform.dto.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 查询商品明细出参
+ */
+@Data
+@Schema
+public class GetSkuRes implements Serializable {
+
+    @Schema(name = "id")
+    private Long id;
+
+    @Schema(name = "商品编号(即页面上手输的skuid)")
+    private String skuCode;
+
+    @Schema(name = "sku名称")
+    private String skuName;
+
+    @Schema(name = "品牌code")
+    private String brandCode;
+
+    @Schema(name = "子品牌code")
+    private String subBrandCode;
+
+    @Schema(name = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @Schema(name = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+}

+ 61 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListSkuRes.java

@@ -0,0 +1,61 @@
+package com.abi.qms.platform.dto.res;
+
+import com.abi.task.common.api.base.PageResp;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 分页查询商品出参
+ */
+@Data
+@Schema
+public class ListSkuRes extends PageResp implements Serializable {
+
+    @Schema(name = "商品列表")
+    private List<SkuBean> skuBeanList;
+
+    /**
+     * 商品bean
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "ListSkuRes_Sku")
+    public static class SkuBean implements Serializable {
+
+        @Schema(name = "id")
+        private Long id;
+
+        @Schema(name = "商品编号(即页面上手输的skuid)")
+        private String skuCode;
+
+        @Schema(name = "sku名称")
+        private String skuName;
+
+        @Schema(name = "品牌code")
+        private String brandCode;
+
+        @Schema(name = "子品牌code")
+        private String subBrandCode;
+
+        @Schema(name = "创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+        @Schema(name = "修改时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime updateTime;
+
+    }
+}

+ 57 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/SkuService.java

@@ -0,0 +1,57 @@
+package com.abi.qms.platform.service;
+
+
+import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.res.GetSkuRes;
+import com.abi.qms.platform.dto.res.ListSkuRes;
+
+/**
+ * <p>
+ * 商品管理
+ * </p>
+ *
+ * @author Andy.Tan
+ */
+public interface SkuService{
+
+
+    /**
+     * 新增商品
+     * @param addSkuReq
+     * @throws Exception
+     */
+    void addSku(AddSkuReq addSkuReq);
+
+    /**
+     * 编辑商品
+     * @param updateSkuReq
+     */
+    void updateSku(UpdateSkuReq updateSkuReq);
+
+    /**
+     * 分页查询商品
+     * @param listSkuReq
+     * @return
+     */
+    ListSkuRes listSku(ListSkuReq listSkuReq);
+
+    /**
+     * 查询商品明细
+     * @param getSkuReq
+     * @return
+     */
+    GetSkuRes getSku(GetSkuReq getSkuReq);
+
+    /**
+     * 商品启用
+     * @param enableSkuReq
+     */
+    void enableSku(EnableSkuReq enableSkuReq);
+
+    /**
+     * 商品禁用
+     * @param disableSkuReq
+     */
+    void disableSku(DisableSkuReq disableSkuReq);
+
+}

+ 163 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/SkuServiceImpl.java

@@ -0,0 +1,163 @@
+package com.abi.qms.platform.service.impl;
+
+import com.abi.qms.platform.dao.entity.BaseSku;
+import com.abi.qms.platform.dao.enums.ValidEnum;
+import com.abi.qms.platform.dao.mapper.BaseSkuMapper;
+import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.res.GetSkuRes;
+import com.abi.qms.platform.dto.res.ListSkuRes;
+import com.abi.qms.platform.infrastructure.util.AssertUtil;
+import com.abi.qms.platform.infrastructure.util.PageUtil;
+import com.abi.qms.platform.service.SkuService;
+import com.abi.task.common.utils.PojoConverterUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 商品
+ * </p>
+ *
+ * @author Andy.Tan
+ */
+@Service
+public class SkuServiceImpl implements SkuService {
+
+    @Autowired
+    private BaseSkuMapper baseSkuMapper;
+
+
+    /**
+     * 新增商品
+     */
+    @Override
+    public void addSku(AddSkuReq req){
+        //校验入参
+        //TODO
+
+        //1-新增
+        BaseSku sku = new BaseSku();
+        sku.setSkuCode(req.getSkuCode());
+        sku.setSkuName(req.getSkuName());
+        sku.setBrandCode(req.getBrandCode());
+        sku.setSubBrandCode(req.getSubBrandCode());
+        baseSkuMapper.insert(sku);
+
+    }
+
+    /**
+     * 编辑商品
+     */
+    @Override
+    public void updateSku(UpdateSkuReq req){
+
+        //1-查询商品
+        BaseSku sku = baseSkuMapper.selectById(req.getId());
+        AssertUtil.isNull(sku,"商品不存在");
+
+        //2-修改商品
+        sku.setSkuCode(req.getSkuCode());
+        sku.setSkuName(req.getSkuName());
+        sku.setBrandCode(req.getBrandCode());
+        sku.setSubBrandCode(req.getSubBrandCode());
+        baseSkuMapper.updateById(sku);
+
+    }
+
+    /**
+     * 分页查询商品
+     */
+    @Override
+    public ListSkuRes listSku(ListSkuReq req){
+
+        //1-拼接条件
+        QueryWrapper<BaseSku> skuQw = new QueryWrapper<>();
+        //skuQw.like(StringUtils.isNotBlank(req.getXxx()), "xxx_xxx", "%" + req.getXxx() + "%");
+        //skuQw.eq(req.getXxx2() != null, "xxx_xxx2", req.getXxx2());
+
+        //2-分页查询
+        IPage<BaseSku> iPage = baseSkuMapper.selectPage(PageUtil.createPage(req), skuQw);
+        List<BaseSku> skuList = iPage.getRecords();
+
+        //封装出参
+        ListSkuRes res = new ListSkuRes();
+        //放入分页信息
+        PageUtil.copyPageInfo(res, iPage);
+        //放入出参列表
+        List<ListSkuRes.SkuBean> skuBeanList = PojoConverterUtils.copyList(skuList, ListSkuRes.SkuBean.class);
+        res.setSkuBeanList(skuBeanList);
+
+        return res;
+
+    }
+
+    /**
+     * 查询商品明细
+     */
+    @Override
+    public GetSkuRes getSku(GetSkuReq req){
+
+        //1-查询商品对象
+        BaseSku sku = baseSkuMapper.selectById(req.getId());
+        AssertUtil.isNull(sku, "商品不存在");
+
+        //转化出参
+        GetSkuRes res = PojoConverterUtils.copy(sku, GetSkuRes.class);
+
+        return res;
+
+    }
+
+    /**
+     * 商品启用
+     */
+    @Override
+    public void enableSku(EnableSkuReq req){
+        List<Long> ids = req.getIds();
+
+        //循环启用
+        for (Long id : ids) {
+            //1-查询活动对象
+            BaseSku sku = baseSkuMapper.selectById(id);
+            AssertUtil.isNull(sku, "商品不存在");
+
+            if (!ValidEnum.NOT_VALID.is(sku.getValid())) {
+                continue;
+            }
+
+            //2-修改状态
+            sku.setValid(ValidEnum.VALID.getCode());
+            baseSkuMapper.updateById(sku);
+        }
+    }
+
+    /**
+     * 商品禁用
+     */
+    @Override
+    public void disableSku(DisableSkuReq req){
+        List<Long> ids = req.getIds();
+
+        //循环禁用
+        for (Long id : ids) {
+            //1-查询活动对象
+            BaseSku sku = baseSkuMapper.selectById(id);
+            AssertUtil.isNull(sku, "商品不存在");
+
+            if (!ValidEnum.VALID.is(sku.getValid())) {
+                return;
+            }
+
+            //2-修改状态
+            sku.setValid(ValidEnum.NOT_VALID.getCode());
+            baseSkuMapper.updateById(sku);
+        }
+    }
+
+}

+ 2 - 1
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BaseSkuMapper.xml

@@ -9,6 +9,7 @@
         <result column="sku_name" property="skuName" />
         <result column="brand_code" property="brandCode" />
         <result column="sub_brand_code" property="subBrandCode" />
+        <result column="valid" property="valid" />
         <result column="create_time" property="createTime" />
         <result column="create_by" property="createBy" />
         <result column="update_time" property="updateTime" />
@@ -18,7 +19,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, sku_code, sku_name, brand_code, sub_brand_code, create_time, create_by, update_time, update_by, is_delete
+        id, sku_code, sku_name, brand_code, sub_brand_code, valid, create_time, create_by, update_time, update_by, is_delete
     </sql>
 
 </mapper>