diff --git a/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductType.java b/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductType.java new file mode 100644 index 00000000..d5aeaa87 --- /dev/null +++ b/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductType.java @@ -0,0 +1,24 @@ +package com.yxt.supervise.cyf.api.producttype; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author feikefei + * @create 2023-05-22-15:48 + */ +@Data +@ApiModel(value = "商品类型信息", description = "商品类型信息") +@TableName("product_type") +public class ProductType extends BaseEntity { + //商品类型名称 + private String name; + //商品类型编号 + private String number; + //上级sid + private String pSid; + //产品sid + private String prodSid; +} diff --git a/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeDto.java b/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeDto.java new file mode 100644 index 00000000..66a3c32c --- /dev/null +++ b/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeDto.java @@ -0,0 +1,27 @@ +package com.yxt.supervise.cyf.api.producttype; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.List; + +/** + * @author feikefei + * @create 2023-05-22-15:53 + */ +@Data +@ApiModel(value = "产品类型信息 数据传输对象", description = "产品类型信息 数据传输对象") +public class ProductTypeDto { + private String id; + private String sid; + + //商品类型名称 + private String name; + //商品类型编号 + private String number; + //上级sid + private String pSid; + //产品sid + private String prodSid; + private List typeList; +} diff --git a/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeQuery.java b/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeQuery.java new file mode 100644 index 00000000..ebd267d5 --- /dev/null +++ b/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeQuery.java @@ -0,0 +1,25 @@ +package com.yxt.supervise.cyf.api.producttype; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author feikefei + * @create 2023-05-23-9:21 + */ +@Data +@ApiModel(value = "商品类型信息 分页传输对象数据", description = "商品类型信息 分页传输对象数据") +public class ProductTypeQuery implements Query { + private String id; + private String sid; + + //商品类型名称 + private String name; + //商品类型编号 + private String number; + //上级sid + private String pSid; + //产品sid + private String prodSid; +} diff --git a/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeVo.java b/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeVo.java new file mode 100644 index 00000000..7fcb96c7 --- /dev/null +++ b/yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeVo.java @@ -0,0 +1,29 @@ +package com.yxt.supervise.cyf.api.producttype; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author feikefei + * @create 2023-05-23-9:23 + */ +@Data +@ApiModel(value = "商品类型信息 视图返回字段", description = "商品类型信息 视图返回字段") +public class ProductTypeVo implements Vo { + private String id; + private String sid; + //商品类型名称 + private String name; + //商品类型编号 + private String number; + //上级sid + private String pSid; + //产品sid + private String prodSid; + + //品牌名称 + private String informationName; + //品牌编号 + private String informationNumber; +} diff --git a/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.java b/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.java new file mode 100644 index 00000000..5796d1d6 --- /dev/null +++ b/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.java @@ -0,0 +1,28 @@ +package com.yxt.supervise.cyf.biz.producttype; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.supervise.cyf.api.producttype.ProductType; +import com.yxt.supervise.cyf.api.producttype.ProductTypeVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author feikefei + * @create 2023-05-23-9:04 + */ +@Mapper +public interface ProductTypeMapper extends BaseMapper { + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + + List selectProductType(@Param("sid") String sid); + + Integer selectProductTypeByName(@Param("name") String name); + + Integer selectProductTypeByNumber(@Param("number") String number); +} diff --git a/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.xml b/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.xml new file mode 100644 index 00000000..f74f57c9 --- /dev/null +++ b/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeRest.java b/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeRest.java new file mode 100644 index 00000000..f236197f --- /dev/null +++ b/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeRest.java @@ -0,0 +1,58 @@ +package com.yxt.supervise.cyf.biz.producttype; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.supervise.cyf.api.producttype.ProductTypeDto; +import com.yxt.supervise.cyf.api.producttype.ProductTypeQuery; +import com.yxt.supervise.cyf.api.producttype.ProductTypeVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + + +/** + * @author feikefei + * @create 2023-05-23-9:03 + */ +@Api(tags = "商品类型信息") +@RestController +@RequestMapping("cyf/productType") +public class ProductTypeRest { + + @Autowired + private ProductTypeService productTypeService; + + @ApiOperation("增加") + @PostMapping("/save") + public ResultBean save(@RequestBody ProductTypeDto dto){ + return productTypeService.save(dto); + } + + @ApiOperation("删除") + @DeleteMapping("/delete/{sid}") + public ResultBean del(@PathVariable String sid){ + return productTypeService.del(sid); + } + + @ApiOperation("修改") + @PostMapping("/update") + public ResultBean update(@RequestBody ProductTypeDto dto){ + return productTypeService.update(dto); + } + + @ApiOperation("商品类型信息分页查询") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq){ + ResultBean rb = ResultBean.fireFail(); + PagerVo vo = productTypeService.listPage(pq); + return rb.success().setData(vo); + } + + @ApiOperation("查询当前商品类别") + @GetMapping("/selectProductType/{sid}") + public ResultBean selectProductType(@PathVariable String sid){ + return productTypeService.selectProductType(sid); + } +} diff --git a/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeService.java b/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeService.java new file mode 100644 index 00000000..5f86b2d9 --- /dev/null +++ b/yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeService.java @@ -0,0 +1,101 @@ +package com.yxt.supervise.cyf.biz.producttype; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.supervise.cyf.api.producttype.ProductType; +import com.yxt.supervise.cyf.api.producttype.ProductTypeDto; +import com.yxt.supervise.cyf.api.producttype.ProductTypeQuery; +import com.yxt.supervise.cyf.api.producttype.ProductTypeVo; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author feikefei + * @create 2023-05-23-9:04 + */ +@Service +public class ProductTypeService extends MybatisBaseService { + + public ResultBean save(ProductTypeDto dto){ + ResultBean rb = ResultBean.fireFail(); + //拿到该品牌商品下的类别 + List typeList = dto.getTypeList(); + if (dto.getSid() != null){ + for (ProductTypeDto productTypeDto : typeList){ + Integer integer = baseMapper.selectProductTypeByName(productTypeDto.getName()); + if (integer != 0) { + return rb.success().setMsg("该品牌商品已有此类型名称"); + } + Integer integer1 = baseMapper.selectProductTypeByNumber(productTypeDto.getNumber()); + if (integer1 != 0){ + return rb.success().setMsg("该编码已有品牌商品类型占用"); + } + ProductType type1 = new ProductType(); + BeanUtil.copyProperties(productTypeDto,type1,"id","sid"); + type1.setPSid(dto.getSid()); + baseMapper.insert(type1); + } + return rb.success().setMsg("添加成功"); + }else { + Integer integer = baseMapper.selectProductTypeByName(dto.getName()); + if (integer != 0) { + return rb.success().setMsg("该品牌已有该商品"); + } + Integer integer1 = baseMapper.selectProductTypeByNumber(dto.getNumber()); + if (integer1 != 0){ + return rb.success().setMsg("该编码已有品牌商品占用"); + } + ProductType type = new ProductType(); + BeanUtil.copyProperties(dto,type,"id","sid","typeList"); + baseMapper.insert(type); + for (ProductTypeDto productTypeDto : typeList) { + ProductType type1 = new ProductType(); + BeanUtil.copyProperties(productTypeDto,type1,"id","sid"); + type1.setPSid(type.getSid()); + baseMapper.insert(type1); + } + return rb.success().setMsg("添加成功"); + } + } + + public ResultBean del(String sid){ + ResultBean rb = ResultBean.fireFail(); + baseMapper.delete(new QueryWrapper().eq("sid",sid)); + return rb.success().setMsg("删除成功"); + } + + public ResultBean update(ProductTypeDto dto){ + ResultBean rb = ResultBean.fireFail(); + ProductType productType = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto,productType,"id","sid"); + baseMapper.updateById(productType); + return rb.success().setMsg("修改成功"); + } + + public PagerVo listPage(PagerQuery pq){ + ProductTypeQuery params = pq.getParams(); + QueryWrapper wq = new QueryWrapper<>(); + if (params != null){ + if (!params.getName().equals("")){ + wq.eq("p.name",params.getName()); + } + } + IPage page = PagerUtil.queryToPage(pq); + IPage pageVo = baseMapper.selectPageVo(page, wq); + PagerVo vo = PagerUtil.pageToVo(pageVo, null); + return vo; + } + + public ResultBean selectProductType(String sid){ + ResultBean rb = ResultBean.fireFail(); + List productTypes = baseMapper.selectProductType(sid); + return rb.success().setData(productTypes); + } +}