dev798
wxy 2024-04-01 11:30:11 +08:00
parent 3811098481
commit 73c40ddbad
6 changed files with 194 additions and 0 deletions

View File

@ -0,0 +1,68 @@
package com.muyu.product.domain.Resp;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: wangxinyuan
* @Date: 2024/4/1 11:19
*/
@Data
public class ProductTypeResp {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "类型名称")
private String typeName;
@ApiModelProperty(value = "属性名称")
private String attrName;
@ApiModelProperty(value = "是否支持多选0-是1-否")
private Integer multipleChoice;
@ApiModelProperty(value = "录入方式0-列表选择1-手动")
private Integer inputMethod;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "分类标识0-属性1-参数")
private Integer flag;
@ApiModelProperty(value = "筛选0-普通1-颜色")
private Integer screen;
@ApiModelProperty(value = "检索1-不需要2-关键字3-范围检索")
private Integer search;
@ApiModelProperty(value = "商品属性关联1-是2-否")
private Integer association;
@ApiModelProperty(value = "属性是否可选1-唯一2-单选3-复选")
private Integer stats;
@ApiModelProperty(value = "属性值的录入方式1-手工录入2-从列表中选择")
private Integer input;
@ApiModelProperty(value = "属性值可选值列表")
private String selection;
@ApiModelProperty(value = "手动新增0-是1-否")
private Integer manualOperation;
@ApiModelProperty(value = "属性ID")
private Integer typeAttrId;
@ApiModelProperty(value = "属性值详情")
private Integer typeAttrValue;
@ApiModelProperty(value = "属性数量")
private Integer countNum;
@ApiModelProperty(value = "参数数量")
private Integer countParam;
}

View File

@ -0,0 +1,32 @@
package com.muyu.product.controller;
import com.muyu.common.core.domain.AjaxResult;
import com.muyu.product.domain.DTO.ProductTypeAttr;
import com.muyu.product.domain.Resp.ProductTypeResp;
import com.muyu.product.service.TypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/4/1 11:15
*/
@RestController
@RequestMapping("/type")
public class TypeController {
@Autowired
private TypeService typeService;
@GetMapping("/queryType")
public AjaxResult queryType(){
List<ProductTypeResp>list=typeService.queryType();
return AjaxResult.success(list);
}
}

View File

@ -0,0 +1,16 @@
package com.muyu.product.mapper;
import com.muyu.product.domain.DTO.ProductTypeAttr;
import com.muyu.product.domain.Resp.ProductTypeResp;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/4/1 11:15
*/
@Mapper
public interface TypeMapper {
List<ProductTypeResp> queryType();
}

View File

@ -0,0 +1,15 @@
package com.muyu.product.service;
import com.muyu.product.domain.DTO.ProductTypeAttr;
import com.muyu.product.domain.Resp.ProductTypeResp;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/4/1 11:15
*/
public interface TypeService {
List<ProductTypeResp> queryType();
}

View File

@ -0,0 +1,25 @@
package com.muyu.product.service.impl;
import com.muyu.product.domain.DTO.ProductTypeAttr;
import com.muyu.product.domain.Resp.ProductTypeResp;
import com.muyu.product.mapper.TypeMapper;
import com.muyu.product.service.TypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author: wangxinyuan
* @Date: 2024/4/1 11:15
*/
@Service
public class TypeServiceImpl implements TypeService {
@Autowired
private TypeMapper typeMapper;
@Override
public List<ProductTypeResp> queryType() {
return typeMapper.queryType();
}
}

View File

@ -0,0 +1,38 @@
<?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.muyu.product.mapper.TypeMapper">
<select id="queryType" resultType="com.muyu.product.domain.Resp.ProductTypeResp">
SELECT
t.id,
type_name,
ta.product_type_id,
attr_name,
multiple_choice,
ta.input_method,
sort,
flag,
screen,
search,
association,
stats,
input,
selection,
manual_operation,
tav.type_attr_id,
GROUP_CONCAT(tav.type_attr_value) as typeAttrValue,
(SELECT COUNT(id) FROM t_product_type_attr WHERE flag = 0 AND product_type_id = t.id) AS countNum,
(SELECT COUNT(id) FROM t_product_type_attr WHERE flag = 1 AND product_type_id = t.id) AS countParam
FROM
t_product_type t
INNER JOIN t_product_type_attr ta ON t.id = ta.product_type_id
INNER JOIN t_product_type_attr_value tav ON tav.type_attr_id = ta.id
GROUP BY
ta.attr_name
</select>
</mapper>