package com.tievd.jyz.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.tievd.cube.commons.annotations.AutoLog; import com.tievd.cube.commons.annotations.DictApi; import com.tievd.cube.commons.base.CubeController; import com.tievd.cube.commons.base.Result; import com.tievd.jyz.entity.ClientConfig; import com.tievd.jyz.entity.vo.ClientVo; import com.tievd.jyz.service.IClientConfigService; import com.tievd.jyz.service.IClientService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.List; /** * ClientConfig * * @author cube * @since 2023-08-15 * @version V2.0.0 */ @Slf4j @DictApi @RestController @RequestMapping("/jyz/clientConfig") @Tag(name = "客户规则配置") public class ClientConfigController extends CubeController { @Autowired private IClientConfigService clientConfigService; @Autowired IClientService clientService; /** * 分页列表查询 */ @GetMapping("/list") @Operation(summary = "客户规则列表") public Result> queryPageList() { List list = clientConfigService.groupList(); return Result.ok(list); } @AutoLog("ClientConfig-添加") @PostMapping("/add") @Operation(summary = "添加客户规则") public Result add(@RequestBody ClientVo clientVo) { clientService.save(clientVo); clientConfigService.saveBatch(getConfig(clientVo)); return Result.ok(); } /** * 编辑 */ @AutoLog("ClientConfig-编辑") @PutMapping("/edit") @Operation(summary = "修改客户规则") public Result edit(@RequestBody ClientVo clientVo) { clientService.updateById(clientVo); clientConfigService.remove(new LambdaQueryWrapper().eq(ClientConfig::getClientId, clientVo.getId())); clientConfigService.saveBatch(getConfig(clientVo)); return Result.ok(); } List getConfig(ClientVo clientVo) { List clientConfigs = clientVo.getClientConfigs(); clientConfigs.forEach(c -> { String[] param = c.getTimeStr().split(","); c.setClientId(clientVo.getId()) .setClientName(clientVo.getClientName()) .setTimeValue(Integer.valueOf(param[0])).setTimeUnit(param[1]); }); return clientConfigs; } /** * 通过id删除 */ @AutoLog("ClientConfig-通过id删除") @DeleteMapping("/delete") @Operation(summary = "删除客户规则") public Result delete(@RequestParam String id) { clientService.removeById(id); clientConfigService.remove(new LambdaQueryWrapper().eq(ClientConfig::getClientId, id)); return Result.ok(); } /** * 批量删除 */ @AutoLog("ClientConfig-批量删除") @DeleteMapping("/deleteBatch") public Result deleteBatch(@RequestParam String ids) { this.clientConfigService.removeByIds(Arrays.asList(ids.split(","))); return Result.ok(); } /** * 通过id查询 */ @GetMapping("/queryById") public Result queryById(@RequestParam String id) { ClientConfig clientConfig = clientConfigService.getById(id); return Result.ok(clientConfig); } /** * 导出excel */ @RequestMapping("/exportXls") public void exportXls(HttpServletRequest request, HttpServletResponse response, ClientConfig clientConfig) throws IOException { super.exportXls(request, response, clientConfig, "ClientConfig"); } /** * 通过excel导入数据 */ @PostMapping("/importExcel") public Result importExcel(HttpServletRequest request) throws Exception { return super.importExcel(request, ClientConfig.class); } }