package com.estate.expert.admin.controller.admin; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.estate.expert.admin.domain.business.client.ClientDto; import com.estate.expert.admin.domain.business.client.clientparam.ClientParam; import com.estate.expert.admin.domain.report.ReportTemplate; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.domain.common.request.BatchReq; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.business.client.ClientType; import com.estate.expert.admin.service.ClientParamService; import com.estate.expert.admin.service.ClientService; import com.estate.expert.admin.service.ReportTemplateService; import com.estate.expert.common.domain.Session; import com.estate.expert.common.rpc.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import static org.springframework.data.jpa.domain.AbstractPersistable_.id; @Slf4j @CrossOrigin @Api(tags = "管理后台/客户清单") @RequestMapping("/admin/client") @RestController @Validated public class ClientController { @Resource private ClientService clientService; @Resource private ClientParamService clientParamService; @ApiOperation(value = "委托方列表") @PostMapping("/list") public Result list(@ApiParam(value = "关键词") @RequestParam(value = "keyword", required = false) String keyword, @ApiParam(value = "委托方类型") @RequestParam(value = "clientType", required = false) ClientType clientType, @ApiParam(value = "创建者ID") @RequestParam(value = "creatorId", required = false) Integer creatorId, @Validated @RequestBody PageReq pageReq) { return Result.success(clientService.list(keyword, clientType, creatorId, pageReq)); } @ApiOperation(value = "委托方添加") @PostMapping("/add") public Result add(@ApiParam(hidden = true) Session session, @Validated @RequestBody ClientDto clientDto) { clientService.add((User) session.getUser(), clientDto); return Result.success(); } @ApiOperation(value = "委托方修改") @PostMapping("/edit") public Result edit(@Validated @RequestBody ClientDto clientDto) { clientService.edit(clientDto); return Result.success(); } @ApiOperation(value = "委托方批量删除") @PostMapping("/batch/del") public Result batchDel(@Validated @RequestBody BatchReq request) { clientService.deleteAllById(request.getIds()); return Result.success(); } @ApiOperation(value = "委托方设置参数") @PostMapping("/setParam") public Result setParam(@Validated @RequestBody ClientParam clientParam) { clientParamService.saveOrUpdate(clientParam); return Result.success(); } @ApiOperation(value = "委托方获取参数",response = ClientParam.class) @GetMapping("/getParam") public Result getParam(@RequestParam Integer clientId) { ClientParam clientParam = clientParamService.getOne(new LambdaQueryWrapper().eq(ClientParam::getClientId, clientId).last("limit 1")); return Result.success(clientParam); } @ApiOperation(value = "委托方获取模板",response = ReportTemplate.class) @PostMapping("/getTemplate") public Result getTemplate(@ApiParam(value = "模板类型0安全 1设备") @RequestParam(value = "type") Integer type) { List list = clientParamService.getTemplate(type); return Result.success(list); } }