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