diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/UserRole.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/UserRole.java
index 7ed28544..cb011278 100644
--- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/UserRole.java
+++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/UserRole.java
@@ -1,6 +1,8 @@
package com.cloud.kicc.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.cloud.kicc.common.data.entity.CommonEntity;
+import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -33,5 +35,9 @@ public class UserRole implements Serializable {
*/
private String roleId;
+ /**
+ * 多租户ID
+ */
+ private String tenantId;
}
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/config/OpenAiConfigProperties.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/config/OpenAiConfigProperties.java
index 2a312805..2efda125 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/config/OpenAiConfigProperties.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/config/OpenAiConfigProperties.java
@@ -1,6 +1,7 @@
package com.cloud.kicc.system.config;
import lombok.Data;
+import org.apache.poi.ss.formula.functions.Rate;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
@@ -41,4 +42,10 @@ public class OpenAiConfigProperties {
/** OpenAI API Speed - ... */
private Double speed = 1.0;
+ /** Limit Duration time unit seconds default 1 day */
+ private int rateLimitDuration = 24 * 60 * 60;
+
+ /** Maximum number of visits in a specified time unit seconds */
+ private int rateLimitMaxCount = 10;
+
}
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java
index a83afb9a..ef3596ea 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java
@@ -3,6 +3,7 @@ package com.cloud.kicc.system.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -16,21 +17,16 @@ import com.cloud.kicc.common.log.annotation.SysLog;
import com.cloud.kicc.common.security.annotation.Inner;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.feign.RemotePushConcernFanService;
-import com.cloud.kicc.system.api.entity.Menu;
-import com.cloud.kicc.system.api.entity.Role;
-import com.cloud.kicc.system.api.entity.User;
-import com.cloud.kicc.system.api.entity.UserRole;
+import com.cloud.kicc.system.api.entity.*;
import com.cloud.kicc.system.api.enums.UserTypeEnum;
import com.cloud.kicc.system.api.vo.ResultVo;
-import com.cloud.kicc.system.service.MenuService;
-import com.cloud.kicc.system.service.RoleService;
-import com.cloud.kicc.system.service.UserRoleService;
-import com.cloud.kicc.system.service.UserService;
+import com.cloud.kicc.system.service.*;
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
import com.pig4cloud.plugin.excel.annotation.Sheet;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
+import org.springframework.beans.BeanUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -54,7 +50,10 @@ public class UserController {
private final UserRoleService userRoleService;
private final RoleService roleService;
private final MenuService menuService;
+ private final ISsoUserService iSsoUserService;
private final RemotePushConcernFanService remotePushConcernFanService;
+ private final ConfigService configService;
+ private final DeptService deptService;
@GetMapping("/list")
public R list(Page page,@RequestParam Map param) {
@@ -123,12 +122,37 @@ public class UserController {
return R.ok(userService.getUserAuthority(user));
}
+ /** 内部小程序一键登陆 */
@Inner(false)
- @GetMapping("/transformationUserByCasUserId/{casUserId:\\w+}")
- public R transformationUserByCasUserId(@PathVariable String casUserId) {
- KiccUser user = userService.getUserByCasUserId(casUserId);
- if (user == null) return R.error("该用户不存在,请先注册!");
- return R.ok(userService.getUserAuthority(user));
+ @GetMapping("/oneClickAccess/{casUserId:\\w+}")
+ public R oneClickAccess(@PathVariable String casUserId) {
+ if (ObjectUtil.isNotEmpty(iSsoUserService.getById(casUserId)) && ObjectUtil.isEmpty(userService.getOne(Wrappers.lambdaQuery().eq(User::getCasUserId, casUserId)))) {
+ String initDeptId = configService.getValueByKey("app.init.deptId");
+ Dept dept = deptService.getById(initDeptId);
+ Optional.ofNullable(dept).orElseThrow(() -> new CheckedException("当前部门无效请重新在参数管理中配置!"));
+ String initUserType = configService.getValueByKey("app.init.deptId");
+ String initTenantId = configService.getValueByKey("app.init.tenantId");
+ String initRoleIds = configService.getValueByKey("app.init.roleIds");
+
+ User user = new User();
+ user.setCasUserId(casUserId);
+ user.setDeptId(dept.getDeptId());
+ user.setDeptName(dept.getName());
+ user.setUserType(initUserType);
+ user.setTenantId(initTenantId);
+ userService.save(user);
+
+ // 处理角色授权
+ String[] roles = initRoleIds.split(",");
+ userRoleService.saveBatch(Arrays.stream(roles).map(roleId -> {
+ UserRole ur = new UserRole();
+ ur.setUserId(user.getId());
+ ur.setRoleId(roleId);
+ ur.setTenantId(initTenantId);
+ return ur;
+ }).collect(Collectors.toList()));
+ }
+ return R.ok(userService.getUserByCasUserId(casUserId));
}
@SysLog("用户新增")
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java
index 5d23fb21..b9e47213 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java
@@ -23,7 +23,7 @@ public interface UserService extends IService {
* @param user 用户信息
* @return 结果
*/
- int saveUser(KiccUser user);
+ boolean saveUser(KiccUser user);
/**
* 导入用户数据
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/ImContentServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/ImContentServiceImpl.java
index 4844c11a..8e3b51ba 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/ImContentServiceImpl.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/ImContentServiceImpl.java
@@ -1,6 +1,5 @@
package com.cloud.kicc.system.service.impl;
-import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
@@ -12,7 +11,6 @@ import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.system.api.entity.ImContent;
import com.cloud.kicc.system.api.entity.OssFile;
-import com.cloud.kicc.system.api.enums.ImMessageTypeEnum;
import com.cloud.kicc.system.config.OpenAiConfigProperties;
import com.cloud.kicc.system.mapper.ImContentMapper;
import com.cloud.kicc.system.service.FileService;
@@ -39,6 +37,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.time.LocalDateTime;
+import java.time.ZoneId;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -220,4 +219,32 @@ public class ImContentServiceImpl extends ServiceImpllambdaQuery()
+ .eq(ImContent::getSendUserId, SecurityUtils.getCasUser().getId())
+ .between(ImContent::getSendTime, startTimestamp, LocalDateTime.now().atZone(chinaZoneId)));
+
+
+ // 检查是否大于发送次数
+
+
+// NON("0", "非订阅"),
+//
+// BASIC("1", "基础订阅"),
+
+ // 限制当前非订阅用户只能用10次
+ // 限制当前基础订阅用户只能用10次
+ // 高级订阅不受限制
+
+
+
+
+ }
+
}
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java
index 46997077..aa80f845 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java
@@ -57,22 +57,22 @@ public class UserServiceImpl extends ServiceImpl implements Us
@Override
@Transactional(rollbackFor = Exception.class)
- public int saveUser(KiccUser kiccUser) {
+ public boolean saveUser(KiccUser kiccUser) {
User user = new User();
BeanUtils.copyProperties(kiccUser, user);
if (StrUtil.isEmptyIfStr(user.getId())) {
// 新增用户信息
- int rows = baseMapper.insert(user);
+ boolean result = super.save(user);
// 新增用户与角色管理
kiccUser.setId(user.getId());
addUserRole(kiccUser);
- return rows;
+ return result;
} else {
// 修改遵守先删后新增规则
userRoleService.remove(new LambdaQueryWrapper().eq(UserRole::getUserId, user.getId()));
// 新增用户与角色管理
addUserRole(kiccUser);
- return baseMapper.updateById(user);
+ return super.updateById(user);
}
}