package com.jilongda.manage.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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 java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 镜架型号表 前端控制器 *

* * @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> pageList(@RequestBody TModelQuery query) { return ApiResult.success(modelService.pageList(query)); } /** * 通过品牌查询型号列表 */ @ApiOperation(value = "通过品牌id查询型号列表") @GetMapping(value = "/getListByBrandId") public ApiResult> pageList(@RequestParam Integer brandId) { List 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> pageList(@RequestParam String name) { List list = modelService.list(Wrappers.lambdaQuery(TModel.class) .eq(TModel::getName, name)); return ApiResult.success(list); } /** * 添加镜架型号 */ @ApiOperation(value = "添加镜架型号") @PostMapping(value = "/add") public ApiResult add(@Validated @RequestBody TModelDTO dto) { List colorList = dto.getColorList(); List 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 update(@RequestBody TModelDTO dto) { List list = modelService.lambdaQuery() .eq(TModel::getName, dto.getName()).list(); List colorList = dto.getColorList(); if (list.size()list.size()-1){ TModel model = new TModel(); BeanUtils.copyProperties(dto, model); model.setId(null); model.setColor(colorList.get(i)); list.add(model); }else { list.get(i).setColor(colorList.get(i)); } } }else if (list.size()>colorList.size()){ List removeList = new ArrayList<>(); List updateList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { if (i 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 upAndDown(@RequestParam String name, @RequestParam Integer status) { return ApiResult.success(modelService.upAndDown(name,status)); } /** * 镜架型号上下架 */ @ApiOperation(value = "镜架型号上下架--修改界面使用") @GetMapping(value = "/upAndDownColor") public ApiResult 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 deleteById(@RequestParam String name) { modelService.remove(Wrappers.lambdaQuery(TModel.class) .eq(TModel::getName, name)); return ApiResult.success(); } @ApiOperation(value = "批量删除镜架型号") @DeleteMapping(value = "/deleteByNames") public ApiResult deleteByIds(@RequestBody List names) { modelService.remove(Wrappers.lambdaQuery(TModel.class) .in(TModel::getName, names)); return ApiResult.success(); } @ApiOperation(value = "查询镜架型号详情") @GetMapping(value = "/getDetailByName") public ApiResult getDetailById(@RequestParam String name) { List models = modelService.list(Wrappers.lambdaQuery(TModel.class) .eq(TModel::getName, name)); TModelVO modelVO = new TModelVO(); BeanUtils.copyProperties(models.get(0), modelVO); List colorList = models.stream().map(TModel::getColor).collect(Collectors.toList()); modelVO.setColorList(colorList); return ApiResult.success(modelVO); } }