package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.TFoundationConfig;
import com.ruoyi.system.domain.TFoundationPerson;
import com.ruoyi.system.domain.TShop;
import com.ruoyi.system.dto.TFoundationPersonBatchDTO;
import com.ruoyi.system.dto.TFoundationPersonDTO;
import com.ruoyi.system.query.TFoundationPersonQuery;
import com.ruoyi.system.service.TFoundationConfigService;
import com.ruoyi.system.service.TFoundationPersonService;
import com.ruoyi.system.service.TShopService;
import com.ruoyi.system.vo.TFoundationPersonVO;
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 oshi.driver.unix.aix.Ls;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
*
* 基础设置 前端控制器
*
*
* @author xiaochen
* @since 2024-08-15
*/
@Api(tags = "基础设置")
@RestController
@RequestMapping("/t-foundation-person")
public class TFoundationPersonController {
private final TFoundationPersonService foundationPersonService;
private final TFoundationConfigService foundationConfigService;
private final TShopService shopService;
@Autowired
public TFoundationPersonController(TFoundationPersonService foundationPersonService, TFoundationConfigService foundationConfigService, TShopService shopService) {
this.foundationPersonService = foundationPersonService;
this.foundationConfigService = foundationConfigService;
this.shopService = shopService;
}
/**
* 查询基础设置列表
*/
// @ApiOperation( value = "查询基础设置列表")
// @PostMapping(value = "/list")
// public AjaxResult> list(@RequestBody TFoundationPersonQuery query) {
// return AjaxResult.success(foundationPersonService.getList(query));
// }
@ApiOperation( value = "查询基础设置列表")
@PostMapping(value = "/list")
public AjaxResult> list(@RequestBody TFoundationPersonQuery query) {
return AjaxResult.success(foundationPersonService.getSetList());
}
/**
* 添加基础设置管理
*/
@Log(title = "基础设置-添加基础设置", businessType = BusinessType.INSERT)
@ApiOperation( value = "添加基础设置")
@PostMapping(value = "/add")
public AjaxResult add(@RequestBody TFoundationPersonBatchDTO dto) {
foundationPersonService.add(dto);
return AjaxResult.success();
}
/**
* 修改基础设置
*/
@Log(title = "基础设置-修改基础设置", businessType = BusinessType.UPDATE)
@ApiOperation( value = "修改基础设置")
@PostMapping(value = "/update")
public AjaxResult update(@RequestBody TFoundationPersonBatchDTO dto) {
foundationPersonService.edit(dto);
return AjaxResult.success();
}
/**
* 查看基础设置详情
*/
@ApiOperation( value = "查看基础设置详情")
@GetMapping(value = "/getDetailById")
public AjaxResult> getDetailByMealType(@RequestParam("mealType") Integer mealType) {
// 查询基础设置
List foundationPersonVOS = foundationPersonService.getPersonList();
List collect = foundationPersonVOS.stream().filter(e -> Objects.equals(e.getMealType(), mealType)).collect(Collectors.toList());
for (TFoundationPersonVO foundationPersonVO : collect) {
List list = foundationConfigService.list(Wrappers.lambdaQuery(TFoundationConfig.class)
.eq(TFoundationConfig::getPersonId, foundationPersonVO.getId()));
foundationPersonVO.setFoundationConfigs(list);
// 查询店铺
TShop shop = shopService.getById(foundationPersonVO.getShopId());
foundationPersonVO.setShop(shop);
}
return AjaxResult.success(collect);
}
/**
* 删除基础设置
*/
@Log(title = "基础设置-删除基础设置", businessType = BusinessType.DELETE)
@ApiOperation( value = "删除基础设置")
@DeleteMapping(value = "/deleteById")
public AjaxResult deleteById(@RequestParam("id") Long id) {
foundationConfigService.remove(Wrappers.lambdaQuery(TFoundationConfig.class)
.eq(TFoundationConfig::getPersonId, id));
return AjaxResult.success(foundationPersonService.removeById(id));
}
}