无关风月
2024-12-24 227e48cde358aa0e065a8ab429e57f55d3bb4c5a
manage/src/main/java/com/jilongda/manage/controller/TModelController.java
@@ -1,9 +1,24 @@
package com.jilongda.manage.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.jilongda.common.basic.ApiResult;
import com.jilongda.common.basic.PageInfo;
import com.jilongda.manage.dto.TModelDTO;
import com.jilongda.manage.model.TModel;
import com.jilongda.manage.query.TModelQuery;
import com.jilongda.manage.service.TModelService;
import com.jilongda.manage.vo.TModelVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -13,9 +28,132 @@
 * @author 无关风月
 * @since 2024-12-09
 */
@Api(tags = "镜架型号表")
@RestController
@RequestMapping("/t-model")
public class TModelController {
    @Autowired
    private TModelService modelService;
    /**
     * 获取镜架型号列表
     */
    @ApiOperation(value = "获取镜架型号分页列表")
    @PostMapping(value = "/pageList")
    public ApiResult<PageInfo<TModelVO>> pageList(@RequestBody TModelQuery query) {
        return ApiResult.success(modelService.pageList(query));
    }
    /**
     * 通过品牌查询型号列表
     */
    @ApiOperation(value = "通过品牌id查询型号列表")
    @GetMapping(value = "/getListByBrandId")
    public ApiResult<List<TModel>> pageList(@RequestParam Integer brandId) {
        List<TModel> list = modelService.list(Wrappers.lambdaQuery(TModel.class)
                .eq(TModel::getBrandId, brandId)
                .groupBy(TModel::getName));
        return ApiResult.success(list);
    }
    /**
     * 通过型号查询色号列表
     */
    @ApiOperation(value = "通过型号查询色号列表")
    @GetMapping(value = "/getListByName")
    public ApiResult<List<TModel>> pageList(@RequestParam String name) {
        List<TModel> list = modelService.list(Wrappers.lambdaQuery(TModel.class)
                .eq(TModel::getName, name));
        return ApiResult.success(list);
    }
    /**
     * 添加镜架型号
     */
    @ApiOperation(value = "添加镜架型号")
    @PostMapping(value = "/add")
    public ApiResult<String> add(@Validated @RequestBody TModelDTO dto) {
        List<String> colorList = dto.getColorList();
        List<TModel> models = new ArrayList<>();
        for (String s : colorList) {
            TModel model = new TModel();
            BeanUtils.copyProperties(dto, model);
            model.setColor(s);
            models.add(model);
        }
        modelService.saveBatch(models);
        return ApiResult.success();
    }
    @ApiOperation(value = "修改镜架型号")
    @PostMapping(value = "/update")
    public ApiResult<String> update(@RequestBody TModelDTO dto) {
        modelService.remove(Wrappers.lambdaQuery(TModel.class)
                .eq(TModel::getName,dto.getName()));
        List<String> colorList = dto.getColorList();
        List<TModel> models = new ArrayList<>();
        for (String s : colorList) {
            TModel model = new TModel();
            BeanUtils.copyProperties(dto, model);
            model.setId(null);
            model.setColor(s);
            models.add(model);
        }
        modelService.saveBatch(models);
        return ApiResult.success();
    }
    /**
     * 镜架型号上下架
     */
    @ApiOperation(value = "镜架型号上下架--列表使用")
    @GetMapping(value = "/upAndDown")
    public ApiResult<Boolean> upAndDown(@RequestParam String name,
                                   @RequestParam Integer status) {
        return ApiResult.success(modelService.upAndDown(name,status));
    }
    /**
     * 镜架型号上下架
     */
    @ApiOperation(value = "镜架型号上下架--修改界面使用")
    @GetMapping(value = "/upAndDownColor")
    public ApiResult<Boolean> upAndDownColor(@RequestParam String name,
                                        @RequestParam String color,
                                        @RequestParam Integer status) {
        return ApiResult.success(modelService.upAndDownColor(name,color,status));
    }
    @ApiOperation(value = "删除镜架型号")
    @DeleteMapping(value = "/deleteByName")
    public ApiResult<String> deleteById(@RequestParam String name) {
        modelService.remove(Wrappers.lambdaQuery(TModel.class)
                .eq(TModel::getName, name));
        return ApiResult.success();
    }
    @ApiOperation(value = "批量删除镜架型号")
    @DeleteMapping(value = "/deleteByNames")
    public ApiResult<String> deleteByIds(@RequestBody List<String> names) {
        modelService.remove(Wrappers.lambdaQuery(TModel.class)
                .in(TModel::getName, names));
        return ApiResult.success();
    }
    @ApiOperation(value = "查询镜架型号详情")
    @GetMapping(value = "/getDetailByName")
    public ApiResult<TModelVO> getDetailById(@RequestParam String name) {
        List<TModel> models = modelService.list(Wrappers.lambdaQuery(TModel.class)
                .eq(TModel::getName, name));
        TModelVO modelVO = new TModelVO();
        BeanUtils.copyProperties(models.get(0), modelVO);
        List<String> colorList = models.stream().map(TModel::getColor).collect(Collectors.toList());
        modelVO.setColorList(colorList);
        return ApiResult.success(modelVO);
    }
}