package com.ruoyi.user.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.Logical; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.user.domain.AccountCityCompany; import com.ruoyi.user.domain.vo.AccountCityCompanyVo; import com.ruoyi.user.service.IAccountCityCompanyService; /** * 城市公司档案 信息操作处理 * * 网关前缀 /account 由 StripPrefix=1 剥掉,故此处映射为 /user/company, * 外部实际路径是 /account/user/company/**。 * * 档案只有「增/查/改」没有「删」:原型操作列只给了 查看 与 禁用, * 故不提供删除接口,需要停用就改状态。 * * @author ruoyi */ @RestController @RequestMapping("/user/company") public class AccountCityCompanyController extends BaseController { @Autowired private IAccountCityCompanyService companyService; /** * 查询公司档案列表 */ @RequiresPermissions("member:company:list") @GetMapping("/list") public TableDataInfo list(AccountCityCompanyVo company) { startPage(); List list = companyService.selectCompanyList(company); return getDataTable(list); } /** * 搜索可绑定的会员(限 L4),供表单的「关联用户信息」下拉使用 * * 路径是字面量 /userSearch,与下面的 /{id} 同为单段。Spring 的路径匹配按「字面量优先于变量」 * 排序,故 /userSearch 不会被 /{id} 抢走(否则会因 "userSearch" 无法转 Long 而报 500)。 * * 权限走 OR:本接口只服务档案表单,调用者可能只有 add(新增)或只有 edit(改已有档案)。 */ @RequiresPermissions(value = { "member:company:add", "member:company:edit" }, logical = Logical.OR) @GetMapping("/userSearch") public AjaxResult userSearch(@RequestParam(required = false) String keyword) { return success(companyService.searchL4Member(keyword)); } /** * 获取公司档案详细信息(表单的新增/查看共用同一个页面,查看时用它回填) */ @RequiresPermissions("member:company:query") @GetMapping("/{id}") public AjaxResult getInfo(@PathVariable Long id) { return success(companyService.selectCompanyById(id)); } /** * 新增公司档案 */ @RequiresPermissions("member:company:add") @Log(title = "城市公司档案", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody AccountCityCompany company) { company.setCreateBy(SecurityUtils.getUsername()); return toAjax(companyService.insertCompany(company)); } /** * 修改公司档案 */ @RequiresPermissions("member:company:edit") @Log(title = "城市公司档案", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody AccountCityCompany company) { if (StringUtils.isNull(company.getId())) { return error("档案编号不能为空"); } company.setUpdateBy(SecurityUtils.getUsername()); return toAjax(companyService.updateCompany(company)); } /** * 修改档案状态(禁用/启用) */ @RequiresPermissions("member:company:edit") @Log(title = "城市公司档案", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody AccountCityCompany company) { if (StringUtils.isNull(company.getId())) { return error("档案编号不能为空"); } if (StringUtils.isEmpty(company.getStatus())) { return error("档案状态不能为空"); } company.setUpdateBy(SecurityUtils.getUsername()); return toAjax(companyService.changeStatus(company)); } }