Commit c997214d authored by kang.nie@inzymeits.com's avatar kang.nie@inzymeits.com
Browse files

初始化代码

parent 741c2feb
Pipeline #3107 failed with stages
in 0 seconds
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.PageResult;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.dto.UserAccountDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.UserAccountPageQueryDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.UserAccountUpdateDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.UserAddRequestDTO;
import com.cusc.nirvana.user.rnr.enterprise.service.IAccountService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author stayAnd
* @date 2022/4/15
*/
@RestController
@RequestMapping("/userEnterprise/account")
@ApiModel("账号管理")
public class AccountController {
@Resource
private IAccountService accountService;
@PostMapping("/add")
@ApiOperation("新增账号管理")
@SysLog(sysModule = SysModuleEnum.ADD_ACCOUNT)
public Response add(@RequestBody UserAddRequestDTO dto){
accountService.addAccount(dto);
return Response.createSuccess();
}
/**
* 管理后台-》账号管理-》list查询
* @param dto
* @return
*/
@PostMapping("/pageList")
public Response<PageResult<UserAccountDTO>> pageList(@RequestBody UserAccountPageQueryDTO dto){
return Response.createSuccess(accountService.pageList(dto));
}
@PostMapping("/update")
@SysLog(sysModule = SysModuleEnum.UPDATE_ACCOUNT)
public Response update(@RequestBody UserAccountUpdateDTO dto){
accountService.update(dto);
return Response.createSuccess();
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.PageResult;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.service.IAdminRnrOrderService;
import com.cusc.nirvana.user.rnr.fp.dto.RnrOrderDetailDTO;
import com.cusc.nirvana.user.rnr.fp.dto.RnrOrderListQueryDTO;
import com.cusc.nirvana.user.rnr.fp.dto.RnrOrderListResponseDTO;
import com.cusc.nirvana.user.rnr.fp.dto.VinCardDTO;
import com.cusc.nirvana.user.rnr.mg.dto.MgRnrCardInfoDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
/**
* @author stayAnd
* @date 2022/8/2
*/
@RestController
@RequestMapping(("/rnrOrder"))
public class AdminOrderController {
@Resource
private IAdminRnrOrderService rnrOrderService;
/*@GetMapping("/queryTenantList")
public Response<TenantResponseDTO> queryTenantList(){
TenantDTO query = new TenantDTO();
query.setBizzScene("2,");
List<TenantDTO> tenantList = tenantClient.queryByList(query).getData();
TenantResponseDTO response = new TenantResponseDTO();
response.setTenantList(tenantList);
return Response.createSuccess(response);
}*/
@PostMapping("/pageListQuery")
public Response<PageResult<RnrOrderListResponseDTO>> pageListQuery(@Valid @RequestBody RnrOrderListQueryDTO dto){
return Response.createSuccess(rnrOrderService.pageListQuery(dto));
}
@PostMapping("/queryCardPageByOrderId")
public Response<PageResult<VinCardDTO>> queryCardPageByOrderId(@RequestBody MgRnrCardInfoDTO dto){
return Response.createSuccess(rnrOrderService.queryCardPageByOrderId(dto));
}
@GetMapping("/queryOrderDetail")
public Response<RnrOrderDetailDTO> queryOrderDetail(@RequestParam("orderId") String orderId){
return Response.createSuccess(rnrOrderService.queryOrderDetail(orderId));
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.auth.authentication.plug.user.UserSubjectUtil;
import com.cusc.nirvana.user.auth.client.LogoutClient;
import com.cusc.nirvana.user.auth.common.dto.LogoutDTO;
import com.cusc.nirvana.user.auth.identification.dto.Oauth2Token;
import com.cusc.nirvana.user.auth.identification.dto.RandomIdResp;
import com.cusc.nirvana.user.exception.CuscUserException;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.constants.ResponseCode;
import com.cusc.nirvana.user.rnr.enterprise.dto.CaptchaResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.LoginRequestDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.LoginResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.LoginSmsRequestDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.LoginUserNameReqDTO;
import com.cusc.nirvana.user.rnr.enterprise.service.IAuthService;
import com.cusc.nirvana.user.rnr.enterprise.util.ValidationUtil;
import com.cusc.nirvana.user.util.CuscStringUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author stayAnd
* @date 2022/4/12
*/
@RestController
@RequestMapping("/userEnterprise/auth")
@ApiModel("B端用户登录相关(车企、经销商)")
public class AuthController {
@Resource
private IAuthService userService;
@Autowired
private LogoutClient logoutClient;
@GetMapping("/getGraphic")
@ApiOperation("获取图片验证码")
public Response<CaptchaResponseDTO> getGraphic(
@RequestParam(value = "platformSource", required = false, defaultValue = "4") String platformSource) {
return Response.createSuccess(userService.getGraphic(platformSource));
}
@PostMapping("/getSms")
@ApiOperation("获取短信验证码")
public Response getSms(@RequestBody LoginSmsRequestDTO mobileLoginReq) {
//检查手机
Response checkPhone = ValidationUtil.checkPhone(mobileLoginReq.getPhone());
if (!checkPhone.isSuccess()) {
throw new CuscUserException(checkPhone.getCode(),checkPhone.getMsg());
}
userService.getSms(mobileLoginReq);
return Response.createSuccess();
}
@PostMapping("/login")
@ApiOperation("登录-手机号+验证码登录")
@SysLog(sysModule = SysModuleEnum.USER_SMS_LOGIN)
public Response<LoginResponseDTO> login(@RequestBody LoginRequestDTO loginRequestDTO) {
//检查手机
Response checkPhone = ValidationUtil.checkPhone(loginRequestDTO.getPhone());
if (!checkPhone.isSuccess()) {
throw new CuscUserException(checkPhone.getCode(),checkPhone.getMsg());
}
return Response.createSuccess(userService.login(loginRequestDTO));
}
@GetMapping("/getLoginSecretKey")
@ApiOperation("获取随机请求id-登录密码加密")
public Response<RandomIdResp> getLoginSecretKey(
@RequestParam(value = "platformSource", required = false, defaultValue = "4") String platformSource) {
if (CuscStringUtils.isEmpty(platformSource)) {
return Response.createSuccess(ResponseCode.PARAMETER_NULL.getMsg(), ResponseCode.PARAMETER_NULL.getCode());
}
return userService.getLoginSecretKey(platformSource);
}
@PostMapping("/login/userName")
@ApiOperation(value = "登录-用户名登录", notes = "登录-用户名登录")
@SysLog(sysModule = SysModuleEnum.USER_PWD_LOGIN)
public Response<Oauth2Token> userNameLogin(@RequestBody LoginUserNameReqDTO bean) {
if (CuscStringUtils.isEmpty(bean.getPlatformSource())
|| CuscStringUtils.isEmpty(bean.getUserName()) || CuscStringUtils.isEmpty(bean.getPassword())
|| CuscStringUtils.isEmpty(bean.getRequestId())|| CuscStringUtils.isEmpty(bean.getCaptchaCode())|| CuscStringUtils.isEmpty(bean.getCaptchaId())) {
return Response.createError(ResponseCode.PARAMETER_NULL.getMsg(), ResponseCode.PARAMETER_NULL.getCode());
}
return Response.createSuccess(userService.userNameLogin(bean));
}
@PostMapping("/logout")
@ApiOperation(value = "退出", notes = "退出")
@SysLog(sysModule = SysModuleEnum.USER_LOGOUT)
public Response logout(@RequestHeader("Authorization") String accessToken) {
if (StringUtils.isEmpty(accessToken)) {
return Response.createError("请在header中传递token");
}
accessToken = accessToken.replaceAll("bearer ", "");
LogoutDTO bean = new LogoutDTO();
bean.setApplicationId(UserSubjectUtil.getAppId());
bean.setAccessToken(accessToken);
return logoutClient.logout(bean);
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.auth.authentication.plug.user.UserSubjectUtil;
import com.cusc.nirvana.user.rnr.enterprise.service.IBaseConfigService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Description: 卡解绑控制层
* <br />
* CreateDate 2022-04-16 15:16:55
*
* @author yuyi
**/
@RestController
@RequestMapping("/baseconfig")
public class BaseConfigController {
@Autowired
private IBaseConfigService baseConfigService;
@ApiOperation(value = "获取字典数据", notes = "获取字典数据")
@GetMapping("/getDicData")
public Response getDicData() {
String tenantNo = UserSubjectUtil.getTenantNo();
return baseConfigService.getDicData(tenantNo);
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.PageResult;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.exception.CuscUserException;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.dto.ImportSimDTO;
import com.cusc.nirvana.user.rnr.enterprise.excel.CarInfoRow;
import com.cusc.nirvana.user.rnr.enterprise.excel.utils.EasyExcelUtil;
import com.cusc.nirvana.user.rnr.enterprise.service.ICarInfoUploadService;
import com.cusc.nirvana.user.rnr.enterprise.service.impl.CarInfoImportServiceImpl;
import com.cusc.nirvana.user.rnr.fp.client.FileSystemClient;
import com.cusc.nirvana.user.rnr.fp.dto.FileDownloadDTO;
import com.cusc.nirvana.user.rnr.fp.dto.FileRecordDTO;
import com.cusc.nirvana.user.rnr.fp.dto.FpCarInfoDTO;
import com.cusc.nirvana.user.rnr.fp.dto.ImageBase64DTO;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
import java.io.*;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
/**
* @className: CarInfoController
* @description: 车辆信息
* @author: jk
* @date: 2022/6/28 16:05
* @version: 1.0
**/
@RestController
@RequestMapping("/car/info")
public class CarInfoController {
@Resource
private CarInfoImportServiceImpl carInfoImportService;
@Resource
private ICarInfoUploadService iCarInfoUploadService;
@Resource
private FileSystemClient fileSystemClient;
@Value("${template.carInfo}")
private String carInfoTemplate;
@PostMapping("import")
@ApiOperation(value = "导入车辆信息")
// @SysLog(sysModule = SysModuleEnum.CAR_INFO_IMPORT)
public Response<?> importSim(@RequestBody ImportSimDTO importSimDTO) {
return carInfoImportService.importSim(importSimDTO);
}
@PostMapping("queryCarInfo")
@ApiOperation(value = "车辆信息查询")
public Response<PageResult<FpCarInfoDTO>> queryCarInfo(@RequestBody FpCarInfoDTO fpCarInfoDTO){
return Response.createSuccess(iCarInfoUploadService.queryCarInfo(fpCarInfoDTO));
}
@GetMapping("/download/template")
@ApiOperation(value = "车卡关系模板下载")
@ApiImplicitParam(name = "fileType", value = "文件类型,3:车卡关系导入模板", required = true)
public void downloadTemplate(@NotNull(message = "模板类型不能为空") Integer fileType, HttpServletResponse response) throws IOException {
String url ="";
if(null ==fileType){
throw new CuscUserException("","文件类型不可为空");
}
FileDownloadDTO FileRecordDTO = new FileDownloadDTO();
FileRecordDTO.setUuid(carInfoTemplate);
Response<ImageBase64DTO> fileRecordDTOResponse = fileSystemClient.getBase64(FileRecordDTO);
if(!fileRecordDTOResponse.isSuccess()){
throw new CuscUserException("","没有查询到车辆信息模板!");
}
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = "车辆信息模板.xlsx";
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
byte[] bytes = Base64.getDecoder().decode(fileRecordDTOResponse.getData().getBase64());
InputStream in = new ByteArrayInputStream(bytes);
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
byte[] buff =new byte[1024];
//所读取的内容使用n来接收
int n;
//当没有读取完时,继续读取,循环
while((n=in.read(buff))!=-1){
//将字节数组的数据全部写入到输出流中
outputStream.write(buff,0,n);
}
//强制将缓存区的数据进行输出
outputStream.flush();
//关流
outputStream.close();
in.close();
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.dto.ImportSimDTO;
import com.cusc.nirvana.user.rnr.enterprise.service.ICarInfoImportService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @className: CarInfoImportController
* @description: 车辆信息导入控制层
* @author: jk
* @date: 2022/6/28 19:06
* @version: 1.0
**/
@Slf4j
@RestController
@RequestMapping("/carInfo/")
@ApiModel("导入")
@Validated
public class CarInfoImportController {
@Resource
private ICarInfoImportService carInfoImportService;
@PostMapping("import")
@ApiOperation(value = "导入车辆信息")
public Response<?> importSim(@RequestBody @Validated ImportSimDTO importSimDTO) {
return carInfoImportService.importSim(importSimDTO);
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.dto.SecondHandUnbindRequestDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.VehicleCardRnrDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups.VehicleCardRnrGroup;
import com.cusc.nirvana.user.rnr.enterprise.service.ICardUnBindService;
import com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
* Description: 卡解绑控制层
* <br />
* CreateDate 2022-04-16 15:16:55
*
* @author yuyi
**/
@RestController
@RequestMapping("/card/unbind")
public class CardUnBindController {
@Autowired
ICardUnBindService cardUnBindService;
/**
* Description:
* <br />
* CreateDate 2022-04-20 16:43:36
*
* @author yuyi
**/
@ApiOperation(value = "原车主解绑", notes = "原车主解绑")
@PostMapping("/originalOwner")
@SysLog(sysModule = SysModuleEnum.ORIGINALOWNER_UNBIND)
public Response originalOwner(@Validated(VehicleCardRnrGroup.Submit.class) @RequestBody VehicleCardRnrDTO bean) {
return cardUnBindService.originalOwner(bean);
}
@ApiOperation(value = "发送短信", notes = "发送短信")
@PostMapping("/sendMessage")
public Response sendMessage(@RequestBody VehicleCardRnrDTO bean) {
return cardUnBindService.sendMessage(bean);
}
@ApiOperation(value = "轮询查询工单状态", notes = "轮询查询工单状态")
@PostMapping("/checkOrderStatus")
public Response checkOrderStatus(@RequestBody RnrOrderDTO bean) {
return cardUnBindService.checkOrderStatus(bean);
}
@ApiOperation(value = "根据vin获取iccid", notes = "根据vin获取iccid")
@PostMapping("/getIccidsByVin")
public Response getIccidsByVin(@RequestBody VehicleCardRnrDTO bean) {
return cardUnBindService.getIccidsByVin(bean);
}
/**
* Description: 二手车现车主解绑-自然人
* <br />
* CreateDate 2022-04-20 16:43:36
*
* @author yuyi
**/
@ApiOperation(value = "二手车现车主解绑-自然人", notes = "二手车现车主解绑-自然人")
@PostMapping("/secondHandPersonal")
@SysLog(sysModule = SysModuleEnum.SECONDOWNER_UNBIND)
public Response secondHandPersonal(@Valid @RequestBody SecondHandUnbindRequestDTO bean) {
return cardUnBindService.secondHandPersonalUnbind(bean);
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.dto.ChangeTboxDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups.VehicleCardRnrGroup;
import com.cusc.nirvana.user.rnr.enterprise.service.ICardUnBindService;
import com.cusc.nirvana.user.rnr.enterprise.service.IChangeTboxService;
import com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Description: 更换车机控制层
* <br />
* CreateDate 2022-04-16 15:16:55
*
* @author yuyi
**/
@RestController
@RequestMapping("/change/tbox")
public class ChangeTboxController {
@Autowired
private IChangeTboxService changeTboxService;
@Autowired
private ICardUnBindService cardUnBindService;
/**
* Description: 提交车机更换
* <br />
* CreateDate 2022-04-20 16:43:36
*
* @author yuyi
**/
@ApiOperation(value = "提交车机更换", notes = "提交车机更换")
@PostMapping("/submit")
@SysLog(sysModule = SysModuleEnum.CHANGE_BOX)
public Response submit(@RequestBody ChangeTboxDTO bean) {
return changeTboxService.submit(bean);
}
/**
* 轮询查询工单状态
* @param bean
* @return
*/
@ApiOperation(value = "轮询查询工单状态", notes = "轮询查询工单状态")
@PostMapping("/checkOrderStatus")
public Response checkOrderStatus(@RequestBody RnrOrderDTO bean) {
return cardUnBindService.checkOrderStatus(bean);
}
/**
* Description: 查询绑定结果
* <br />
* CreateDate 2022-04-20 16:43:36
*
* @author yuyi
**/
@ApiOperation(value = "查询绑定结果", notes = "查询绑定结果")
@PostMapping("/queryResult")
public Response queryResult(@Validated(VehicleCardRnrGroup.Query.class) @RequestBody ChangeTboxDTO bean) {
return changeTboxService.queryResult(bean);
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.fp.client.FileSystemClient;
import com.cusc.nirvana.user.rnr.fp.dto.FileDownloadDTO;
import com.cusc.nirvana.user.rnr.fp.dto.FileUploadDTO;
import com.cusc.nirvana.user.util.CuscStringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* 自然人实名图片上传与下载
* 图片处理
* 图片处理放到user-rnr-fp中
* @author stayand
*/
@RestController
@RequestMapping("/cuscImage")
@Slf4j
public class CuscImageController {
@Autowired
private FileSystemClient fileSystemClient;
//图片文件后缀常量
private static final List<String> IMG_FILE_SUFFIX_LIST = Arrays.asList("jpg", "jpeg", "png", "gif", "svg", "bmp", "tif");
@PostMapping("/upload")
public Response upload(FileUploadDTO fileUploadDTO) throws Exception {
if(fileUploadDTO.getFile() == null){
return Response.createError("文件不能为空");
}
//文件大小必须大于0
if (fileUploadDTO.getFile().getSize() < 1) {
return Response.createError("文件内容不能为空");
}
String originalFilename = fileUploadDTO.getFile().getOriginalFilename();
//检查文件后缀
Response fileSuffixResp = chechImgSuffix(originalFilename);
if(!fileSuffixResp.isSuccess()){
return fileSuffixResp;
}
return fileSystemClient.uploadImage(fileUploadDTO);
}
/**
* 文件下载
*
* @param fileDownloadDTO
* @return
*/
@PostMapping("/viewBase64")
public Response viewBase64(HttpServletResponse response, @RequestBody FileDownloadDTO fileDownloadDTO) {
if (fileDownloadDTO == null || StringUtils.isBlank(fileDownloadDTO.getUuid())) {
Response.createError("参数uuid为空");
}
return fileSystemClient.getBase64(fileDownloadDTO);
}
//------------私有方法区域-------------
private Response chechImgSuffix(String fileName) {
if(CuscStringUtils.isEmpty(fileName)){
return Response.createError("图片名称不能为空");
}
int startIndex = fileName.lastIndexOf(".");
if (startIndex <= 0) {
return Response.createError("请上传规定的图片格式");
}
String suffixName = fileName.substring(startIndex+1).toLowerCase();
if (IMG_FILE_SUFFIX_LIST.contains(suffixName)) {
return Response.createSuccess();
}
return Response.createError("请上传规定的图片格式");
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.PageResult;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.dto.*;
import com.cusc.nirvana.user.rnr.enterprise.service.IDistributorService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @author stayAnd
* @date 2022/4/14
*
*/
@RestController
@RequestMapping("/userEnterprise/distributor")
@ApiModel("经销商")
public class DistributorController {
@Resource
private IDistributorService distributorService;
@PostMapping("/add")
@ApiOperation("新增经销商")
public Response add(@Validated @RequestBody DistributorAddDTO dto){
distributorService.add(dto);
return Response.createSuccess();
}
@PostMapping("/page")
@ApiOperation("分页查询经销商")
public Response<PageResult<DistributorDTO>> page(@RequestBody DistributorPageQueryDTO dto){
// return Response.createSuccess(distributorService.page(dto));
Map<String,Object> selectMap = distributorService.pageToMap(dto);
Integer errorCode = (Integer) selectMap.get("errorCode");
String errorMsg = (String) selectMap.get("errorMsg");
if (errorCode != 10000) {
return Response.createError(errorMsg,errorCode);
} else {
PageResult<DistributorDTO> list = (PageResult<DistributorDTO>) selectMap.get("returnList");
return Response.createSuccess(list);
}
}
@PostMapping("/update")
@ApiOperation("更新经销商")
public Response update(@RequestBody DistributorDTO distributorDTO){
distributorService.update(distributorDTO);
return Response.createSuccess();
}
@PostMapping("/changeAdmin")
@ApiOperation("切换经销商管理员")
public Response changeAdmin(@RequestBody DistributorChangeAdminDTO dto){
distributorService.changeAdmin(dto);
return Response.createSuccess();
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseCorporationChangeDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseRnrPersonDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.RnrResponseListDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.validator.groups.EnterpriseCorporationChangeGroup;
import com.cusc.nirvana.user.rnr.enterprise.service.IEnterpriseRnrService;
import com.cusc.nirvana.user.rnr.fp.common.RnrResultEnum;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 企业责任人变更
*
* @author huchenhui
* @date 2022-04-14
*/
@RestController
@RequestMapping("/enterprise/corporation/change")
public class EnterpriseCorporationChangeController {
@Resource
private IEnterpriseRnrService enterpriseRnrService;
/**
* Description: 查询企业信息
* <br />
* CreateDate 2022-04-20 16:43:36
*
* @author yuyi
**/
@ApiOperation(value = "查询企业信息", notes = "查询企业信息")
@PostMapping("/queryEnterprise")
public Response<RnrResponseListDTO> queryEnterprise(@Validated(EnterpriseCorporationChangeGroup.Query.class) @RequestBody EnterpriseCorporationChangeDTO dto) {
RnrResponseListDTO<EnterpriseRnrPersonDTO> ret = new RnrResponseListDTO<>();
// List<EnterpriseRnrPersonDTO> list = enterpriseRnrService.queryEnterpriseRnrPerson(dto);
// ret.setList(list);
Map<String, Object> selectMap = enterpriseRnrService.queryEnterpriseRnrPerson(dto);
Integer errorCode = (Integer) selectMap.get("errorCode");
String errorMsg = (String) selectMap.get("errorMsg");
if (errorCode != 10000) {
return Response.createError(errorMsg,errorCode);
} else {
List<EnterpriseRnrPersonDTO> list = (List<EnterpriseRnrPersonDTO>) selectMap.get("returnList");
ret.setList(list);
return Response.createSuccess(ret);
}
}
/**
* Description: 提交企业责任人变更
* <br />
* CreateDate 2022-04-20 16:43:36
*
* @author yuyi
**/
@ApiOperation(value = "提交企业责任人变更", notes = "提交企业责任人变更")
@PostMapping("/submit")
@SysLog(sysModule = SysModuleEnum.ENTERPRISE_CHANGE_RNR)
public Response submit(@Validated(EnterpriseCorporationChangeGroup.Submit.class) @RequestBody EnterpriseCorporationChangeDTO bean) {
enterpriseRnrService.submitChange(bean);
return Response.createSuccess(RnrResultEnum.REVIEW.getCode());
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.dto.CompanyRnrResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.EMVinCardResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseRnrCertificationInfoDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseRnrVinCardInfoDTO;
import com.cusc.nirvana.user.rnr.enterprise.service.IEnterpriseRnrService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 企业实名认证控制层
*
* @author huchenhui
* @date 2022-04-14
*/
@RestController
@RequestMapping("/enterpriseRnr")
public class EnterpriseRnrController {
@Resource
private IEnterpriseRnrService enterpriseRnrService;
/**
* 企业实名认证上传Excel文件,需要传入文件系统id,从文件系统下载后解析,成功则继续,失败则删除原文件,新文件添加失败原因后重新上传至文件系统。
*
* @param dto dto bean
* @return 单条数据
*/
@ApiOperation(value = "校验车卡信息", notes = "企业实名认证校验车卡信息")
@PostMapping("/verifyVinCards")
public Response<EMVinCardResponseDTO> verifyVinCards(@RequestBody EnterpriseRnrVinCardInfoDTO dto) {
return enterpriseRnrService.verifyVinCards(dto);
}
/**
* 提交企业实名认证
*
* @param dto dto bean
* @return 单条数据
*/
@ApiOperation(value = "提交企业实名认证", notes = "提交企业实名认证")
@PostMapping("/submitRnr")
@SysLog(sysModule = SysModuleEnum.ENTERPRISE_WEB_RNR)
public Response<CompanyRnrResponseDTO> submitRnr(@RequestBody EnterpriseRnrCertificationInfoDTO dto) {
return enterpriseRnrService.submitRnr(dto);
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.dto.*;
import com.cusc.nirvana.user.rnr.enterprise.service.IEnterpriseRnrService;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
/**
* @author stayAnd
* @date 2022/6/7
*/
@RestController
@RequestMapping("/enterpriseRnr/h5")
public class EnterpriseRnrH5Controller {
@Resource
private IEnterpriseRnrService enterpriseRnrService;
@PostMapping("/submitRnr")
@SysLog(sysModule = SysModuleEnum.ENTERPRISE_H5_RNR)
public Response<EnterpriseRnrH5RespDTO> submitRnr(@Valid @RequestBody EnterpriseRnrH5RequestDTO dto) {
return Response.createSuccess(enterpriseRnrService.submitRnrH5(dto));
}
/**
* 活体回调
* @param bean
* @return
*/
@RequestMapping(value = "/livenessCallback", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public Response<EnterpriseRnrH5CallBackRespDTO> afreshLivenessUrl(@Valid @RequestBody LivenessCallbackReqDTO bean) {
return Response.createSuccess(enterpriseRnrService.afreshLivenessUrl(bean));
}
@PostMapping("/submitRnrWithFile")
@SysLog(sysModule = SysModuleEnum.ENTERPRISE_H5_RNR)
public Response<EnterpriseRnrH5RespDTO> submitRnrWithFile(@Valid @RequestBody EnterpriseRnrH5FileRequestDTO dto) {
return Response.createSuccess(enterpriseRnrService.submitRnrWithFile(dto));
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseUnBindDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.VinCheckResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.service.EnterpriseUnBindService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
/**
* @className: EnterpriseUnBind
* @description: 企业解绑
* @author: jk
* @date: 2022/6/16 18:20
* @version: 1.0
**/
@RestController
@RequestMapping("/enterprise")
public class EnterpriseUnBindController {
@Resource
private EnterpriseUnBindService enterpriseUnBindService;
/**
* @author: jk
* @description: 解绑参数校验
* @date: 2022/6/16 18:24
* @version: 1.0
*/
@PostMapping("/unBindCheck")
public Response<VinCheckResponseDTO> enterpriseUnBindCheck(@Valid @RequestBody EnterpriseUnBindDTO dto) {
return Response.createSuccess(enterpriseUnBindService.enterpriseUnBindCheck(dto));
}
/**
* 提交解绑信息
*/
@ApiOperation(value = "提交解绑信息", notes = "提交解绑信息")
@PostMapping("/submitUnBind")
public Response submitUnBind(@Valid @RequestBody EnterpriseUnBindDTO dto) {
return enterpriseUnBindService.submitUnBind(dto);
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.dto.FileDownloadDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.FileUploadDTO;
import com.cusc.nirvana.user.rnr.fp.client.FileSystemClient;
import com.cusc.nirvana.user.rnr.fp.dto.FileRecordDTO;
import com.cusc.nirvana.user.rnr.fp.dto.ImageBase64DTO;
import com.cusc.nirvana.web.exception.AppGlobalException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
import java.util.List;
/**
* @author stayAnd
* @date 2022/4/12
*/
@RestController
@RequestMapping("/file")
@Slf4j
public class FileController {
@Resource
private FileSystemClient fileSystemClient;
//文件后缀常量
private static final List<String> FILE_SUFFIX_LIST =
Arrays.asList("jpg","jpeg", "png", "gif", "bmp", "pdf", "mp4", "avi", "wav",
"rm","xls","xlsx","doc","docx");
@PostMapping("/getBase64ByIds")
public Response<List<ImageBase64DTO>> getBase64ByIds(@RequestBody FileDownloadDTO fileDownload) throws Exception {
if (CollectionUtils.isEmpty(fileDownload.getFileSystemIds())) {
Response.createError("参数文件ids为空");
}
List<ImageBase64DTO> base64DTOList = new ArrayList<>(fileDownload.getFileSystemIds().size());
//复用接口,循环获取
fileDownload.getFileSystemIds().forEach(fileSystemId -> {
com.cusc.nirvana.user.rnr.fp.dto.FileDownloadDTO fileDownloadDTO =
new com.cusc.nirvana.user.rnr.fp.dto.FileDownloadDTO();
fileDownloadDTO.setUuid(fileSystemId);
Response<ImageBase64DTO> base64DTOResponse = fileSystemClient.getBase64(fileDownloadDTO);
if (base64DTOResponse.isSuccess() && base64DTOResponse.getData() != null) {
base64DTOList.add(base64DTOResponse.getData());
}
});
return Response.createSuccess(base64DTOList);
}
@PostMapping("/upload")
public Response<FileRecordDTO> upload(FileUploadDTO fileUploadDTO) throws Exception {
//文件大小必须大于0
if (fileUploadDTO.getFile().getSize() < 1) {
return Response.createError("文件内容不能为空");
}
String originalFilename = fileUploadDTO.getFile().getOriginalFilename();
//检查文件后缀
Response fileSuffixResp = chechFileSuffix(originalFilename);
if(!fileSuffixResp.isSuccess()){
return fileSuffixResp;
}
com.cusc.nirvana.user.rnr.fp.dto.FileUploadDTO dto = new com.cusc.nirvana.user.rnr.fp.dto.FileUploadDTO();
dto.setFile(fileUploadDTO.getFile());
return fileSystemClient.uploadFile(dto);
}
@PostMapping("/getAccessUrl")
public String getAccessUrl(@RequestBody FileUploadDTO fileUploadDTO) throws Exception {
//return MinIOUtils.getPresignedObjectUrl(minIOConfig.getBucketName(), fileUploadDTO.getUuid());
return null;
}
/**
* 文件下载
*
* @param fileDownloadDTO
* @return
*/
@PostMapping("/download")
public Response download(HttpServletResponse response, @RequestBody FileDownloadDTO fileDownloadDTO) {
try {
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(
StringUtils.isNotEmpty(fileDownloadDTO.getFileName()) ? fileDownloadDTO.getFileName() :
"文件.xlsx", "utf-8"));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
byte[] result = null;
try {
log.info("下载文件-开始, uuid : {}", fileDownloadDTO.getUuid());
com.cusc.nirvana.user.rnr.fp.dto.FileDownloadDTO dto = new com.cusc.nirvana.user.rnr.fp.dto.FileDownloadDTO();
dto.setUuid(fileDownloadDTO.getUuid());
Response<ImageBase64DTO> base64Response = fileSystemClient.getBase64(dto);
String base64 = base64Response.getData().getBase64();
result = Base64.getDecoder().decode(base64);
log.info("下载文件-结束, uuid : {}", fileDownloadDTO.getUuid());
} catch (Exception e) {
log.error("getImageBase64 error: {}", e.getMessage(), e);
return Response.createError(e.getMessage());
}
//InputStream fileStream = MinIOUtils.getObject(minIOConfig.getBucketName(), fileDownloadDTO.getUuid());
response.getOutputStream().write(result);
} catch (Exception e) {
throw new AppGlobalException("下载失败", e);
} finally {
try {
if (response.getOutputStream() != null) {
response.getOutputStream().close();
}
} catch (IOException e) {
log.error("---response.getOutputStream().close()--exception--", e);
}
}
return Response.createSuccess();
}
/**
* Description: 文件后缀检查
* <br />
* CreateDate 2022-07-09 23:56:03
*
* @author yuyi
**/
private Response chechFileSuffix(String fileName) {
int startIndex = fileName.lastIndexOf(".");
if (startIndex <= 0) {
return Response.createError("请上传规定的文件格式");
}
String suffixName = fileName.substring(startIndex+1).toLowerCase();
if (FILE_SUFFIX_LIST.contains(suffixName)) {
return Response.createSuccess();
}
return Response.createError("请上传规定的文件格式");
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.alibaba.fastjson.JSONObject;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.auth.authentication.plug.user.UserSubjectUtil;
import com.cusc.nirvana.user.rnr.fp.client.FpRnrClient;
import com.cusc.nirvana.user.rnr.fp.client.FpRnrOrderClient;
import com.cusc.nirvana.user.rnr.fp.dto.RnrOrderListQueryDTO;
import com.cusc.nirvana.user.rnr.mg.client.LocalVerifyClient;
import com.cusc.nirvana.user.rnr.mg.dto.*;
import com.cusc.nirvana.user.util.DateUtils;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/localverify")
@Slf4j
public class LocalVerifyController {
@Autowired
private LocalVerifyClient localVerifyClient;
@Autowired
private FpRnrClient fpRnrClient;
@Resource
private FpRnrOrderClient fpRnrOrderClient;
/**
* 本地人工审核列表
*/
@ApiOperation(value = "本地人工审核列表", notes = "本地人工审核列表")
@PostMapping("/list")
public Response list(@RequestBody LocalVerifyListRqDTO rq) {
RnrOrderListQueryDTO query = new RnrOrderListQueryDTO();
query.setVin(rq.getVin());
query.setIccid(rq.getIccid());
query.setCreateTimeQueryStart(DateUtils.parseDate(rq.getRnrStartDate(),"yyyy-MM-dd HH:mm:ss"));
query.setCreateTimeQueryEnd(DateUtils.parseDate(rq.getRnrEndDate(),"yyyy-MM-dd HH:mm:ss"));
query.setFullName(rq.getVinOwnerName());
query.setPhone(rq.getVinOwnerPhone());
if (StringUtils.isNotBlank(rq.getOrderType())) {
query.setOrderType(Integer.parseInt(rq.getOrderType()));
}
query.setCompanyName(rq.getVinCompanyName());
query.setOrganizationName(rq.getOrgName());
query.setCurrPage(rq.getCurrPage());
query.setPageSize(rq.getPageSize());
return fpRnrOrderClient.localverifyList(query);
}
/**
* 查询工单企业详情
*
* @return 单条数据
*/
@ApiOperation(value = "查询工单企业详情", notes = "查询工单企业详情")
@PostMapping("/getEnterpriseDetail")
public Response<EnterpriseVerifyDetailDTO> getEnterpriseDetail(@RequestBody RnrOrderDTO rnrOrderDTO) {
rnrOrderDTO.setUserId(UserSubjectUtil.getUserId());
rnrOrderDTO.setApplicationId(UserSubjectUtil.getAppId());
rnrOrderDTO.setTenantNo(UserSubjectUtil.getTenantNo());
return Response.createSuccess(localVerifyClient.getEnterpriseDetail(rnrOrderDTO));
}
/**
* 企业负责人变更审核详情
* @return 单条数据
*/
@ApiOperation(value = "企业负责人变更审核详情", notes = "企业负责人变更审核详情")
@PostMapping("/enterpriseRnrPersonDetail")
public Response<CompanyCorporationChangeRespDTO> enterpriseRnrPersonDetail(@RequestParam RnrOrderDTO dto) {
return Response.createSuccess(localVerifyClient.enterpriseRnrPersonDetail(dto.getUuid()));
}
/**
* 自然人审核详情
*/
@ApiOperation(value = "自然人审核详情", notes = "自然人审核详情")
@PostMapping("/personDetail")
public Response personDetail(@RequestBody LocalVerifyListRqDTO rq) {
rq.setUserId(UserSubjectUtil.getUserId());
rq.setApplicationId(UserSubjectUtil.getAppId());
rq.setTenantNo(UserSubjectUtil.getTenantNo());
return localVerifyClient.personDetail(rq);
}
/**
* 提交
*/
@ApiOperation(value = "提交审核", notes = "提交审核")
@PostMapping("/submit")
public Response submit(@RequestBody LocalVerifySubmitRq rq) {
rq.setUserId(UserSubjectUtil.getUserId());
return localVerifyClient.submit(rq);
}
/**
* 重试按钮
*/
@ApiOperation(value = "重试按钮", notes = "重试")
@PostMapping("/retry")
public Response retry(@RequestBody LocalVerifySubmitRq rq) {
Response<RnrRelationDTO> response =localVerifyClient.retry(rq);
RnrRelationDTO bean = response.getData();
log.info("mg retry return:"+ JSONObject.toJSONString(bean));
return fpRnrClient.personalInfoOnlyRnr(bean);
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.PageResult;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.rnr.enterprise.dto.LogCategoryDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.LogInfoRequestDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.LogInfoResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.service.ILogService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author stayAnd
* @date 2022/7/4
*/
@RestController
@RequestMapping("/log")
public class LogController {
@Resource
private ILogService logService;
@GetMapping("/category")
public Response<LogCategoryDTO> category(){
return Response.createSuccess(logService.category());
}
@PostMapping("/list")
public Response<PageResult<LogInfoResponseDTO>> list(@RequestBody LogInfoRequestDTO requestDTO){
return Response.createSuccess(logService.list(requestDTO));
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.auth.authentication.plug.user.UserSubjectUtil;
import com.cusc.nirvana.user.auth.client.RandomIdClient;
import com.cusc.nirvana.user.auth.identification.dto.RandomIdReq;
import com.cusc.nirvana.user.eiam.client.UserClient;
import com.cusc.nirvana.user.eiam.constants.CommonStatusEnum;
import com.cusc.nirvana.user.eiam.dto.UserDTO;
import com.cusc.nirvana.user.eiam.dto.UserPasswordDTO;
import com.cusc.nirvana.user.rnr.enterprise.config.EnterpriseConfig;
import com.cusc.nirvana.user.rnr.enterprise.constants.EnterpriseLoginSourceEnum;
import com.cusc.nirvana.user.rnr.enterprise.constants.ResponseCode;
import com.cusc.nirvana.user.rnr.enterprise.convert.UserPasswordConvert;
import com.cusc.nirvana.user.rnr.enterprise.dto.CaptchaResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.LoginPasswordReqDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.UserPasswReqDTO;
import com.cusc.nirvana.user.util.CuscStringUtils;
import com.cusc.nirvana.user.util.crypt.Sm4Util;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* Description: 登录密码控制层
* <br />
* CreateDate 2022-06-11 21:39:39
*
* @author yuyi
**/
@RestController
@RequestMapping("/password")
@ApiModel("登录密码控制层")
public class LoginPasswordController {
@Resource
private UserClient userClient;
@Resource
private RandomIdClient randomIdClient;
@Resource
private EnterpriseConfig enterpriseConfig;
@PostMapping("/forget")
@ApiOperation("忘记密码")
public Response<Boolean> forget(@RequestBody UserPasswReqDTO bean) {
bean.setTenantNo(enterpriseConfig.getTenantNo());
if (CuscStringUtils.isEmpty(bean.getSmsCode()) || CuscStringUtils.isEmpty(bean.getPhone()) || CuscStringUtils.isEmpty(bean.getPlatformSource())) {
return Response.createError(ResponseCode.PARAMETER_NULL.getMsg(), ResponseCode.PARAMETER_NULL.getCode());
}
//指定忘记密码的短信模板
//SmsSendConfig smsConfig = new SmsSendConfig();
//smsConfig.setStrategyCode("");
//smsConfig.setSmsTemplateCode("");
UserPasswordDTO pwd = UserPasswordConvert.INSTANCE.userPasswordReqToEiamDTO(bean);
pwd.setApplicationId(EnterpriseLoginSourceEnum.getByPlatform(bean.getPlatformSource()).getAppId());
//pwd.setSmsSendConfig(smsConfig);
//密码不为空,则获取密码
if(CuscStringUtils.isNotEmpty(bean.getPassword())){
RandomIdReq randomIdReq = new RandomIdReq();
randomIdReq.setRequestId(bean.getRequestId());
randomIdReq.setApplicationId(EnterpriseLoginSourceEnum.getByPlatform(bean.getPlatformSource()).getAppId());
Response<String> keyResp = randomIdClient.getContentByRequestId(randomIdReq);
if(!keyResp.isSuccess() || CuscStringUtils.isEmpty(keyResp.getData())){
return Response.createError(ResponseCode.USER_PASSWORD_KEY_NOT_FOUND.getMsg(), ResponseCode.USER_PASSWORD_KEY_NOT_FOUND.getCode());
}
String secretKey = keyResp.getData();
randomIdClient.delByRequestId(randomIdReq);
pwd.setPassword(Sm4Util.decryptEcbPadding(secretKey, bean.getPassword()));
}
//根据手机号查询用户id
UserDTO userDTO = new UserDTO();
userDTO.setPhone(bean.getPhone());
userDTO.setTenantNo(enterpriseConfig.getTenantNo());
userDTO.setApplicationId(EnterpriseLoginSourceEnum.getByPlatform(bean.getPlatformSource()).getAppId());
userDTO.setStatus(CommonStatusEnum.ENABLE.getCode());
Response<UserDTO> userResp = userClient.getByPhone(userDTO);
if(!userResp.isSuccess() || userResp.getData() == null){
return Response.createError(ResponseCode.USER_NAME_PASSWORD_ERROR.getMsg(), ResponseCode.USER_NAME_PASSWORD_ERROR.getCode());
}
pwd.setUuid(userResp.getData().getUuid());
return userClient.resetPassword(pwd);
}
@PostMapping("/change")
@ApiOperation("修改密码")
public Response<CaptchaResponseDTO> change(@RequestBody LoginPasswordReqDTO bean) {
bean.setTenantNo(enterpriseConfig.getTenantNo());
if (CuscStringUtils.isEmpty(bean.getPassword()) || CuscStringUtils.isEmpty(bean.getNewPassword()) || CuscStringUtils.isEmpty(bean.getRequestId())) {
return Response.createError(ResponseCode.PARAMETER_NULL.getMsg(), ResponseCode.PARAMETER_NULL.getCode());
}
UserDTO userDTO = new UserDTO();
userDTO.setUuid(UserSubjectUtil.getUserId());
userDTO.setTenantNo(UserSubjectUtil.getTenantNo());
userDTO.setApplicationId(UserSubjectUtil.getAppId());
RandomIdReq randomIdReq = new RandomIdReq();
randomIdReq.setRequestId(bean.getRequestId());
randomIdReq.setApplicationId(UserSubjectUtil.getAppId());
Response<String> keyResp = randomIdClient.getContentByRequestId(randomIdReq);
if(!keyResp.isSuccess() || CuscStringUtils.isEmpty(keyResp.getData())){
return Response.createError(ResponseCode.USER_PASSWORD_KEY_NOT_FOUND.getMsg(), ResponseCode.USER_PASSWORD_KEY_NOT_FOUND.getCode());
}
String secretKey = keyResp.getData();
randomIdClient.delByRequestId(randomIdReq);
userDTO.setPassword(Sm4Util.decryptEcbPadding(secretKey, bean.getPassword()));
userDTO.setNewPassword(Sm4Util.decryptEcbPadding(secretKey, bean.getNewPassword()));
return Response.createSuccess(userClient.changePassword(userDTO));
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.cusc.nirvana.common.loader.StringUtils;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.auth.authentication.plug.user.UserSubjectUtil;
import com.cusc.nirvana.user.eiam.constants.CommonYesOrNoEnum;
import com.cusc.nirvana.user.rnr.enterprise.common.SysModuleEnum;
import com.cusc.nirvana.user.rnr.enterprise.config.SysLog;
import com.cusc.nirvana.user.rnr.enterprise.dto.CompanyRnrResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.EMVinCardResponseDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseRnrCertificationInfoDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseRnrFollowUpDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.EnterpriseRnrVinCardInfoDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.FileDownloadDTO;
import com.cusc.nirvana.user.rnr.enterprise.dto.VehicleEnterpriseRnrEchoDTO;
import com.cusc.nirvana.user.rnr.enterprise.service.IEnterpriseRnrService;
import com.cusc.nirvana.user.rnr.enterprise.service.IManufacturerRnrService;
import com.cusc.nirvana.user.rnr.fp.client.FileSystemClient;
import com.cusc.nirvana.web.exception.AppGlobalException;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.*;
import java.net.*;
import java.util.Base64;
/**
* 车企实名认证控制层
*
* @author huzl
* @date 2022-04-19
*/
@RestController
@RequestMapping("/manufacturerRnr")
public class ManufacturerRnrController {
@Value("${fileTemplate.manufacturer.templateId:template.xlsx}")
private String manufacturerRnrTemplateFileId;
@Resource
private FileSystemClient fileSystemClient;
@Autowired
private IManufacturerRnrService manufacturerRnrService;
@Autowired
private IEnterpriseRnrService enterpriseRnrService;
/**
* 下载车企实名模板
*/
@ApiOperation(value = "下载车企实名模板", notes = "下载车企实名模板")
@GetMapping("/downloadTemplate")
public Response downloadTemplate(HttpServletResponse response) {
if (StringUtils.isBlank(manufacturerRnrTemplateFileId)) {
return Response.createError("", "车企实名模板未配置");
}
FileDownloadDTO fileDownloadDTO = new FileDownloadDTO();
fileDownloadDTO.setUuid(manufacturerRnrTemplateFileId);
try {
String base64 = fileSystemClient.getBase64(fileDownloadDTO).getData().getBase64();
byte[] decode = Base64.getDecoder().decode(base64);
// 以文件形式下载
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode("template.xls", "utf-8"));
response.getOutputStream().write(decode);
response.getOutputStream().flush();
response.getOutputStream().close();
} catch (Exception e){
throw new AppGlobalException("下载失败", e);
}
return Response.createSuccess();
}
/**
* 车企实名认证上传Excel文件,需要传入文件系统id,从文件系统下载后解析,成功则继续,失败则删除原文件,新文件添加失败原因后重新上传至文件系统。
*
* @param dto
* @return 单条数据
*/
@ApiOperation(value = "校验车卡信息", notes = "企业实名认证校验车卡信息")
@PostMapping("/verifyVinCards")
public Response<EMVinCardResponseDTO> verifyVinCards(@Valid @RequestBody EnterpriseRnrVinCardInfoDTO dto) {
return enterpriseRnrService.verifyVinCards(dto);
}
/**
* 提交车企实名认证
*
* @param dto
* @return 单条数据
*/
@ApiOperation(value = "提交车企实名认证", notes = "提交车企实名认证")
@PostMapping("/submitRnr")
@SysLog(sysModule = SysModuleEnum.MANUFACTURER_WEB_RNR_FIRST)
public Response<CompanyRnrResponseDTO> submitRnr(@Valid @RequestBody EnterpriseRnrCertificationInfoDTO dto) {
dto.setIsVehicleCompany(CommonYesOrNoEnum.YES.getCode());
return enterpriseRnrService.submitRnr(dto);
}
/**
* 提交车企实名认证
*
* @return 单条数据
*/
@ApiOperation(value = "提交车企实名认证-后续", notes = "提交车企实名认证-后续")
@PostMapping("/submitRnrFollowUp")
@SysLog(sysModule = SysModuleEnum.MANUFACTURER_WEB_RNR_FOLLOW_UP)
public Response<CompanyRnrResponseDTO> submitRnrFollowUp(@Valid @RequestBody EnterpriseRnrFollowUpDTO bean) {
return manufacturerRnrService.submitRnrFollowUp(bean);
}
/**
* 查询车企详情
*
* @return 单条数据
*/
@ApiOperation(value = "查询车企详情", notes = "查询车企详情")
@PostMapping("/getDetail")
public Response<VehicleEnterpriseRnrEchoDTO> getDetail() {
//todo 获取用户id
String userId = UserSubjectUtil.getUserId();
String tenantNo = UserSubjectUtil.getTenantNo();
//通过用户id查询当前组织
String carOrganId = "";
//判断当前组织是否是车企,如果不是则需要通过组织id找到上级车企信息
return Response.createSuccess(manufacturerRnrService.findDetail(tenantNo, carOrganId));
}
}
package com.cusc.nirvana.user.rnr.enterprise.controller;
import com.alibaba.fastjson.JSON;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.auth.authentication.plug.user.UserSubjectUtil;
import com.cusc.nirvana.user.rnr.enterprise.constants.ResponseCode;
import com.cusc.nirvana.user.rnr.enterprise.service.impl.SmsServiceImpl;
import com.cusc.nirvana.user.rnr.fp.client.SmsClient;
import com.cusc.nirvana.user.rnr.fp.constants.BizTypeEnum;
import com.cusc.nirvana.user.rnr.fp.dto.SmsRequestDTO;
import com.cusc.nirvana.user.rnr.fp.dto.UnbindReceiceSMSDTO;
import com.cusc.nirvana.user.util.CuscStringUtils;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author yubo
* @since 2022-05-06 16:34
*/
@RestController
@RequestMapping("/message")
@Slf4j
public class MessageController {
@Autowired
private SmsClient smsClient;
@Autowired
SmsServiceImpl smsService;
@ApiOperation(value = "短信回调", notes = "短信回调")
@PostMapping("/callBack")
public Response callBack(@RequestBody UnbindReceiceSMSDTO bean) {
log.info("message callback rq : {}", JSON.toJSONString(bean));
return smsClient.callBack(bean);
}
@ApiOperation(value = "短信验证码核验", notes = "短信验证码核验")
@PostMapping("/checkSmsCaptcha")
public Response checkSmsCaptcha(@RequestBody SmsRequestDTO bean) {
if(CuscStringUtils.isEmpty(bean.getPhone()) || CuscStringUtils.isEmpty(bean.getCaptcha())){
return Response.createError(ResponseCode.PARAMETER_NULL.getMsg(), ResponseCode.PARAMETER_NULL.getCode());
}
bean.setTenantNo(UserSubjectUtil.getTenantNo());
if (StringUtils.isBlank(bean.getBizType())) {
bean.setBizType(BizTypeEnum.RNR.getCode());
}
Response smsResponse = smsService.checkSmsCaptcha(bean);
if (!smsResponse.isSuccess()) {
return Response.createError(smsResponse.getMsg(), smsResponse.getCode());
}
return smsResponse;
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment