Administrator
2025-07-02 4c9c358ede7e52d6063716b3374dd437910cd417
feat(mall): 添加衣服设计相关接口和模型

- 新增 ApiClothesArtPageDto、ApiClothesClothPageDto 等多个 DTO 类
- 新增 ApiClothesArtVo、ApiClothesClothVo 等多个 VO 类
- 新增 ApiClothesController 控制器类
- 新增 ApiClothesService 接口及其实现类
- 新增 ClothesEnum 枚举类
- 新增 ClothesMemberStature 实体类
9 files modified
25 files added
1197 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/enumerates/ClothesEnum.java 21 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesController.java 139 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesArtPageDto.java 27 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesClothPageDto.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesLocationPageDto.java 27 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesMemberStatureAddDto.java 52 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesMemberStatureDto.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesMemberStatureInfoDto.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesMemberStatureUpdateDto.java 54 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesPatternPageDto.java 27 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesSizeDto.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiTypeInfoDto.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/ClothesMemberStature.java 34 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/ClothesType.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/ClothesMemberStatureMapper.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/ClothesTypeArtMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/ClothesTypeClothMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/ClothesTypeLocationMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/ClothesTypePatternMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/ApiClothesService.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesServiceImpl.java 268 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesArtVo.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesClothVo.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesLocationVo.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesMemberStatureVo.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesPatternVo.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesSizeVo.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesTypeListVo.java 21 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesTypeVo.java 33 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ClothesMemberStatureMapper.xml 23 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ClothesTypeArtMapper.xml 24 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ClothesTypeClothMapper.xml 24 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ClothesTypeLocationMapper.xml 24 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ClothesTypePatternMapper.xml 26 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/ClothesEnum.java
New file
@@ -0,0 +1,21 @@
package cc.mrbird.febs.common.enumerates;
import lombok.Getter;
@Getter
public enum ClothesEnum {
    /**
     *       是否上线 0-否 1-是
     *       是否默认 0-否 1-是
     *       是否删除 0-否 1-是
     */
    DOWN(0),
    UP(1);
    private final int code;
    ClothesEnum(int code) {
        this.code = code;
    }
}
src/main/java/cc/mrbird/febs/mall/controller/clothes/ApiClothesController.java
New file
@@ -0,0 +1,139 @@
package cc.mrbird.febs.mall.controller.clothes;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.ApiActivityDto;
import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
import cc.mrbird.febs.mall.dto.clothes.*;
import cc.mrbird.febs.mall.service.ApiClothesService;
import cc.mrbird.febs.mall.vo.ApiActivityVo;
import cc.mrbird.febs.mall.vo.MallGoodsListVo;
import cc.mrbird.febs.mall.vo.clothes.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping(value = "/api/clothes")
@Api(value = "ApiClothesController", tags = "设计衣服")
public class ApiClothesController {
    private final ApiClothesService clothesService;
    @ApiOperation(value = "设计款式", notes = "设计款式")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesTypeListVo.class)
    })
    @GetMapping(value = "/clothesType")
    public FebsResponse clothesType() {
        return clothesService.clothesType();
    }
    @ApiOperation(value = "设计款式详情", notes = "设计款式详情")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesTypeVo.class)
    })
    @PostMapping(value = "/typeInfo")
    public FebsResponse typeInfo(@RequestBody @Validated ApiTypeInfoDto dto) {
        return clothesService.typeInfo(dto);
    }
    @ApiOperation(value = "布料列表", notes = "布料列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesClothVo.class)
    })
    @PostMapping(value = "/clothList")
    public FebsResponse clothList(@RequestBody @Validated ApiClothesClothPageDto dto) {
        return clothesService.clothList(dto);
    }
    @ApiOperation(value = "图案列表", notes = "图案列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesPatternVo.class)
    })
    @PostMapping(value = "/patternList")
    public FebsResponse patternList(@RequestBody @Validated ApiClothesPatternPageDto dto) {
        return clothesService.patternList(dto);
    }
    @ApiOperation(value = "尺码列表", notes = "尺码列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesSizeVo.class)
    })
    @PostMapping(value = "/sizeList")
    public FebsResponse sizeList(@RequestBody @Validated ApiClothesSizeDto dto) {
        return clothesService.sizeList(dto);
    }
    @ApiOperation(value = "位置列表", notes = "位置列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesLocationVo.class)
    })
    @PostMapping(value = "/locationList")
    public FebsResponse locationList(@RequestBody @Validated ApiClothesLocationPageDto dto) {
        return clothesService.locationList(dto);
    }
    @ApiOperation(value = "工艺列表", notes = "工艺列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesArtVo.class)
    })
    @PostMapping(value = "/artList")
    public FebsResponse artList(@RequestBody @Validated ApiClothesArtPageDto dto) {
        return clothesService.artList(dto);
    }
    @ApiOperation(value = "身材数据-列表", notes = "身材数据-列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesMemberStatureVo.class)
    })
    @PostMapping(value = "/statureList")
    public FebsResponse statureList(@RequestBody @Validated ApiClothesMemberStatureDto dto) {
        return clothesService.statureList(dto);
    }
    @ApiOperation(value = "身材数据-新增", notes = "身材数据-新增")
    @PostMapping(value = "/statureAdd")
    public FebsResponse statureAdd(@RequestBody @Validated ApiClothesMemberStatureAddDto dto) {
        return clothesService.statureAdd(dto);
    }
    @ApiOperation(value = "身材数据-详情", notes = "身材数据-详情")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiClothesMemberStatureVo.class)
    })
    @PostMapping(value = "/statureInfo")
    public FebsResponse statureInfo(@RequestBody @Validated ApiClothesMemberStatureInfoDto dto) {
        return clothesService.statureInfo(dto);
    }
    @ApiOperation(value = "身材数据-详情", notes = "身材数据-详情")
    @PostMapping(value = "/statureUpdate")
    public FebsResponse statureUpdate(@RequestBody @Validated ApiClothesMemberStatureUpdateDto dto) {
        return clothesService.statureUpdate(dto);
    }
    @ApiOperation(value = "身材数据-删除", notes = "身材数据-删除")
    @PostMapping(value = "/statureDel")
    public FebsResponse statureDel(@RequestBody @Validated ApiClothesMemberStatureInfoDto dto) {
        return clothesService.statureDel(dto);
    }
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesArtPageDto.java
New file
@@ -0,0 +1,27 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ApiClothesArtPageDto", description = "参数")
public class ApiClothesArtPageDto {
    @NotNull(message = "页码不能为空")
    @ApiModelProperty(value = "页码", example = "1")
    private Integer pageNow;
    @NotNull(message = "每页数量不能为空")
    @ApiModelProperty(value = "每页数量", example = "10")
    private Integer pageSize;
    @NotNull(message = "设计款式不能为空")
    @ApiModelProperty(value = "设计款式ID")
    private Long typeId;
    @ApiModelProperty(value = "查询名称", example = "123")
    private String query;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesClothPageDto.java
New file
@@ -0,0 +1,28 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ApiClothesClothPageDto", description = "参数")
public class ApiClothesClothPageDto {
    @NotNull(message = "页码不能为空")
    @ApiModelProperty(value = "页码", example = "1")
    private Integer pageNow;
    @NotNull(message = "每页数量不能为空")
    @ApiModelProperty(value = "每页数量", example = "10")
    private Integer pageSize;
    @NotNull(message = "设计款式不能为空")
    @ApiModelProperty(value = "设计款式ID")
    private Long typeId;
    @ApiModelProperty(value = "查询名称", example = "123")
    private String query;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesLocationPageDto.java
New file
@@ -0,0 +1,27 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ApiClothesLocationPageDto", description = "参数")
public class ApiClothesLocationPageDto {
    @NotNull(message = "页码不能为空")
    @ApiModelProperty(value = "页码", example = "1")
    private Integer pageNow;
    @NotNull(message = "每页数量不能为空")
    @ApiModelProperty(value = "每页数量", example = "10")
    private Integer pageSize;
    @NotNull(message = "设计款式不能为空")
    @ApiModelProperty(value = "设计款式ID")
    private Long typeId;
    @ApiModelProperty(value = "查询名称", example = "123")
    private String query;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesMemberStatureAddDto.java
New file
@@ -0,0 +1,52 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiClothesMemberStatureAddDto", description = "参数")
public class ApiClothesMemberStatureAddDto {
    @NotBlank(message = "昵称不能为空")
    @ApiModelProperty(value = "昵称")
    private String name;
    @NotNull(message = "身高不能为空")
    @Min(value = 0, message = "身高不能小于0")
    @Max(value = 240, message = "身高不能大于240CM")
    @ApiModelProperty(value = "身高")
    private BigDecimal heightLine;
    @NotNull(message = "胸围不能为空")
    @Min(value = 0, message = "胸围不能小于0")
    @ApiModelProperty(value = "胸围")
    private BigDecimal bustLine;
    @NotNull(message = "腰围不能为空")
    @Min(value = 0, message = "腰围不能小于0")
    @ApiModelProperty(value = "腰围")
    private BigDecimal waistLine;
    @NotNull(message = "肩宽不能为空")
    @Min(value = 0, message = "肩宽不能小于0")
    @ApiModelProperty(value = "肩宽")
    private BigDecimal wideLine;
    @NotNull(message = "每页数量不能为空")
    @Min(value = 0, message = "臀围不能小于0")
    @ApiModelProperty(value = "臀围")
    private BigDecimal hipLine;
    @NotNull(message = "是否默认不能为空")
    @ApiModelProperty(value = "是否默认 0-否 1-是")
    private Integer state;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesMemberStatureDto.java
New file
@@ -0,0 +1,26 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ApiClothesMemberStatureDto", description = "参数")
public class ApiClothesMemberStatureDto {
    @NotNull(message = "页码不能为空")
    @ApiModelProperty(value = "页码", example = "1")
    private Integer pageNow;
    @NotNull(message = "每页数量不能为空")
    @ApiModelProperty(value = "每页数量", example = "10")
    private Integer pageSize;
    @ApiModelProperty(value = "查询名称", example = "123")
    private String query;
    @ApiModelProperty(hidden = true)
    private Long memberId;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesMemberStatureInfoDto.java
New file
@@ -0,0 +1,17 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ApiClothesMemberStatureInfoDto", description = "参数")
public class ApiClothesMemberStatureInfoDto {
    @NotNull(message = "身材数据不能为空")
    @ApiModelProperty(value = "ID")
    private Long id;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesMemberStatureUpdateDto.java
New file
@@ -0,0 +1,54 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiClothesMemberStatureUpdateDto", description = "参数")
public class ApiClothesMemberStatureUpdateDto {
    @NotNull(message = "身材不能为空")
    @ApiModelProperty(value = "ID")
    private Long id;
    @NotBlank(message = "昵称不能为空")
    @ApiModelProperty(value = "昵称")
    private String name;
    @NotNull(message = "身高不能为空")
    @Min(value = 0, message = "身高不能小于0")
    @Max(value = 240, message = "身高不能大于240CM")
    @ApiModelProperty(value = "身高")
    private BigDecimal heightLine;
    @NotNull(message = "胸围不能为空")
    @Min(value = 0, message = "胸围不能小于0")
    @ApiModelProperty(value = "胸围")
    private BigDecimal bustLine;
    @NotNull(message = "腰围不能为空")
    @Min(value = 0, message = "腰围不能小于0")
    @ApiModelProperty(value = "腰围")
    private BigDecimal waistLine;
    @NotNull(message = "肩宽不能为空")
    @Min(value = 0, message = "肩宽不能小于0")
    @ApiModelProperty(value = "肩宽")
    private BigDecimal wideLine;
    @NotNull(message = "每页数量不能为空")
    @Min(value = 0, message = "臀围不能小于0")
    @ApiModelProperty(value = "臀围")
    private BigDecimal hipLine;
    @NotNull(message = "是否默认不能为空")
    @ApiModelProperty(value = "是否默认 0-否 1-是")
    private Integer state;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesPatternPageDto.java
New file
@@ -0,0 +1,27 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ApiClothesPatternPageDto", description = "参数")
public class ApiClothesPatternPageDto {
    @NotNull(message = "页码不能为空")
    @ApiModelProperty(value = "页码", example = "1")
    private Integer pageNow;
    @NotNull(message = "每页数量不能为空")
    @ApiModelProperty(value = "每页数量", example = "10")
    private Integer pageSize;
    @NotNull(message = "设计款式不能为空")
    @ApiModelProperty(value = "设计款式ID")
    private Long typeId;
    @ApiModelProperty(value = "查询名称", example = "123")
    private String query;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiClothesSizeDto.java
New file
@@ -0,0 +1,18 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ApiClothesSizeDto", description = "参数")
public class ApiClothesSizeDto {
    @NotNull(message = "设计款式不能为空")
    @ApiModelProperty(value = "设计款式ID")
    private Long typeId;
}
src/main/java/cc/mrbird/febs/mall/dto/clothes/ApiTypeInfoDto.java
New file
@@ -0,0 +1,16 @@
package cc.mrbird.febs.mall.dto.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ApiTypeInfoDto", description = "参数")
public class ApiTypeInfoDto {
    @NotNull(message = "ID不能为空")
    @ApiModelProperty(value = "ID")
    private Long id;
}
src/main/java/cc/mrbird/febs/mall/entity/ClothesMemberStature.java
New file
@@ -0,0 +1,34 @@
package cc.mrbird.febs.mall.entity;
import cc.mrbird.febs.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
@Data
@TableName("clothes_member_stature")
public class ClothesMemberStature extends BaseEntity {
    /**
     *
     `member_id` bigint(20) DEFAULT NULL,
     `name` varchar(100) DEFAULT NULL,
     `height_line` decimal(20,2) DEFAULT NULL COMMENT '身高',
     `bust_line` decimal(20,2) DEFAULT NULL COMMENT '胸围',
     `waist_line` decimal(20,2) DEFAULT NULL COMMENT '腰围',
     `wide_line` decimal(20,2) DEFAULT NULL COMMENT '肩宽',
     `hip_line` decimal(20,2) DEFAULT NULL COMMENT '臀围',
     `state` int(11) DEFAULT '0' COMMENT '是否默认 0-否 1-是',
     */
    private Long memberId;
    private String name;
    private BigDecimal heightLine;
    private BigDecimal bustLine;
    private BigDecimal waistLine;
    private BigDecimal wideLine;
    private BigDecimal hipLine;
    private Integer state;
    private Integer delFlag;
}
src/main/java/cc/mrbird/febs/mall/entity/ClothesType.java
@@ -19,7 +19,7 @@
     `art_state` int(11) DEFAULT '0' COMMENT '是否允许选择工艺 0-否 1-是',
     `pattern_state` int(11) DEFAULT '0' COMMENT '是否允许选择图案 0-否 1-是',
     `location_state` int(11) DEFAULT '0' COMMENT '是否允许选择图案位置 0-否 1-是',
     `size_state` int(11) DEFAULT '0' COMMENT '是否允许选择尺码 0-否 1-是',
     `size_state` int(11) DEFAULT '0' COMMENT '是否允许自定义尺码 0-否 1-是',
     `order_num` int(11) DEFAULT NULL COMMENT '排序',
     */
src/main/java/cc/mrbird/febs/mall/mapper/ClothesMemberStatureMapper.java
New file
@@ -0,0 +1,14 @@
package cc.mrbird.febs.mall.mapper;
import cc.mrbird.febs.mall.dto.clothes.ApiClothesMemberStatureDto;
import cc.mrbird.febs.mall.entity.ClothesMemberStature;
import cc.mrbird.febs.mall.vo.clothes.ApiClothesMemberStatureVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
public interface ClothesMemberStatureMapper extends BaseMapper<ClothesMemberStature> {
    Page<ApiClothesMemberStatureVo> selectPageInMemberStature(Page<ApiClothesMemberStatureVo> page, @Param("record")ApiClothesMemberStatureDto dto);
}
src/main/java/cc/mrbird/febs/mall/mapper/ClothesTypeArtMapper.java
@@ -1,7 +1,14 @@
package cc.mrbird.febs.mall.mapper;
import cc.mrbird.febs.mall.dto.clothes.ApiClothesArtPageDto;
import cc.mrbird.febs.mall.entity.ClothesTypeArt;
import cc.mrbird.febs.mall.vo.clothes.ApiClothesArtVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
public interface ClothesTypeArtMapper extends BaseMapper<ClothesTypeArt> {
    Page<ApiClothesArtVo> selectPageInArt(Page<ApiClothesArtVo> page,  @Param("record")ApiClothesArtPageDto dto);
}
src/main/java/cc/mrbird/febs/mall/mapper/ClothesTypeClothMapper.java
@@ -1,7 +1,14 @@
package cc.mrbird.febs.mall.mapper;
import cc.mrbird.febs.mall.dto.clothes.ApiClothesClothPageDto;
import cc.mrbird.febs.mall.entity.ClothesTypeCloth;
import cc.mrbird.febs.mall.vo.clothes.ApiClothesClothVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
public interface ClothesTypeClothMapper extends BaseMapper<ClothesTypeCloth> {
    Page<ApiClothesClothVo> selectPageInCloth(Page<ApiClothesClothVo> page, @Param("record")ApiClothesClothPageDto dto);
}
src/main/java/cc/mrbird/febs/mall/mapper/ClothesTypeLocationMapper.java
@@ -1,7 +1,14 @@
package cc.mrbird.febs.mall.mapper;
import cc.mrbird.febs.mall.dto.clothes.ApiClothesLocationPageDto;
import cc.mrbird.febs.mall.entity.ClothesTypeLocation;
import cc.mrbird.febs.mall.vo.clothes.ApiClothesLocationVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
public interface ClothesTypeLocationMapper extends BaseMapper<ClothesTypeLocation> {
    Page<ApiClothesLocationVo> selectPageInLocation(Page<ApiClothesLocationVo> page,  @Param("record")ApiClothesLocationPageDto dto);
}
src/main/java/cc/mrbird/febs/mall/mapper/ClothesTypePatternMapper.java
@@ -1,7 +1,14 @@
package cc.mrbird.febs.mall.mapper;
import cc.mrbird.febs.mall.dto.clothes.ApiClothesPatternPageDto;
import cc.mrbird.febs.mall.entity.ClothesTypePattern;
import cc.mrbird.febs.mall.vo.clothes.ApiClothesPatternVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
public interface ClothesTypePatternMapper extends BaseMapper<ClothesTypePattern> {
    Page<ApiClothesPatternVo> selectPageInPattern(Page<ApiClothesPatternVo> page,  @Param("record")ApiClothesPatternPageDto dto);
}
src/main/java/cc/mrbird/febs/mall/service/ApiClothesService.java
New file
@@ -0,0 +1,33 @@
package cc.mrbird.febs.mall.service;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.clothes.*;
import cc.mrbird.febs.mall.entity.ClothesType;
import com.baomidou.mybatisplus.extension.service.IService;
public interface ApiClothesService extends IService<ClothesType> {
    FebsResponse clothesType();
    FebsResponse typeInfo(ApiTypeInfoDto dto);
    FebsResponse clothList(ApiClothesClothPageDto dto);
    FebsResponse patternList(ApiClothesPatternPageDto dto);
    FebsResponse sizeList(ApiClothesSizeDto dto);
    FebsResponse locationList(ApiClothesLocationPageDto dto);
    FebsResponse artList(ApiClothesArtPageDto dto);
    FebsResponse statureList(ApiClothesMemberStatureDto dto);
    FebsResponse statureAdd(ApiClothesMemberStatureAddDto dto);
    FebsResponse statureInfo(ApiClothesMemberStatureInfoDto dto);
    FebsResponse statureUpdate(ApiClothesMemberStatureUpdateDto dto);
    FebsResponse statureDel(ApiClothesMemberStatureInfoDto dto);
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesServiceImpl.java
New file
@@ -0,0 +1,268 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.enumerates.ClothesEnum;
import cc.mrbird.febs.common.enumerates.StateUpDownEnum;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.mall.dto.clothes.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.ApiClothesService;
import cc.mrbird.febs.mall.vo.ApiActivityInfoVo;
import cc.mrbird.febs.mall.vo.clothes.*;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Slf4j
@Service
@RequiredArgsConstructor
public class ApiClothesServiceImpl extends ServiceImpl<ClothesTypeMapper, ClothesType> implements ApiClothesService {
    private final ClothesTypeMapper clothesTypeMapper;
    private final ClothesTypeClothMapper clothesTypeClothMapper;
    private final ClothesTypePatternMapper clothesTypePatternMapper;
    private final ClothesTypeSizeMapper clothesTypeSizeMapper;
    private final ClothesSizeMapper clothesSizeMapper;
    private final ClothesTypeLocationMapper clothesTypeLocationMapper;
    private final ClothesTypeArtMapper clothesTypeArtMapper;
    private final ClothesMemberStatureMapper clothesMemberStatureMapper;
    @Override
    public FebsResponse clothesType() {
        List<ApiClothesTypeListVo> vos = new ArrayList<>();
        List<ClothesType> clothesTypes = clothesTypeMapper.selectList(
                Wrappers.lambdaQuery(ClothesType.class)
                        .eq(ClothesType::getState, ClothesEnum.UP.getCode())
                        .orderByAsc(ClothesType::getOrderNum)
        );
        if (CollUtil.isNotEmpty(clothesTypes)){
            for (ClothesType clothesType : clothesTypes){
                ApiClothesTypeListVo vo = new ApiClothesTypeListVo();
                vo.setId(clothesType.getId());
                vo.setName(clothesType.getName());
                vo.setImage(clothesType.getImage());
                vo.setContent(clothesType.getContent());
                vo.setOrderNum(clothesType.getOrderNum());
                vos.add( vo);
            }
        }
        return new FebsResponse().success().data(vos);
    }
    @Override
    public FebsResponse typeInfo(ApiTypeInfoDto dto) {
        ApiClothesTypeVo apiClothesTypeVo = new ApiClothesTypeVo();
        Long id = dto.getId();
        ClothesType clothesType = clothesTypeMapper.selectById(id);
        if (ObjectUtil.isNotEmpty(clothesType)){
            apiClothesTypeVo.setId(clothesType.getId());
            apiClothesTypeVo.setName(clothesType.getName());
            apiClothesTypeVo.setImage(clothesType.getImage());
            apiClothesTypeVo.setImageFront(clothesType.getImageFront());
            apiClothesTypeVo.setImageBack(clothesType.getImageBack());
            apiClothesTypeVo.setContent(clothesType.getContent());
            apiClothesTypeVo.setClothState(clothesType.getClothState());
            apiClothesTypeVo.setArtState(clothesType.getArtState());
            apiClothesTypeVo.setPatternState(clothesType.getPatternState());
            apiClothesTypeVo.setLocationState(clothesType.getLocationState());
            apiClothesTypeVo.setSizeState(clothesType.getSizeState());
        }
        return new FebsResponse().success().data(apiClothesTypeVo);
    }
    @Override
    public FebsResponse clothList(ApiClothesClothPageDto dto) {
        // 创建分页对象,传入当前页和每页大小
        Page<ApiClothesClothVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
        // 调用Mapper方法获取活动分页数据
        Page<ApiClothesClothVo> voPage = clothesTypeClothMapper.selectPageInCloth(page, dto);
        return new FebsResponse().success().data(voPage);
    }
    @Override
    public FebsResponse patternList(ApiClothesPatternPageDto dto) {
        // 创建分页对象,传入当前页和每页大小
        Page<ApiClothesPatternVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
        // 调用Mapper方法获取活动分页数据
        Page<ApiClothesPatternVo> voPage = clothesTypePatternMapper.selectPageInPattern(page, dto);
        return new FebsResponse().success().data(voPage);
    }
    @Override
    public FebsResponse sizeList(ApiClothesSizeDto dto) {
        List<ApiClothesSizeVo> vos = new ArrayList<>();
        Long typeId = dto.getTypeId();
        List<ClothesTypeSize> clothesTypeSizes = clothesTypeSizeMapper.selectList(
                Wrappers.lambdaQuery(ClothesTypeSize.class)
                        .eq(ClothesTypeSize::getTypeId, typeId)
        );
        if (CollUtil.isNotEmpty(clothesTypeSizes)){
            Set<Long> collect = clothesTypeSizes.stream().map(ClothesTypeSize::getSizeId).collect(Collectors.toSet());
            List<ClothesSize> clothesSizes = clothesSizeMapper.selectList(
                    Wrappers.lambdaQuery(ClothesSize.class)
                            .in(ClothesSize::getId, collect)
            );
            if (CollUtil.isNotEmpty(clothesSizes)){
                for (ClothesSize clothesSize : clothesSizes){
                    ApiClothesSizeVo vo = new ApiClothesSizeVo();
                    vo.setId(clothesSize.getId());
                    vo.setCode(clothesSize.getCode());
                    vo.setName(clothesSize.getName());
                    vo.setImage(clothesSize.getImage());
                    vo.setContent(clothesSize.getContent());
                    vo.setPrice(clothesSize.getPrice());
                    vo.setType(clothesSize.getType());
                    vos.add(vo);
                }
            }
        }
        return new FebsResponse().success().data(vos);
    }
    @Override
    public FebsResponse locationList(ApiClothesLocationPageDto dto) {
        // 创建分页对象,传入当前页和每页大小
        Page<ApiClothesLocationVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
        // 调用Mapper方法获取活动分页数据
        Page<ApiClothesLocationVo> voPage = clothesTypeLocationMapper.selectPageInLocation(page, dto);
        return new FebsResponse().success().data(voPage);
    }
    @Override
    public FebsResponse artList(ApiClothesArtPageDto dto) {
        // 创建分页对象,传入当前页和每页大小
        Page<ApiClothesArtVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
        // 调用Mapper方法获取活动分页数据
        Page<ApiClothesArtVo> voPage = clothesTypeArtMapper.selectPageInArt(page, dto);
        return new FebsResponse().success().data(voPage);
    }
    @Override
    public FebsResponse statureList(ApiClothesMemberStatureDto dto) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        dto.setMemberId(memberId);
        // 创建分页对象,传入当前页和每页大小
        Page<ApiClothesMemberStatureVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
        // 调用Mapper方法获取活动分页数据
        Page<ApiClothesMemberStatureVo> voPage = clothesMemberStatureMapper.selectPageInMemberStature(page, dto);
        return new FebsResponse().success().data(voPage);
    }
    @Override
    public FebsResponse statureAdd(ApiClothesMemberStatureAddDto dto) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        ClothesMemberStature clothesMemberStature = new ClothesMemberStature();
        clothesMemberStature.setMemberId(memberId);
        clothesMemberStature.setName(dto.getName());
        clothesMemberStature.setHeightLine(dto.getHeightLine());
        clothesMemberStature.setBustLine(dto.getBustLine());
        clothesMemberStature.setWaistLine(dto.getWaistLine());
        clothesMemberStature.setWideLine(dto.getWideLine());
        clothesMemberStature.setHipLine(dto.getHipLine());
        clothesMemberStature.setState(dto.getState());
        clothesMemberStatureMapper.insert(clothesMemberStature);
        if(ClothesEnum.UP.getCode() == dto.getState()){
            clothesMemberStatureMapper.update(null,
                        Wrappers.lambdaUpdate(ClothesMemberStature.class)
                    .set(ClothesMemberStature::getState, ClothesEnum.DOWN.getCode())
                    .eq(ClothesMemberStature::getMemberId, memberId)
                    .ne(ClothesMemberStature::getId, clothesMemberStature.getId())
                    .eq(ClothesMemberStature::getDelFlag, ClothesEnum.DOWN.getCode())
                    );
        }
        return new FebsResponse().success().message("操作成功");
    }
    @Override
    public FebsResponse statureInfo(ApiClothesMemberStatureInfoDto dto) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        ApiClothesMemberStatureVo apiClothesMemberStatureVo = new ApiClothesMemberStatureVo();
        ClothesMemberStature clothesMemberStature = clothesMemberStatureMapper.selectById(dto.getId());
        if (ObjectUtil.isNotEmpty(clothesMemberStature)){
            apiClothesMemberStatureVo.setId(clothesMemberStature.getId());
            apiClothesMemberStatureVo.setName(clothesMemberStature.getName());
            apiClothesMemberStatureVo.setHeightLine(clothesMemberStature.getHeightLine());
            apiClothesMemberStatureVo.setBustLine(clothesMemberStature.getBustLine());
            apiClothesMemberStatureVo.setWaistLine(clothesMemberStature.getWaistLine());
            apiClothesMemberStatureVo.setWideLine(clothesMemberStature.getWideLine());
            apiClothesMemberStatureVo.setHipLine(clothesMemberStature.getHipLine());
            apiClothesMemberStatureVo.setState(clothesMemberStature.getState());
        }
        return new FebsResponse().success().data(apiClothesMemberStatureVo);
    }
    @Override
    public FebsResponse statureUpdate(ApiClothesMemberStatureUpdateDto dto) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        ClothesMemberStature clothesMemberStature = clothesMemberStatureMapper.selectById(dto.getId());
        if (ObjectUtil.isNotEmpty(clothesMemberStature)){
            clothesMemberStature.setName(dto.getName());
            clothesMemberStature.setHeightLine(dto.getHeightLine());
            clothesMemberStature.setBustLine(dto.getBustLine());
            clothesMemberStature.setWaistLine(dto.getWaistLine());
            clothesMemberStature.setWideLine(dto.getWideLine());
            clothesMemberStature.setHipLine(dto.getHipLine());
            clothesMemberStature.setState(dto.getState());
            clothesMemberStatureMapper.updateById(clothesMemberStature);
            if(ClothesEnum.UP.getCode() == dto.getState()){
                clothesMemberStatureMapper.update(null,
                        Wrappers.lambdaUpdate(ClothesMemberStature.class)
                                .set(ClothesMemberStature::getState, ClothesEnum.DOWN.getCode())
                                .eq(ClothesMemberStature::getMemberId, memberId)
                                .ne(ClothesMemberStature::getId, clothesMemberStature.getId())
                                .eq(ClothesMemberStature::getDelFlag, ClothesEnum.DOWN.getCode())
                );
            }
        }
        return new FebsResponse().success().message("操作成功");
    }
    @Override
    public FebsResponse statureDel(ApiClothesMemberStatureInfoDto dto) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        clothesMemberStatureMapper.delete(
                Wrappers.lambdaUpdate(ClothesMemberStature.class)
                        .eq(ClothesMemberStature::getId, dto.getId())
                        .eq(ClothesMemberStature::getMemberId, memberId)
                        .eq(ClothesMemberStature::getDelFlag, ClothesEnum.DOWN.getCode())
        );
        return new FebsResponse().success().message("操作成功");
    }
}
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesArtVo.java
New file
@@ -0,0 +1,31 @@
package cc.mrbird.febs.mall.vo.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiClothesArtVo", description = "参数")
public class ApiClothesArtVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "编码")
    private String code;
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "小图标")
    private String image;
    @ApiModelProperty(value = "简介")
    private String content;
    @ApiModelProperty(value = "价格")
    private BigDecimal price;
}
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesClothVo.java
New file
@@ -0,0 +1,32 @@
package cc.mrbird.febs.mall.vo.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiClothesClothVo", description = "参数")
public class ApiClothesClothVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "编码")
    private String code;
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "小图标")
    private String image;
    @ApiModelProperty(value = "简介")
    private String content;
    @ApiModelProperty(value = "价格")
    private BigDecimal price;
}
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesLocationVo.java
New file
@@ -0,0 +1,31 @@
package cc.mrbird.febs.mall.vo.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiClothesLocationVo", description = "参数")
public class ApiClothesLocationVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "编码")
    private String code;
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "小图标")
    private String image;
    @ApiModelProperty(value = "简介")
    private String content;
    @ApiModelProperty(value = "价格")
    private BigDecimal price;
}
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesMemberStatureVo.java
New file
@@ -0,0 +1,29 @@
package cc.mrbird.febs.mall.vo.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiClothesMemberStatureVo", description = "参数")
public class ApiClothesMemberStatureVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "昵称")
    private String name;
    @ApiModelProperty(value = "身高")
    private BigDecimal heightLine;
    @ApiModelProperty(value = "胸围")
    private BigDecimal bustLine;
    @ApiModelProperty(value = "腰围")
    private BigDecimal waistLine;
    @ApiModelProperty(value = "肩宽")
    private BigDecimal wideLine;
    @ApiModelProperty(value = "臀围")
    private BigDecimal hipLine;
    @ApiModelProperty(value = "是否默认 0-否 1-是")
    private Integer state;
}
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesPatternVo.java
New file
@@ -0,0 +1,35 @@
package cc.mrbird.febs.mall.vo.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiClothesPatternVo", description = "参数")
public class ApiClothesPatternVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "编码")
    private String code;
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "小图标")
    private String image;
    @ApiModelProperty(value = "简介")
    private String content;
    @ApiModelProperty(value = "价格")
    private BigDecimal price;
    @ApiModelProperty(value = "类型 1-仅文字 2-仅图案 3-文字加图案")
    private Integer type;
}
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesSizeVo.java
New file
@@ -0,0 +1,33 @@
package cc.mrbird.febs.mall.vo.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiClothesSizeVo", description = "参数")
public class ApiClothesSizeVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "编码")
    private String code;
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "小图标")
    private String image;
    @ApiModelProperty(value = "简介")
    private String content;
    @ApiModelProperty(value = "价格")
    private BigDecimal price;
    @ApiModelProperty(value = "尺码类型 1-衣服 2-裤子")
    private Integer type;
}
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesTypeListVo.java
New file
@@ -0,0 +1,21 @@
package cc.mrbird.febs.mall.vo.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "ApiClothesTypeListVo", description = "参数")
public class ApiClothesTypeListVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "小图标")
    private String image;
    @ApiModelProperty(value = "简介")
    private String content;
    @ApiModelProperty(value = "排序")
    private Integer orderNum;
}
src/main/java/cc/mrbird/febs/mall/vo/clothes/ApiClothesTypeVo.java
New file
@@ -0,0 +1,33 @@
package cc.mrbird.febs.mall.vo.clothes;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "ApiClothesTypeVo", description = "参数")
public class ApiClothesTypeVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "小图标")
    private String image;
    @ApiModelProperty(value = "正面")
    private String imageFront;
    @ApiModelProperty(value = "反面")
    private String imageBack;
    @ApiModelProperty(value = "简介")
    private String content;
    @ApiModelProperty(value = "是否允许选择布料 0-否 1-是")
    private Integer clothState;
    @ApiModelProperty(value = "是否允许选择工艺 0-否 1-是")
    private Integer artState;
    @ApiModelProperty(value = "是否允许选择图案 0-否 1-是")
    private Integer patternState;
    @ApiModelProperty(value = "是否允许选择图案位置 0-否 1-是")
    private Integer locationState;
    @ApiModelProperty(value = "是否允许自定义尺码 0-否 1-是")
    private Integer sizeState;
}
src/main/resources/mapper/modules/ClothesMemberStatureMapper.xml
New file
@@ -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="cc.mrbird.febs.mall.mapper.ClothesMemberStatureMapper">
    <select id="selectPageInMemberStature" resultType="cc.mrbird.febs.mall.vo.clothes.ApiClothesMemberStatureVo">
        select
            a.*
        from clothes_member_stature a
        <where>
            and a.member_id = #{record.memberId}
            and a.del_flag = 0
            <if test="record != null">
                <if test="record.query != null and record.query != ''">
                    and (
                    a.name like CONCAT('%', CONCAT(#{record.query}, '%'))
                    )
                </if>
            </if>
        </where>
        order by a.CREATED_TIME desc
    </select>
</mapper>
src/main/resources/mapper/modules/ClothesTypeArtMapper.xml
@@ -2,4 +2,28 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cc.mrbird.febs.mall.mapper.ClothesTypeArtMapper">
    <select id="selectPageInArt" resultType="cc.mrbird.febs.mall.vo.clothes.ApiClothesArtVo">
        select
        b.id as id,
        b.code as code,
        b.name as name,
        b.image as image,
        b.content as content,
        b.price as price
        from clothes_type_art a
        left join clothes_art b on a.art_id = b.id
        <where>
            and a.type_id = #{record.typeId}
            <if test="record != null">
                <if test="record.query != null and record.query != ''">
                    and (
                    b.name like CONCAT('%', CONCAT(#{record.query}, '%')) or
                    b.code like CONCAT('%', CONCAT(#{record.query}, '%'))
                    )
                </if>
            </if>
        </where>
        order by b.order_num asc
    </select>
</mapper>
src/main/resources/mapper/modules/ClothesTypeClothMapper.xml
@@ -2,4 +2,28 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cc.mrbird.febs.mall.mapper.ClothesTypeClothMapper">
    <select id="selectPageInCloth" resultType="cc.mrbird.febs.mall.vo.clothes.ApiClothesClothVo">
        select
            b.id as id,
            b.code as code,
            b.name as name,
            b.image as image,
            b.content as content,
            b.price as price
        from clothes_type_cloth a
        left join clothes_cloth b on a.cloth_id = b.id
        <where>
            and a.type_id = #{record.typeId}
            <if test="record != null">
                <if test="record.query != null and record.query != ''">
                    and (
                    b.name like CONCAT('%', CONCAT(#{record.query}, '%')) or
                    b.code like CONCAT('%', CONCAT(#{record.query}, '%'))
                    )
                </if>
            </if>
        </where>
            order by b.order_num asc
    </select>
</mapper>
src/main/resources/mapper/modules/ClothesTypeLocationMapper.xml
@@ -2,4 +2,28 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cc.mrbird.febs.mall.mapper.ClothesTypeLocationMapper">
    <select id="selectPageInLocation" resultType="cc.mrbird.febs.mall.vo.clothes.ApiClothesLocationVo">
        select
        b.id as id,
        b.code as code,
        b.name as name,
        b.image as image,
        b.content as content,
        b.price as price
        from clothes_type_location a
        left join clothes_location b on a.location_id = b.id
        <where>
            and a.type_id = #{record.typeId}
            <if test="record != null">
                <if test="record.query != null and record.query != ''">
                    and (
                    b.name like CONCAT('%', CONCAT(#{record.query}, '%')) or
                    b.code like CONCAT('%', CONCAT(#{record.query}, '%'))
                    )
                </if>
            </if>
        </where>
        order by b.order_num asc
    </select>
</mapper>
src/main/resources/mapper/modules/ClothesTypePatternMapper.xml
@@ -2,4 +2,30 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cc.mrbird.febs.mall.mapper.ClothesTypePatternMapper">
    <select id="selectPageInPattern" resultType="cc.mrbird.febs.mall.vo.clothes.ApiClothesPatternVo">
        select
        b.id as id,
        b.code as code,
        b.name as name,
        b.image as image,
        b.content as content,
        b.type as type,
        b.price as price
        from clothes_type_pattern a
        left join clothes_pattern b on a.pattern_id = b.id
        <where>
            and a.type_id = #{record.typeId}
            <if test="record != null">
                <if test="record.query != null and record.query != ''">
                    and (
                    b.name like CONCAT('%', CONCAT(#{record.query}, '%')) or
                    b.code like CONCAT('%', CONCAT(#{record.query}, '%'))
                    )
                </if>
            </if>
        </where>
        order by b.order_num asc
    </select>
</mapper>