提交 07e5c8cf 作者: duanxincheng

模板测试效果,模板测试效果导出纪要;管理端登录白名单设置

父级 cf910187
...@@ -22,6 +22,7 @@ import com.cmeeting.util.*; ...@@ -22,6 +22,7 @@ import com.cmeeting.util.*;
import com.cmeeting.ad.vo.ApplicationUserVO; import com.cmeeting.ad.vo.ApplicationUserVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
...@@ -49,6 +50,8 @@ public class UserServiceImpl implements UserService { ...@@ -49,6 +50,8 @@ public class UserServiceImpl implements UserService {
private String expireTime; private String expireTime;
@Value("${permission.tenantId}") @Value("${permission.tenantId}")
public String permissionTenantId; public String permissionTenantId;
@Value("${permission.admin-white_users}")
public String adminWhiteUsers;
@Resource @Resource
private ILdapService iLdapService; private ILdapService iLdapService;
@Resource @Resource
...@@ -253,9 +256,10 @@ public class UserServiceImpl implements UserService { ...@@ -253,9 +256,10 @@ public class UserServiceImpl implements UserService {
long expireDateTimestamp = vo.getExpireDate(); long expireDateTimestamp = vo.getExpireDate();
ZonedDateTime expireDate = Instant.ofEpochMilli(expireDateTimestamp).atZone(ZoneId.systemDefault()); ZonedDateTime expireDate = Instant.ofEpochMilli(expireDateTimestamp).atZone(ZoneId.systemDefault());
ZonedDateTime now = ZonedDateTime.now(); ZonedDateTime now = ZonedDateTime.now();
if(expireDate.isBefore(now)){ //todo 暂时将链接设为长期有效,后续根据业务情况调整(原因是链接如果过期,普通用户没有可以跳转的登录界面,目前的管理端登录界面只能黄飞用)
throw new RobotBaseException("认证已过期!", 401); // if(expireDate.isBefore(now)){
} // throw new RobotBaseException("认证已过期!", 401);
// }
long expireTimeStamp = Duration.between(now, expireDate).getSeconds(); long expireTimeStamp = Duration.between(now, expireDate).getSeconds();
HashMap<String, String> stringStringHashMap = new HashMap<>(); HashMap<String, String> stringStringHashMap = new HashMap<>();
SysTenant sysTenant = iTenantService.getById(permissionTenantId); SysTenant sysTenant = iTenantService.getById(permissionTenantId);
...@@ -275,12 +279,16 @@ public class UserServiceImpl implements UserService { ...@@ -275,12 +279,16 @@ public class UserServiceImpl implements UserService {
private R loginByAD(ApplicationUserVO.Login login) { private R loginByAD(ApplicationUserVO.Login login) {
// AD验证 // AD验证
// boolean auth = iLdapService.authenticate(login.getUsername().trim(), login.getPassword().trim()); String username = login.getUsername().trim();
// if (auth) { boolean auth = iLdapService.authenticate(username, login.getPassword().trim());
if(true){ if (auth) {
// if(true){
SysUserSync sysUserSync = sysUserSysMapper.selectOne(new LambdaQueryWrapper<SysUserSync>() SysUserSync sysUserSync = sysUserSysMapper.selectOne(new LambdaQueryWrapper<SysUserSync>()
.eq(SysUserSync::getTenantId, permissionTenantId) .eq(SysUserSync::getTenantId, permissionTenantId)
.eq(SysUserSync::getUserId, login.getUsername().trim())); .eq(SysUserSync::getUserId, username));
if(StringUtils.isEmpty(adminWhiteUsers) || !Arrays.asList(adminWhiteUsers.split(",")).contains(username)){
throw new RobotBaseException("尊敬的用户 ["+sysUserSync.getName()+"],您的账户"+username+"未被授权访问此系统,请联系系统管理员。");
}
// if (code != 0) { // if (code != 0) {
// throw new RuntimeException("用户系统异常!"); // throw new RuntimeException("用户系统异常!");
// } // }
......
package com.cmeeting.controller; package com.cmeeting.controller;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cmeeting.ad.entity.RobotSecurityUser; import com.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.util.SecurityUtil; import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.dto.UserDTO; import com.cmeeting.dto.UserDTO;
import com.cmeeting.pojo.MeetingInfo;
import com.cmeeting.pojo.MeetingRecordTemplate; import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.service.MeetingRecordTemplateService; import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.RecordTemplatePermissionService; import com.cmeeting.service.RecordTemplatePermissionService;
import com.cmeeting.util.R; import com.cmeeting.util.R;
import com.cmeeting.vo.RecordTemplateVO; import com.cmeeting.vo.RecordTemplateVO;
import com.deepoove.poi.XWPFTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@RestController @RestController
...@@ -39,7 +50,7 @@ public class RecordTemplateController { ...@@ -39,7 +50,7 @@ public class RecordTemplateController {
recordTemplate.setCreateUserName(user.getNickName()); recordTemplate.setCreateUserName(user.getNickName());
recordTemplate.setUpdateUserName(user.getNickName()); recordTemplate.setUpdateUserName(user.getNickName());
boolean save = recordTemplateService.save(recordTemplate); boolean save = recordTemplateService.save(recordTemplate);
return R.ok(save); return R.ok(recordTemplate);
} }
@PostMapping("/update") @PostMapping("/update")
...@@ -135,4 +146,33 @@ public class RecordTemplateController { ...@@ -135,4 +146,33 @@ public class RecordTemplateController {
public R selectAuthorizedUsers() { public R selectAuthorizedUsers() {
return R.ok(recordTemplateService.selectAuthorizedUsers()); return R.ok(recordTemplateService.selectAuthorizedUsers());
} }
/**
* 模板测试效果
* @param file 用户自主上传的转录文件
* @param meetingInstId 历史会议主键id
* @param id 模板id
* @return
*/
@PostMapping("/testGenerate")
public R testGenerate(@RequestParam(value = "file",required = false) MultipartFile file,
@RequestParam(value = "meetingInstId",required = false) Integer meetingInstId,
@RequestParam("id") Integer id) {
return R.ok(recordTemplatePermissionService.testGenerate(file,meetingInstId,id));
}
/**
* 模板测试效果导出纪要
* @param recordJson 纪要内容json
* @param meetingInstId 历史会议主键id
* @param id 模板id
* @return
*/
@PostMapping("/testMinutesExport")
public void testMinutesExport(@RequestParam(value = "recordJson") String recordJson,
@RequestParam(value = "meetingInstId",required = false) Integer meetingInstId,
@RequestParam("id") Integer id,
HttpServletResponse response) {
recordTemplatePermissionService.testMinutesExport(recordJson,meetingInstId,id,response);
}
} }
...@@ -456,7 +456,7 @@ public class FileProcessTask { ...@@ -456,7 +456,7 @@ public class FileProcessTask {
"Bearer AKIAXFAXF62IWJXGLVEE.LnKInaahcMZG9zLsGMH3nTLOw3S3lK5Vcu0+ifnO", "Bearer AKIAXFAXF62IWJXGLVEE.LnKInaahcMZG9zLsGMH3nTLOw3S3lK5Vcu0+ifnO",
20000); 20000);
LLMResult llmResult = MeetingProcess.processMeeting(prompt, textContent,meetingDate,participantNames, baseLLM, new ArrayList<>()); LLMResult llmResult = MeetingProcess.processMeeting(prompt, textContent,meetingDate,participantNames, baseLLM, new ArrayList<>());
DebugOutputTool.println(llmResult.respond); // DebugOutputTool.println(llmResult.respond);
return llmResult.respond; return llmResult.respond;
} }
......
...@@ -3,11 +3,17 @@ package com.cmeeting.service; ...@@ -3,11 +3,17 @@ package com.cmeeting.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.cmeeting.pojo.RecordTemplatePermission; import com.cmeeting.pojo.RecordTemplatePermission;
import com.cmeeting.vo.RecordTemplateVO; import com.cmeeting.vo.RecordTemplateVO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
public interface RecordTemplatePermissionService extends IService<RecordTemplatePermission> { public interface RecordTemplatePermissionService extends IService<RecordTemplatePermission> {
boolean auth(RecordTemplateVO.TemplatePermissionVO vo); boolean auth(RecordTemplateVO.TemplatePermissionVO vo);
List<RecordTemplateVO.PermissionItem> authList(RecordTemplateVO.TemplateAuthVO vo); List<RecordTemplateVO.PermissionItem> authList(RecordTemplateVO.TemplateAuthVO vo);
String testGenerate(MultipartFile file,Integer meetingInstId,Integer templateId);
void testMinutesExport(String recordJson,Integer meetingInstId, Integer id, HttpServletResponse response);
} }
...@@ -40,6 +40,7 @@ EMAIL_SMTP_HOST: smtp.office365.com ...@@ -40,6 +40,7 @@ EMAIL_SMTP_HOST: smtp.office365.com
############################################################## permission ############################################################## permission
PERMISSION_APPLiCATION_ID: 1928343847335759872 PERMISSION_APPLiCATION_ID: 1928343847335759872
PERMISSION_TENANT_ID: 1928343652791357440 PERMISSION_TENANT_ID: 1928343652791357440
PERMISSION_ADMIN_WHITE_USERS: 1928343652791357440
spring: spring:
...@@ -151,6 +152,7 @@ jwt: ...@@ -151,6 +152,7 @@ jwt:
permission: permission:
applicationId: ${PERMISSION_APPLiCATION_ID} applicationId: ${PERMISSION_APPLiCATION_ID}
tenantId: ${PERMISSION_TENANT_ID} tenantId: ${PERMISSION_TENANT_ID}
admin-white_users: ${PERMISSION_ADMIN_WHITE_USERS}
logging: logging:
level: level:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论