Browse Source

5-25 商品类型

master
fkf 2 years ago
parent
commit
68ce50ae51
  1. 24
      yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductType.java
  2. 27
      yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeDto.java
  3. 25
      yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeQuery.java
  4. 29
      yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/producttype/ProductTypeVo.java
  5. 28
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.java
  6. 23
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.xml
  7. 58
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeRest.java
  8. 101
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeService.java

24
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;
}

27
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<ProductTypeDto> typeList;
}

25
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;
}

29
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;
}

28
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<ProductType> {
IPage<ProductTypeVo> selectPageVo(IPage<ProductType> page, @Param(Constants.WRAPPER) Wrapper<ProductType> qw);
List<ProductType> selectProductType(@Param("sid") String sid);
Integer selectProductTypeByName(@Param("name") String name);
Integer selectProductTypeByNumber(@Param("number") String number);
}

23
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/producttype/ProductTypeMapper.xml

@ -0,0 +1,23 @@
<?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="com.yxt.supervise.cyf.biz.producttype.ProductTypeMapper">
<select id="selectPageVo" resultType="com.yxt.supervise.cyf.api.producttype.ProductTypeVo">
select p.id,p.sid,p.name,p.number,p.pSid,p.prodSid,i.name informationName,i.number informationNumber from product_type p
right join product_information i on p.prodSid = i.sid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectProductType" resultType="com.yxt.supervise.cyf.api.producttype.ProductType">
select * from product_type where pSid = #{sid}
</select>
<select id="selectProductTypeByName" resultType="int">
select count(*) from product_type where name = #{name}
</select>
<select id="selectProductTypeByNumber" resultType="int">
select count(*) from product_type where number = #{number}
</select>
</mapper>

58
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<PagerVo<ProductTypeDto>> listPage(@RequestBody PagerQuery<ProductTypeQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<ProductTypeVo> vo = productTypeService.listPage(pq);
return rb.success().setData(vo);
}
@ApiOperation("查询当前商品类别")
@GetMapping("/selectProductType/{sid}")
public ResultBean selectProductType(@PathVariable String sid){
return productTypeService.selectProductType(sid);
}
}

101
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<ProductTypeMapper, ProductType> {
public ResultBean save(ProductTypeDto dto){
ResultBean rb = ResultBean.fireFail();
//拿到该品牌商品下的类别
List<ProductTypeDto> 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<ProductType>().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<ProductTypeVo> listPage(PagerQuery<ProductTypeQuery> pq){
ProductTypeQuery params = pq.getParams();
QueryWrapper<ProductType> wq = new QueryWrapper<>();
if (params != null){
if (!params.getName().equals("")){
wq.eq("p.name",params.getName());
}
}
IPage<ProductType> page = PagerUtil.queryToPage(pq);
IPage<ProductTypeVo> pageVo = baseMapper.selectPageVo(page, wq);
PagerVo<ProductTypeVo> vo = PagerUtil.pageToVo(pageVo, null);
return vo;
}
public ResultBean selectProductType(String sid){
ResultBean rb = ResultBean.fireFail();
List<ProductType> productTypes = baseMapper.selectProductType(sid);
return rb.success().setData(productTypes);
}
}
Loading…
Cancel
Save