| | |
| | | { |
| | | "headers": { |
| | | "access-control-allow-origin": "*", |
| | | "date": "Tue, 21 Jan 2025 09:11:42 GMT", |
| | | "date": "Wed, 22 Jan 2025 02:32:31 GMT", |
| | | "content-length": "181", |
| | | "keep-alive": "timeout=25", |
| | | "transfer-encoding": "chunked", |
| | | "vary": "Accept-Encoding", |
| | | "x-acs-request-id": "05842EC7-FAA4-5BF7-9C8E-BD7E705262BF", |
| | | "x-acs-request-id": "C4D08986-F48C-5AB0-81BB-EA6D3E641261", |
| | | "connection": "keep-alive", |
| | | "content-type": "application/json;charset=utf-8", |
| | | "etag": "1oG9IxMCzf0kauAjlE63lUw1", |
| | | "access-control-expose-headers": "*", |
| | | "x-acs-trace-id": "200f635b624967d00167ded6423480c0" |
| | | "x-acs-trace-id": "726453953e55e52583454e3eef889146" |
| | | }, |
| | | "body": { |
| | | "RequestId": "05842EC7-FAA4-5BF7-9C8E-BD7E705262BF", |
| | | "Data": { |
| | | "SubImages": [ |
| | | { |
| | | "FigureInfo": { |
| | | "blicense_title": { |
| | | "FigureCount": 1, |
| | | "FigureDetails": [ |
| | | { |
| | | "FigurePoints": [ |
| | | { |
| | | "X": 648, |
| | | "Y": 311 |
| | | }, |
| | | { |
| | | "X": 1111, |
| | | "Y": 312 |
| | | }, |
| | | { |
| | | "X": 1112, |
| | | "Y": 415 |
| | | }, |
| | | { |
| | | "X": 648, |
| | | "Y": 414 |
| | | } |
| | | ], |
| | | "FigureAngle": 0 |
| | | } |
| | | ] |
| | | }, |
| | | "national_emblem": { |
| | | "FigureCount": 1, |
| | | "FigureDetails": [ |
| | | { |
| | | "FigurePoints": [ |
| | | { |
| | | "X": 787, |
| | | "Y": 141 |
| | | }, |
| | | { |
| | | "X": 965, |
| | | "Y": 141 |
| | | }, |
| | | { |
| | | "X": 964, |
| | | "Y": 265 |
| | | }, |
| | | { |
| | | "X": 786, |
| | | "Y": 264 |
| | | } |
| | | ], |
| | | "FigureAngle": 0 |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "SubImageId": 0, |
| | | "KvInfo": { |
| | | "KvCount": 14, |
| | | "Data": { |
| | | "RegistrationDate": "2022年08月11日", |
| | | "companyType": "其他有限责任公司", |
| | | "companyName": "新疆新省事大数据有限公司", |
| | | "businessScope": "许可项目:第一类增值电信业务:建筑智能化系统设计;农作物种子进出口;建设工程设计;建设工程施工;住宅室内装饰装修。(依法须经批准的项目,经相关部门批准后方可升展经营活动,具体经营项目以相关部门批准文件或许可证件为准)一般项目:数据处理和存储支持服务:人工智能理论与算法软件开发:智能机器人的研发;云计算装备技术服务;云计算设备销售;数字内容制作服务(不含出版发行);通信设备销售;安防设备销售:信息安全设备销售:信息安全设备制造:卫星导航服务;导航终端销售;导航终端制造;导航、测绘、气象及海洋专用仪器销售;环境保护专用设备销售;光通信设备销售;技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广:软件开发:信息系统集成服务:卫星技术综合应用系统集成:货物进出口;农副产品销售:食品进出口:酒店管理:物业管理:广告发布;广告设计、代理;广告制作;第一类医疗器械销售;第二类医疗器栈销售;教育咨询服务(不含涉许可审批的教育培训活动);大数据服务;互联网数据服务;物联网应用服务;安全技术防范系统设计施工服务;信息系统运行维护服务:数据处理服务:信息技术咨询服务;5G通信技术服务;工业工程设计服务;移动通信设备制造;移动通信设备销售;通信传输设备专业修理;通信交换设备专业修理;网络设备制造:网络设备销售;普通机械设备安装服务;计算机软硬件及辅助设备零售;计算机软硬件及辅助设备批发;计算机软硬件及外围设备制造:平面设计;技术进出口:劳务服务(不含劳务派遣)。(除依法须经批准的项目外,凭营业执照依法自主开展经营活动)", |
| | | "title": "营业执照", |
| | | "validPeriod": "", |
| | | "companyForm": "", |
| | | "creditCode": "91650106MABWEMX61X", |
| | | "registeredCapital": "壹仟万元整", |
| | | "legalPerson": "张丹", |
| | | "validFromDate": "20220811", |
| | | "businessAddress": "新疆乌鲁木齐经济技术开发区(头屯河区)玄武湖路433号经开万达广场12号写字楼办公1217室", |
| | | "issueDate": "2023年07月21日", |
| | | "validToDate": "" |
| | | }, |
| | | "KvDetails": { |
| | | "RegistrationDate": { |
| | | "KeyName": "RegistrationDate", |
| | | "ValueAngle": 0, |
| | | "Value": "2022年08月11日", |
| | | "KeyConfidence": 96, |
| | | "ValueConfidence": 96 |
| | | }, |
| | | "companyType": { |
| | | "KeyName": "companyType", |
| | | "ValueAngle": 0, |
| | | "Value": "其他有限责任公司", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "companyName": { |
| | | "KeyName": "companyName", |
| | | "ValueAngle": 0, |
| | | "Value": "新疆新省事大数据有限公司", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "businessScope": { |
| | | "KeyName": "businessScope", |
| | | "ValueAngle": 0, |
| | | "Value": "许可项目:第一类增值电信业务:建筑智能化系统设计;农作物种子进出口;建设工程设计;建设工程施工;住宅室内装饰装修。(依法须经批准的项目,经相关部门批准后方可升展经营活动,具体经营项目以相关部门批准文件或许可证件为准)一般项目:数据处理和存储支持服务:人工智能理论与算法软件开发:智能机器人的研发;云计算装备技术服务;云计算设备销售;数字内容制作服务(不含出版发行);通信设备销售;安防设备销售:信息安全设备销售:信息安全设备制造:卫星导航服务;导航终端销售;导航终端制造;导航、测绘、气象及海洋专用仪器销售;环境保护专用设备销售;光通信设备销售;技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广:软件开发:信息系统集成服务:卫星技术综合应用系统集成:货物进出口;农副产品销售:食品进出口:酒店管理:物业管理:广告发布;广告设计、代理;广告制作;第一类医疗器械销售;第二类医疗器栈销售;教育咨询服务(不含涉许可审批的教育培训活动);大数据服务;互联网数据服务;物联网应用服务;安全技术防范系统设计施工服务;信息系统运行维护服务:数据处理服务:信息技术咨询服务;5G通信技术服务;工业工程设计服务;移动通信设备制造;移动通信设备销售;通信传输设备专业修理;通信交换设备专业修理;网络设备制造:网络设备销售;普通机械设备安装服务;计算机软硬件及辅助设备零售;计算机软硬件及辅助设备批发;计算机软硬件及外围设备制造:平面设计;技术进出口:劳务服务(不含劳务派遣)。(除依法须经批准的项目外,凭营业执照依法自主开展经营活动)", |
| | | "KeyConfidence": 99, |
| | | "ValueConfidence": 98 |
| | | }, |
| | | "title": { |
| | | "KeyName": "title", |
| | | "ValueAngle": 0, |
| | | "Value": "营业执照", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "companyForm": { |
| | | "KeyName": "companyForm", |
| | | "Value": "", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "validPeriod": { |
| | | "KeyName": "validPeriod", |
| | | "Value": "", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "creditCode": { |
| | | "KeyName": "creditCode", |
| | | "ValueAngle": 1, |
| | | "Value": "91650106MABWEMX61X", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "registeredCapital": { |
| | | "KeyName": "registeredCapital", |
| | | "ValueAngle": 0, |
| | | "Value": "壹仟万元整", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "legalPerson": { |
| | | "KeyName": "legalPerson", |
| | | "ValueAngle": 0, |
| | | "Value": "张丹", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "validFromDate": { |
| | | "KeyName": "validFromDate", |
| | | "ValueAngle": 0, |
| | | "Value": "20220811", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 96 |
| | | }, |
| | | "issueDate": { |
| | | "KeyName": "issueDate", |
| | | "ValueAngle": 0, |
| | | "Value": "2023年07月21日", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "businessAddress": { |
| | | "KeyName": "businessAddress", |
| | | "ValueAngle": 0, |
| | | "Value": "新疆乌鲁木齐经济技术开发区(头屯河区)玄武湖路433号经开万达广场12号写字楼办公1217室", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | }, |
| | | "validToDate": { |
| | | "KeyName": "validToDate", |
| | | "Value": "", |
| | | "KeyConfidence": 100, |
| | | "ValueConfidence": 100 |
| | | } |
| | | } |
| | | }, |
| | | "QualityInfo": { |
| | | "IsCopy": false |
| | | }, |
| | | "BarCodeInfo": { |
| | | "BarCodeDetails": [], |
| | | "BarCodeCount": 0 |
| | | }, |
| | | "Type": "营业执照", |
| | | "QrCodeInfo": { |
| | | "QrCodeDetails": [ |
| | | { |
| | | "QrCodeAngle": 0, |
| | | "Data": "http://www.gsxt.gov.cn/index.html?uniscid=91650106MABWEMX61X", |
| | | "QrCodePoints": [ |
| | | { |
| | | "X": 1324, |
| | | "Y": 309 |
| | | }, |
| | | { |
| | | "X": 1457, |
| | | "Y": 309 |
| | | }, |
| | | { |
| | | "X": 1457, |
| | | "Y": 442 |
| | | }, |
| | | { |
| | | "X": 1324, |
| | | "Y": 442 |
| | | } |
| | | ] |
| | | } |
| | | ], |
| | | "QrCodeCount": 1 |
| | | }, |
| | | "Angle": 0 |
| | | } |
| | | ], |
| | | "Height": 1280, |
| | | "SubImageCount": 1, |
| | | "Width": 1755 |
| | | "Message": "success", |
| | | "RequestId": "C4D08986-F48C-5AB0-81BB-EA6D3E641261", |
| | | "Code": "Success", |
| | | "Result": { |
| | | "Status": "1", |
| | | "OpenTime": "2022-08-11/9999-09-09", |
| | | "ReasonCode": "100", |
| | | "BizCode": "1" |
| | | } |
| | | }, |
| | | "statusCode": 200 |
| | | } |
| | | } |
| | |
| | | <artifactId>cloudauth20190307</artifactId> |
| | | <version>${aliyun-cloudauth.version}</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.aliyun</groupId> |
| | | <artifactId>cloudauth20221125</artifactId> |
| | | <version>1.1.1</version> |
| | | </dependency> |
| | | </dependencies> |
| | | </dependencyManagement> |
| | | |
| | |
| | | public class MgtCompanyExcel { |
| | | |
| | | /** 公司名称 */ |
| | | @ExcelProperty(value = "公司名称") |
| | | @ExcelProperty(value = "企业名称") |
| | | private String companyName; |
| | | |
| | | @ExcelProperty(value = "法人") |
| | |
| | | @ExcelProperty(value = "联系人") |
| | | private String contactName; |
| | | |
| | | @ExcelProperty(value = "联系人方式") |
| | | @ExcelProperty(value = "联系方式") |
| | | private String contactPhone; |
| | | |
| | | @ExcelProperty(value = "注册时间") |
| | | @ExcelProperty(value = "注册时间",format = "yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private LocalDateTime createTime; |
| | | |
| | |
| | | import lombok.extern.log4j.Log4j2; |
| | | import org.springframework.cloud.openfeign.FallbackFactory; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | public RemoteCompanyService create(Throwable cause) { |
| | | return new RemoteCompanyService() { |
| | | |
| | | @GetMapping("/front/company/getCompanyByUserId") |
| | | @Override |
| | | public R<List<Company>> getCompanyByUserId(Long userId, String source) { |
| | | return R.fail(cause.getMessage()); |
| | |
| | | @Schema(description = "联系人邮箱") |
| | | private String email; |
| | | |
| | | private String code; |
| | | |
| | | |
| | | } |
| | |
| | | import com.ruoyi.common.security.auth.AuthUtil; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.company.api.RemoteCompanyService; |
| | | import com.ruoyi.company.api.RemoteCompanyUserService; |
| | | import com.ruoyi.company.api.domain.Company; |
| | | import com.ruoyi.company.api.domain.User; |
| | | import com.ruoyi.company.api.domain.dto.MgtCompanyDTO; |
| | | import com.ruoyi.company.api.model.RegisterUser; |
| | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.validation.Valid; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.TimeUnit; |
| | | /** |
| | |
| | | |
| | | @Resource |
| | | private RemoteCompanyUserService remoteCompanyUserService; |
| | | @Resource |
| | | private RemoteCompanyService remoteCompanyService; |
| | | |
| | | @Operation(summary = "管理端-登录") |
| | | @PostMapping("login") |
| | | public R<?> login(@RequestBody LoginBody form) |
| | |
| | | @PostMapping("smsLogin") |
| | | @Operation(summary = "验证码登录",description = "验证码登录") |
| | | public R<Map<String, Object>> smsLogin(@RequestBody RegisterUser registerUser){ |
| | | String smsCode = registerUser.getSmsCode(); |
| | | String smsCode = registerUser.getCode(); |
| | | if (!"999999".equals(smsCode)) { |
| | | String verifyKey = CacheConstants.PHONE_CODE_KEY + StringUtils.nvl(registerUser.getPhone(), ""); |
| | | String captcha = redisService.getCacheObject(verifyKey); |
| | |
| | | public R<?> check(@RequestBody RegisterUser registerUser) |
| | | { |
| | | String accountName = registerUser.getAccountName(); |
| | | R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); |
| | | if (R.isError(userByPhoneR)) { |
| | | throw new RuntimeException(userByPhoneR.getMsg()); |
| | | } |
| | | boolean check = false; |
| | | R<User> userR = new R<>(); |
| | | if (userByPhoneR.getData() != null) { |
| | | check = sysLoginService.check(userByPhoneR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | } |
| | | if (!check){ |
| | | userR = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); |
| | | if (R.isError(userR)) { |
| | | return R.fail("账号不存在"); |
| | | } |
| | | if (userR.getData() == null) { |
| | | return R.fail("账号不存在"); |
| | | } |
| | | check = sysLoginService.check(userR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | } |
| | | if (!check) { |
| | | R<User> userR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); |
| | | R<User> userR2 = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); |
| | | |
| | | User user = userR.getData(); |
| | | Boolean flag = sysLoginService.check(user, registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | User user1 = userR2.getData(); |
| | | Boolean flag1 = sysLoginService.check(user1, registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | if (!flag1 && !flag){ |
| | | return R.fail("账号不存在"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 重置密码 |
| | | */ |
| | |
| | | |
| | | |
| | | public void resetPwd(RegisterUser registerUser) { |
| | | R<User> userR = resetPwdCheck(registerUser); |
| | | String accountName = registerUser.getAccountName(); |
| | | R<User> userR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); |
| | | R<User> userR2 = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); |
| | | |
| | | User user = userR.getData(); |
| | | Boolean flag = check(user, registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | User user1 = userR2.getData(); |
| | | Boolean flag1 = check(user1, registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | |
| | | if (!flag1 && !flag){ |
| | | throw new ServiceException("账号不存在"); |
| | | } |
| | | User user2; |
| | | if (flag){ |
| | | user2 = user; |
| | | }else { |
| | | user2 = user1; |
| | | } |
| | | |
| | | String password = SecurityUtils.encryptPassword(registerUser.getPassword()); |
| | | user.setPassword(password); |
| | | R<Void> r = remoteCompanyUserService.updateUser(user); |
| | | user2.setPassword(password); |
| | | R<Void> r = remoteCompanyUserService.updateUser(user2); |
| | | if (R.isError(r)) { |
| | | throw new ServiceException(userR.getMsg()); |
| | | } |
| | | } |
| | | |
| | | public R<User> resetPwdCheck(RegisterUser registerUser) { |
| | | String accountName = registerUser.getAccountName(); |
| | | R<User> userByPhoneR = remoteCompanyUserService.getUserByPhone(accountName, SecurityConstants.INNER); |
| | | if (R.isError(userByPhoneR)) { |
| | | throw new RuntimeException(userByPhoneR.getMsg()); |
| | | } |
| | | boolean check = false; |
| | | R<User> userR = new R<>(); |
| | | if (userByPhoneR.getData() != null) { |
| | | check = check(userByPhoneR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | } |
| | | if (!check){ |
| | | userR = remoteCompanyUserService.getUserByAccountName(accountName, SecurityConstants.INNER); |
| | | if (R.isError(userR)) { |
| | | throw new RuntimeException(userR.getMsg()); |
| | | |
| | | public Boolean check(User user, String companyName, String idCardNumber) { |
| | | boolean flag = true; |
| | | if (user != null){ |
| | | R<List<Company>> companyListR = remoteCompanyService.getCompanyByUserId(user.getUserId(), SecurityConstants.INNER); |
| | | List<Company> companyList = companyListR.getData(); |
| | | long count = companyList.stream().filter(company -> company.getCompanyName() |
| | | .equals(companyName) && company.getIdCardNumber().equals(idCardNumber)).count(); |
| | | if (count == 0) { |
| | | flag = false; |
| | | } |
| | | if (userR.getData() == null) { |
| | | throw new RuntimeException("账号不存在"); |
| | | } |
| | | check = check(userR.getData(), registerUser.getCompanyName(), registerUser.getIdCardNumber()); |
| | | }else { |
| | | flag = false; |
| | | } |
| | | if (!check) { |
| | | throw new RuntimeException("账号不存在"); |
| | | } |
| | | return userR; |
| | | return flag; |
| | | } |
| | | |
| | | public boolean check(User user, String companyName, String idCardNumber) { |
| | | Long userId = user.getUserId(); |
| | | R<List<Company>> companyR = remoteCompanyService.getCompanyByUserId(userId, SecurityConstants.INNER); |
| | | if (R.isError(companyR)) { |
| | | throw new ServiceException(companyR.getMsg()); |
| | | } |
| | | List<Company> companyList = companyR.getData(); |
| | | if (companyList != null) { |
| | | long count = companyList.stream() |
| | | .filter(company -> company.getCompanyName().equals(companyName) && |
| | | company.getIdCardNumber().equals(idCardNumber)) |
| | | .count(); |
| | | return count > 0; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 管理端-修改密码 |
| | |
| | | <groupId>com.aliyun</groupId> |
| | | <artifactId>cloudauth20190307</artifactId> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.aliyun</groupId> |
| | | <artifactId>cloudauth20221125</artifactId> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | | <build> |
| | |
| | | companyService.editCompany(mgtCompanyDTO); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 修改企业联系方式 |
| | | */ |
| | | @Operation(summary = "修改企业联系方式", tags = {"企业端"}) |
| | | @PutMapping("/updateCompanyPhone") |
| | | public R<Void> updateCompanyPhone(@RequestBody MgtCompanyDTO mgtCompanyDTO){ |
| | | Long userId = SecurityUtils.getAppLoginUser().getUserId(); |
| | | Company companyDb = companyService.getOne(new LambdaQueryWrapper<Company>() |
| | | .eq(Company::getUserId, userId)); |
| | | companyDb.setContactName(mgtCompanyDTO.getContactName()); |
| | | companyDb.setContactPhone(mgtCompanyDTO.getContactPhone()); |
| | | companyDb.setEmail(mgtCompanyDTO.getEmail()); |
| | | companyService.updateById(companyDb); |
| | | return R.ok(); |
| | | } |
| | | } |
| | |
| | | throw new ServiceException("该企业已存在"); |
| | | } |
| | | //身份证二要素校验 |
| | | Boolean res = aliyunCloudAuthUtil.verifyIdCard(dto.getLegalPersonName(), dto.getIdCardNumber()); |
| | | if (!res) { |
| | | throw new ServiceException("身份证信息不匹配"); |
| | | } |
| | | identityVerification(dto, company, user); |
| | | this.save(company); |
| | | } |
| | | |
| | |
| | | if (Objects.isNull(user)) { |
| | | throw new ServiceException("该企业账号不存在"); |
| | | } |
| | | Long accountCount = userService.lambdaQuery().ne(User::getUserId, user.getUserId()).eq(User::getAccountName, dto.getAccountName()).count(); |
| | | Long accountCount = userService.lambdaQuery() |
| | | .ne(User::getUserId, user.getUserId()) |
| | | .eq(User::getAccountName, dto.getAccountName()) |
| | | .count(); |
| | | if (accountCount > 0) { |
| | | throw new ServiceException("账户名重复"); |
| | | } |
| | |
| | | if (StringUtils.isNotBlank(company.getCompanyName())){ |
| | | Long count = this.lambdaQuery() |
| | | .ne(Company::getId, dto.getId()) |
| | | .eq(Company::getSocialCode, company.getSocialCode()) |
| | | .eq(Company::getCompanyName, dto.getCompanyName()) |
| | | .and(i -> { |
| | | i.eq(Company::getSocialCode, dto.getSocialCode()); |
| | | i.or(); |
| | | i.eq(Company::getCompanyName, dto.getCompanyName()); |
| | | }) |
| | | .count(); |
| | | if (count > 0) { |
| | | throw new ServiceException("该企业已存在"); |
| | | } |
| | | } |
| | | identityVerification(dto, company, user); |
| | | Company companyUpd = BeanUtils.copyBean(dto, Company.class); |
| | | companyUpd.setId(company.getId()); |
| | | this.updateById(companyUpd); |
| | | } |
| | | |
| | | private void identityVerification(MgtCompanyDTO dto, Company company, User user) { |
| | | //身份证二要素校验 |
| | | Boolean res = aliyunCloudAuthUtil.verifyIdCard(dto.getLegalPersonName(), dto.getIdCardNumber()); |
| | | if (!res) { |
| | | throw new ServiceException("身份证信息不匹配"); |
| | | } |
| | | Company companyUpd = BeanUtils.copyBean(dto, Company.class); |
| | | companyUpd.setId(company.getId()); |
| | | this.updateById(companyUpd); |
| | | //营业执照二要素校验 |
| | | res = aliyunCloudAuthUtil.verifyBusinessLicense(dto.getSocialCode(), company.getCompanyName(), user.getUserId()); |
| | | if (!res) { |
| | | throw new ServiceException("营业执照信息不匹配"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.aliyun.cloudauth20190307.Client; |
| | | import com.aliyun.cloudauth20190307.models.Id2MetaVerifyResponse; |
| | | import com.aliyun.cloudauth20221125.models.EntElementVerifyRequest; |
| | | import com.aliyun.cloudauth20221125.models.EntElementVerifyResponse; |
| | | import com.aliyun.cloudauth20221125.models.EntElementVerifyResponseBody; |
| | | import com.aliyun.tea.TeaException; |
| | | import com.aliyun.teaopenapi.models.Config; |
| | | import com.aliyun.teautil.models.RuntimeOptions; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import static com.aliyun.teautil.Common.assertAsString; |
| | | |
| | | /** |
| | | * @author mitao |
| | |
| | | config.endpoint = "cloudauth.aliyuncs.com"; |
| | | return new Client(config); |
| | | } |
| | | |
| | | /** |
| | | * <b>description</b> : |
| | | * <p>使用AK&SK初始化账号Client</p> |
| | | * @return Client |
| | | * |
| | | * @throws Exception |
| | | */ |
| | | public static com.aliyun.cloudauth20221125.Client createBusinessLicenseClient() throws Exception { |
| | | Config config = new Config() |
| | | .setAccessKeyId("LTAI5tFSeci96NRF6p6UN69G") |
| | | .setAccessKeySecret("25t5zmWkueoQd81Zka70uPKRPgaMiV"); |
| | | config.endpoint = "cloudauth.aliyuncs.com"; |
| | | return new com.aliyun.cloudauth20221125.Client(config); |
| | | } |
| | | |
| | | public Boolean verifyIdCard(String userName,String idCardNo) { |
| | | //姓名第一个字密文+ 姓名其他部分明文。 |
| | | String firstCharacter = userName.substring(0, 1); |
| | |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public static Boolean verifyBusinessLicense(String businessLicenseNo,String companyName,Long userId) { |
| | | com.aliyun.cloudauth20221125.Client client = null; |
| | | try { |
| | | client = createBusinessLicenseClient(); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | EntElementVerifyRequest entElementVerifyRequest = new EntElementVerifyRequest() |
| | | .setLicenseNo(businessLicenseNo) |
| | | .setEntName(companyName) |
| | | .setSceneCode("000001") |
| | | .setMerchantBizId(businessLicenseNo) |
| | | .setMerchantUserId(String.valueOf(userId)) |
| | | .setInfoVerifyType("ENT_2META") |
| | | .setUserAuthorization("1"); |
| | | RuntimeOptions runtime = new RuntimeOptions(); |
| | | try { |
| | | // 复制代码运行请自行打印 API 的返回值 |
| | | EntElementVerifyResponse entElementVerifyResponse = client.entElementVerifyWithOptions(entElementVerifyRequest, runtime); |
| | | EntElementVerifyResponseBody body = entElementVerifyResponse.getBody(); |
| | | EntElementVerifyResponseBody.EntElementVerifyResponseBodyResult result = body.getResult(); |
| | | String bizCode = result.getBizCode(); |
| | | return "1".equals(bizCode); |
| | | } catch (TeaException error) { |
| | | // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 |
| | | // 错误 message |
| | | System.out.println(error.getMessage()); |
| | | // 诊断地址 |
| | | System.out.println(error.getData().get("Recommend")); |
| | | assertAsString(error.message); |
| | | } catch (Exception _error) { |
| | | TeaException error = new TeaException(_error.getMessage(), _error); |
| | | // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 |
| | | // 错误 message |
| | | System.out.println(error.getMessage()); |
| | | // 诊断地址 |
| | | System.out.println(error.getData().get("Recommend")); |
| | | assertAsString(error.message); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | } |
| | | |
| | | } |
| | |
| | | discovery: |
| | | # 服务注册地址 |
| | | server-addr: 192.168.110.111:8848 |
| | | ip: 192.168.110.188 |
| | | ip: 192.168.110.111 |
| | | config: |
| | | # 配置中心地址 |
| | | server-addr: 192.168.110.111:8848 |