package com.cloudroam.controller.v1; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.cloudroam.bo.supplierContact.SupplierContactInfoBO; import com.cloudroam.common.util.PageUtil; import com.cloudroam.dto.supplierContact.CreateOrUpdateSupplierContactDTO; import com.cloudroam.dto.supplierContact.QuerySupplierContactDTO; import com.cloudroam.service.SupplierContactInfoService; import io.github.talelin.autoconfigure.exception.NotFoundException; import io.github.talelin.core.annotation.Logger; import io.github.talelin.core.annotation.LoginRequired; import io.github.talelin.core.annotation.PermissionMeta; import io.github.talelin.core.annotation.PermissionModule; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.cloudroam.model.SupplierContactInfoDO; import com.cloudroam.vo.CreatedVO; import com.cloudroam.vo.DeletedVO; import com.cloudroam.vo.PageResponseVO; import com.cloudroam.vo.UpdatedVO; import java.util.List; /** * @author generator@TaoJie * @since 2024-07-16 */ @RestController @RequestMapping("/v1/supplier-contact-info") @Validated @PermissionModule("供应商联系人") public class SupplierContactInfoController { @Autowired private SupplierContactInfoService supplierContactInfoService; @PostMapping("") @LoginRequired @PermissionMeta(value = "供应商联系人创建", module = "供应商联系人",mount = false) @Logger(template = "{user.nickname} 创建了供应商联系人 ") public CreatedVO create(@RequestBody @Validated CreateOrUpdateSupplierContactDTO validator) { supplierContactInfoService.CreateSupplierContactInfo(validator); return new CreatedVO(); } @PutMapping("/{id}") @LoginRequired @PermissionMeta(value = "供应商联系人编辑",mount = false) @Logger(template = "{user.nickname} 编辑了供应商联系人 ") public UpdatedVO update(@PathVariable String id,@RequestBody @Validated CreateOrUpdateSupplierContactDTO validator) { if(StrUtil.isBlank(id)){ throw new NotFoundException("传入的Id不能为空"); } SupplierContactInfoDO supplierContactInfoDO = supplierContactInfoService.getById(id); if(supplierContactInfoDO == null){ throw new NotFoundException("记录不存在"); } supplierContactInfoService.updateSupplierContactInfo(validator); return new UpdatedVO(); } @DeleteMapping("/{id}") @LoginRequired @PermissionMeta(value = "供应商联系人删除",mount = false) @Logger(template = "{user.nickname} 删除了供应商联系人 ") public DeletedVO delete(@PathVariable String id) { if(StrUtil.isBlank(id)){ throw new NotFoundException("传入的Id不能为空"); } SupplierContactInfoDO supplierContactInfoDO = supplierContactInfoService.getById(id); if(supplierContactInfoDO == null){ throw new NotFoundException("记录不存在"); } supplierContactInfoService.removeByIdLogic(id); return new DeletedVO(); } @GetMapping("/{id}") public SupplierContactInfoBO get(@PathVariable(value = "id") String id) { if(StrUtil.isBlank(id)){ throw new NotFoundException("id不能为空"); } SupplierContactInfoDO supplierContactInfoDO = supplierContactInfoService.getById(id); if(supplierContactInfoDO == null){ throw new NotFoundException("记录不存在"); } SupplierContactInfoBO supplierContactInfoBO=supplierContactInfoService.getSupplierContactInfoById(id); return supplierContactInfoBO; } @LoginRequired @PermissionMeta(value = "供应商联系人",module = "供应商管理",mount = true) @Logger(template = "{user.nickname} 查看供应商联系人 ") @GetMapping("/page") public PageResponseVO page(@Validated QuerySupplierContactDTO dto ) { IPage iPage=supplierContactInfoService.getSupplierContactInfoPage(dto); return PageUtil.build(iPage); } @GetMapping("/list") public List list( @Validated QuerySupplierContactDTO dto ) { List list=supplierContactInfoService.getSupplierContactInfoList(dto); return list; } }