208 lines
7.2 KiB
Java
208 lines
7.2 KiB
Java
package cn.apes.cloud.controller;
|
|
|
|
import cn.apes.commons.Res;
|
|
import cn.apes.commons.auth.AuthContext;
|
|
import cn.apes.commons.auth.Login;
|
|
import cn.apes.cloud.config.TenantSource;
|
|
import cn.apes.cloud.domain.dto.LoginDTO;
|
|
import cn.apes.cloud.domain.dto.PwdDTO;
|
|
import cn.apes.cloud.domain.dto.RegisterDTO;
|
|
import cn.apes.cloud.domain.dto.SelectCustomerDTO;
|
|
import cn.apes.cloud.domain.dto.UserSearchDTO;
|
|
import cn.apes.cloud.domain.dto.EnterpriseCertifyDTO;
|
|
import cn.apes.cloud.domain.entity.CustomerInfo;
|
|
import cn.apes.cloud.domain.entity.UserInfo;
|
|
import cn.apes.cloud.service.impl.UserInfoServiceImpl;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
@Slf4j
|
|
@RestController
|
|
@TenantSource
|
|
@RequestMapping("/user")
|
|
public class UserController {
|
|
|
|
@Autowired
|
|
UserInfoServiceImpl userInfoService;
|
|
|
|
@Login
|
|
@PostMapping("/saveUserInfo")
|
|
public Res saveUserInfo(@RequestBody UserInfo userInfo) {
|
|
return userInfoService.saveUserInfo(userInfo);
|
|
}
|
|
|
|
@Login
|
|
// @CrossOrigin("*")
|
|
@PostMapping("/pageUser")
|
|
public Res pageUser(@RequestBody UserSearchDTO searchDTO) {
|
|
return userInfoService.pageUser(searchDTO);
|
|
}
|
|
|
|
@PostMapping("/loginPwd")
|
|
public Res loginPwd(@RequestBody LoginDTO loginDTO) {
|
|
log.info("开始登录了");
|
|
return userInfoService.loginPwd(loginDTO);
|
|
}
|
|
|
|
/**
|
|
* 用户注册
|
|
*/
|
|
@PostMapping("/register")
|
|
public Res register(@RequestBody RegisterDTO dto) {
|
|
return userInfoService.register(dto);
|
|
}
|
|
|
|
@Login
|
|
@PostMapping("/resetPwd")
|
|
public Res resetPwd(@RequestBody UserInfo userInfo) {
|
|
return userInfoService.resetPwd(userInfo);
|
|
}
|
|
|
|
@Login
|
|
@GetMapping("/getCurrentUser")
|
|
public Res getCurrentUser() {
|
|
try {
|
|
Object loginInfo = AuthContext.getLoginInfo();
|
|
if (loginInfo == null) {
|
|
return Res.fail("未登录");
|
|
}
|
|
return Res.success(loginInfo);
|
|
} catch (Exception e) {
|
|
return Res.fail("获取用户信息失败");
|
|
}
|
|
}
|
|
|
|
@Login
|
|
@PostMapping("/editPwd")
|
|
public Res editPwd(@RequestBody PwdDTO pwdDTO) {
|
|
return userInfoService.editPwd(pwdDTO);
|
|
}
|
|
|
|
@Login
|
|
@GetMapping("/getUserByPhone")
|
|
public Res getUserByPhone(String phone) {
|
|
return userInfoService.getUser(phone);
|
|
}
|
|
|
|
@Login
|
|
@GetMapping("/getCustomerUser")
|
|
public Res getCustomerUser(Long customerId) {
|
|
return userInfoService.getCustomerUser(customerId);
|
|
}
|
|
|
|
/**
|
|
* 多客户时用户选择企业
|
|
*/
|
|
@PostMapping("/selectCustomer")
|
|
public Res selectCustomer(@RequestBody SelectCustomerDTO dto) {
|
|
return userInfoService.selectCustomer(dto.getToken(), dto.getCustomerId());
|
|
}
|
|
|
|
/**
|
|
* 获取当前用户关联的企业列表(用于切换企业场景)
|
|
*/
|
|
@Login
|
|
@GetMapping("/getMyCustomers")
|
|
public Res getMyCustomers() {
|
|
return userInfoService.getMyCustomers();
|
|
}
|
|
|
|
/**
|
|
* 编辑当前用户的个人资料(昵称、头像)
|
|
*/
|
|
@Login
|
|
@PostMapping("/editProfile")
|
|
public Res editProfile(@RequestBody UserInfo userInfo) {
|
|
return userInfoService.editProfile(userInfo);
|
|
}
|
|
|
|
/**
|
|
* 编辑当前企业信息(仅更新当前登录用户的所属企业)
|
|
*/
|
|
@Login
|
|
@PostMapping("/customer/editCurrent")
|
|
public Res editCurrentCustomer(@RequestBody CustomerInfo customerInfo) {
|
|
return userInfoService.editCurrentCustomer(customerInfo);
|
|
}
|
|
|
|
/**
|
|
* 获取当前企业信息(从数据库直接读取,不走Redis缓存)
|
|
*/
|
|
@Login
|
|
@GetMapping("/customer/getCurrent")
|
|
public Res getCurrentCustomer() {
|
|
return userInfoService.getCurrentCustomerFromDb();
|
|
}
|
|
|
|
/**
|
|
* 企业认证:用户提交认证表单,创建客户记录并关联当前用户
|
|
* 使用登录返回的 token(无需额外登录态校验)
|
|
*/
|
|
@PostMapping("/certifyEnterprise")
|
|
public Res certifyEnterprise(@RequestBody EnterpriseCertifyDTO dto) {
|
|
if (dto == null || cn.hutool.core.util.StrUtil.isBlank(dto.getToken())) {
|
|
return Res.fail("token不能为空");
|
|
}
|
|
CustomerInfo customerInfo = new CustomerInfo();
|
|
customerInfo.setCustomerName(dto.getCustomerName());
|
|
customerInfo.setLogo(dto.getLogo());
|
|
customerInfo.setShortName(dto.getShortName());
|
|
customerInfo.setCustomerType(dto.getCustomerType());
|
|
customerInfo.setCustomerIdNumber(dto.getCustomerIdNumber());
|
|
customerInfo.setLegalName(dto.getLegalName());
|
|
customerInfo.setLegalIdFront(dto.getLegalIdFront());
|
|
customerInfo.setLegalIdBack(dto.getLegalIdBack());
|
|
customerInfo.setAdminName(dto.getAdminName());
|
|
customerInfo.setAdminPhone(dto.getAdminPhone());
|
|
customerInfo.setAdminIdNumber(dto.getAdminIdNumber());
|
|
customerInfo.setResponsibleIdFront(dto.getResponsibleIdFront());
|
|
customerInfo.setResponsibleIdBack(dto.getResponsibleIdBack());
|
|
customerInfo.setIndustry(dto.getIndustry());
|
|
customerInfo.setIndustrySub(dto.getIndustrySub());
|
|
customerInfo.setSalesChannel(dto.getSalesChannel());
|
|
customerInfo.setIndustryType(dto.getIndustryType());
|
|
customerInfo.setProvince(dto.getProvince());
|
|
customerInfo.setCity(dto.getCity());
|
|
customerInfo.setBusinessLicense(dto.getBusinessLicense());
|
|
return userInfoService.certifyEnterprise(dto.getToken(), customerInfo);
|
|
}
|
|
|
|
/**
|
|
* 获取当前用户的企业信息(用于重新编辑)
|
|
*/
|
|
@GetMapping("/getPendingCustomer")
|
|
public Res getPendingCustomer(@RequestParam("token") String token) {
|
|
return userInfoService.getPendingCustomer(token);
|
|
}
|
|
|
|
/**
|
|
* 重新提交企业认证
|
|
*/
|
|
@PostMapping("/recertifyEnterprise")
|
|
public Res recertifyEnterprise(@RequestBody EnterpriseCertifyDTO dto) {
|
|
CustomerInfo customerInfo = new CustomerInfo();
|
|
customerInfo.setCustomerName(dto.getCustomerName());
|
|
customerInfo.setShortName(dto.getShortName());
|
|
customerInfo.setCustomerIdNumber(dto.getCustomerIdNumber());
|
|
customerInfo.setAdminName(dto.getAdminName());
|
|
customerInfo.setAdminPhone(dto.getAdminPhone());
|
|
customerInfo.setAdminIdNumber(dto.getAdminIdNumber());
|
|
customerInfo.setLegalName(dto.getLegalName());
|
|
customerInfo.setLegalIdFront(dto.getLegalIdFront());
|
|
customerInfo.setLegalIdBack(dto.getLegalIdBack());
|
|
customerInfo.setResponsibleIdFront(dto.getResponsibleIdFront());
|
|
customerInfo.setResponsibleIdBack(dto.getResponsibleIdBack());
|
|
customerInfo.setLogo(dto.getLogo());
|
|
customerInfo.setIndustry(dto.getIndustry());
|
|
customerInfo.setIndustrySub(dto.getIndustrySub());
|
|
customerInfo.setSalesChannel(dto.getSalesChannel());
|
|
customerInfo.setIndustryType(dto.getIndustryType());
|
|
customerInfo.setProvince(dto.getProvince());
|
|
customerInfo.setCity(dto.getCity());
|
|
customerInfo.setBusinessLicense(dto.getBusinessLicense());
|
|
return userInfoService.recertifyEnterprise(dto.getToken(), customerInfo);
|
|
}
|
|
|
|
}
|