123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package cn.fastfun.controller.api;
- import cn.fastfun.service.ProductService;
- import cn.fastfun.service.entity.IdParamForStatus;
- import cn.fastfun.service.entity.Product;
- import cn.fastfun.service.entity.QueryParamForProduct;
- import cn.fastfun.util.VerifyUtil;
- import com.bridge.dto.*;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.springframework.web.bind.annotation.*;
- import javax.annotation.Resource;
- import java.util.*;
- @Api(tags = "设备类型记录(典表)")
- @RestController
- @RequestMapping("/api/v1/product")
- public class ProductController {
- @Resource
- ProductService productService;
- @ApiOperation(value = "保存SN规则信息")
- @PostMapping("/save")
- public ApiDTO save(@RequestBody @ApiParam(name = "SN规则对象", value = "传入json格式", required = true) Product product) {
- // // 针对产品规格这一项进行操作
- // if(product.getSnType().equals("产品规格")){
- // String checkSnTypeCodeResult = VerifyUtil.checkSnTypeCode(product);
- // if(!(checkSnTypeCodeResult.equals("passed"))){
- // return ApiDTO.error(500,checkSnTypeCodeResult);
- // }
- // List<Product> productSpecificationResults = ResolveUtil.resolveProductSpecification(product);
- // List<List<Product>> checkDuplicatedResults = new ArrayList<>();
- //
- // for(Product productSpecificationResult:productSpecificationResults) {
- // List<Product> checkDuplicatedResult = productService.findAll(
- // Arrays.asList(QueryParamExp.eq("snTypeCode", productSpecificationResult.getSnTypeCode()),
- // QueryParamExp.eq("snType", productSpecificationResult.getSnType())));
- //
- // checkDuplicatedResults.add(checkDuplicatedResult);
- //
- // String checkSnTypeCodeResultForEach = VerifyUtil.checkSnTypeCode(productSpecificationResult);
- // if((checkSnTypeCodeResultForEach.equals("passed"))&(checkDuplicatedResult.isEmpty())){
- // productService.save(productSpecificationResult);
- // }
- // else if(!(checkSnTypeCodeResultForEach.equals("passed"))){
- // return ApiDTO.error(500,checkSnTypeCodeResultForEach);
- // }
- // }
- // if((!(checkDuplicatedResults.get(0).isEmpty()))&(!(checkDuplicatedResults.get(1).isEmpty()))&(!(checkDuplicatedResults.get(2).isEmpty()))){
- // return ApiDTO.error(500,"该产品规格对应的三个规则行已存在,未进行任何保存",checkDuplicatedResults);
- // }
- // return ApiDTO.ok("保存成功,未保存的规则行id为null",productSpecificationResults);
- // }
- // 校验输入的SN类型对应的编号
- String checkSnTypeCodeResult = VerifyUtil.checkSnTypeCode(product);
- List<Product> checkDuplicatedResult = productService.findAll(
- Arrays.asList(QueryParamExp.eq("snTypeCode", product.getSnTypeCode()),
- QueryParamExp.eq("snType", product.getSnType())));
- if (!checkDuplicatedResult.isEmpty()) {
- return ApiDTO.error(500, "该规则行已存在", checkDuplicatedResult);
- }
- if (checkSnTypeCodeResult.equals("passed")) {
- Product tmp = productService.save(product);
- return ApiDTO.ok("保存成功", tmp);
- } else {
- return ApiDTO.error(500, checkSnTypeCodeResult);
- }
- }
- @ApiOperation(value = "查询SN规则信息")
- @PostMapping("/get")
- public ApiDTO get(@RequestBody @ApiParam(name = "SN规则行对应的id", required = true) IdParam param) {
- return ApiDTO.ok("查询成功!", productService.get(param.getId()));
- }
- @ApiOperation(value = "删除SN规则信息")
- @PostMapping("/delete")
- public ApiDTO delete(@RequestBody @ApiParam(name = "SN规则行对应的id", required = true) IdParamForStatus param) {
- Product product = productService.get(param.getId());
- product.setStatus(param.getStatus());
- Product tmp = productService.save(product);
- return ApiDTO.ok("删除成功!", tmp);
- }
- @ApiOperation(value = "分页搜索SN规则信息")
- @PostMapping("/pageQuery")
- public ApiDTO pageQuery(@RequestBody QueryParamForProduct param) {
- List<Product> resultByType = productService.findAll(QueryParamExp.eq("snType", param.getType()));
- resultByType.sort(Comparator.comparing(Product::getAddTime).reversed());
- int resultSize = resultByType.size();
- int startIndex = (param.getIndex() - 1) * param.getLength();
- int endIndex = startIndex + param.getLength();
- List<Product> resultByTypeAndPage;
- try {
- if (endIndex > resultSize) {
- endIndex = resultSize;
- resultByTypeAndPage = resultByType.subList(startIndex, endIndex);
- } else {
- resultByTypeAndPage = resultByType.subList(startIndex, endIndex);
- }
- } catch (IllegalArgumentException e) {
- return ApiDTO.error("分页索引越界!");
- }
- ApiPageDTO result = new ApiPageDTO("搜索成功!", resultByTypeAndPage);
- result.setTotal(resultByTypeAndPage.size());
- return result;
- }
- }
|