Browse Source

chore: cache compose

master
wangxiang 2 years ago
parent
commit
700227108b
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 38
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/TimeUtil.java
  2. 31
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/UniversalCacheKeyGeneratorUtil.java
  3. 3
      kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories
  4. 4
      kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/entity/Workflow.java
  5. 2
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/ConfigController.java
  6. 2
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/DictController.java
  7. 12
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/DictDataController.java

38
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/TimeUtils.java → kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/TimeUtil.java

@ -11,14 +11,14 @@ import java.util.Date;
* @Author: wangxiang4 * @Author: wangxiang4
* @Date: 2022/1/15 * @Date: 2022/1/15
*/ */
public class TimeUtils { public class TimeUtil {
public static String toTimeString(long time) { public static String toTimeString(long time) {
TimeUtils t = new TimeUtils(time); TimeUtil t = new TimeUtil(time);
int day = t.get(TimeUtils.DAY); int day = t.get(TimeUtil.DAY);
int hour = t.get(TimeUtils.HOUR); int hour = t.get(TimeUtil.HOUR);
int minute = t.get(TimeUtils.MINUTE); int minute = t.get(TimeUtil.MINUTE);
int second = t.get(TimeUtils.SECOND); int second = t.get(TimeUtil.SECOND);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if (day > 0){ if (day > 0){
sb.append(day).append("天"); sb.append(day).append("天");
@ -78,7 +78,7 @@ public class TimeUtils {
/** /**
* 无参构造将各字段置为 0 * 无参构造将各字段置为 0
*/ */
public TimeUtils() { public TimeUtil() {
this(0, 0, 0, 0); this(0, 0, 0, 0);
} }
@ -87,7 +87,7 @@ public class TimeUtils {
* @param hour 小时 * @param hour 小时
* @param minute 分钟 * @param minute 分钟
*/ */
public TimeUtils(int hour, int minute) { public TimeUtil(int hour, int minute) {
this(0, hour, minute, 0); this(0, hour, minute, 0);
} }
@ -97,7 +97,7 @@ public class TimeUtils {
* @param minute 分钟 * @param minute 分钟
* @param second * @param second
*/ */
public TimeUtils(int hour, int minute, int second) { public TimeUtil(int hour, int minute, int second) {
this(0, hour, minute, second); this(0, hour, minute, second);
} }
@ -106,7 +106,7 @@ public class TimeUtils {
* Time time = new Time("14:22:23"); * Time time = new Time("14:22:23");
* @param time 字符串格式的时间默认采用:作为分隔符 * @param time 字符串格式的时间默认采用:作为分隔符
*/ */
public TimeUtils(String time) { public TimeUtil(String time) {
this(time, null); this(time, null);
// System.out.println(time); // System.out.println(time);
} }
@ -115,14 +115,14 @@ public class TimeUtils {
* 使用时间毫秒构建时间 * 使用时间毫秒构建时间
* @param time * @param time
*/ */
public TimeUtils(long time){ public TimeUtil(long time){
this(new Date(time)); this(new Date(time));
} }
/** /**
* 使用日期对象构造时间 * 使用日期对象构造时间
* @param date * @param date
*/ */
public TimeUtils(Date date){ public TimeUtil(Date date){
this(DateUtil.formatUTC(date, "HH:mm:ss")); this(DateUtil.formatUTC(date, "HH:mm:ss"));
} }
@ -133,7 +133,7 @@ public class TimeUtils {
* @param minute * @param minute
* @param second * @param second
*/ */
public TimeUtils(int day, int hour, int minute, int second) { public TimeUtil(int day, int hour, int minute, int second) {
initialize(day, hour, minute, second); initialize(day, hour, minute, second);
} }
@ -142,7 +142,7 @@ public class TimeUtils {
* Time time = new Time("14-22-23", "-"); * Time time = new Time("14-22-23", "-");
* @param time 字符串格式的时间 * @param time 字符串格式的时间
*/ */
public TimeUtils(String time, String timeSeparator) { public TimeUtil(String time, String timeSeparator) {
if(timeSeparator != null) { if(timeSeparator != null) {
setTimeSeparator(timeSeparator); setTimeSeparator(timeSeparator);
} }
@ -184,8 +184,8 @@ public class TimeUtils {
* @param time 需要加的时间 * @param time 需要加的时间
* @return 运算后的时间 * @return 运算后的时间
*/ */
public TimeUtils addTime(TimeUtils time) { public TimeUtil addTime(TimeUtil time) {
TimeUtils result = new TimeUtils(); TimeUtil result = new TimeUtil();
int up = 0; // 进位标志 int up = 0; // 进位标志
for (int i = 0; i < fields.length; i++) { for (int i = 0; i < fields.length; i++) {
int sum = fields[i] + time.fields[i] + up; int sum = fields[i] + time.fields[i] + up;
@ -200,8 +200,8 @@ public class TimeUtils {
* @param time 需要减的时间 * @param time 需要减的时间
* @return 运算后的时间 * @return 运算后的时间
*/ */
public TimeUtils subtractTime(TimeUtils time) { public TimeUtil subtractTime(TimeUtil time) {
TimeUtils result = new TimeUtils(); TimeUtil result = new TimeUtil();
int down = 0; // 退位标志 int down = 0; // 退位标志
for (int i = 0, k = fields.length - 1; i < k; i++) { for (int i = 0, k = fields.length - 1; i < k; i++) {
int difference = fields[i] + down; int difference = fields[i] + down;
@ -311,7 +311,7 @@ public class TimeUtils {
return false; return false;
if (getClass() != obj.getClass()) if (getClass() != obj.getClass())
return false; return false;
final TimeUtils other = (TimeUtils) obj; final TimeUtil other = (TimeUtil) obj;
if (!Arrays.equals(fields, other.fields)) { if (!Arrays.equals(fields, other.fields)) {
return false; return false;
} }

31
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/util/UniversalCacheKeyGeneratorUtil.java

@ -0,0 +1,31 @@
package com.cloud.kicc.common.core.util;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
@Component("universalCacheKeyGeneratorUtil")
public class UniversalCacheKeyGeneratorUtil implements KeyGenerator {
@Override
@NonNull
public Object generate(Object target, Method method, Object... params) {
String separator = ":";
StringBuilder keyBuilder = new StringBuilder();
keyBuilder.append(target.getClass().getName());
keyBuilder.append(separator).append(method.getName());
// 遍历方法参数
for (Object param : params) {
if (param != null) {
keyBuilder.append(separator).append(param);
} else {
// 如果参数为空,可以添加一个特殊标记,以区分不同情况
keyBuilder.append(separator).append("Empty");
}
}
return keyBuilder.toString();
}
}

3
kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories

@ -2,4 +2,5 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.cloud.kicc.common.core.config.WebMvcConfiguration,\ com.cloud.kicc.common.core.config.WebMvcConfiguration,\
com.cloud.kicc.common.core.config.RestTemplateConfiguration,\ com.cloud.kicc.common.core.config.RestTemplateConfiguration,\
com.cloud.kicc.common.core.config.GatewayConfigProperties,\ com.cloud.kicc.common.core.config.GatewayConfigProperties,\
com.cloud.kicc.common.core.util.SpringContextHolderUtil com.cloud.kicc.common.core.util.SpringContextHolderUtil,\
com.cloud.kicc.common.core.util.UniversalCacheKeyGeneratorUtil

4
kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/entity/Workflow.java

@ -1,6 +1,6 @@
package com.cloud.kicc.workflow.api.entity; package com.cloud.kicc.workflow.api.entity;
import com.cloud.kicc.common.core.util.TimeUtils; import com.cloud.kicc.common.core.util.TimeUtil;
import com.cloud.kicc.workflow.api.vo.ActivityCommentInfoVo; import com.cloud.kicc.workflow.api.vo.ActivityCommentInfoVo;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -98,7 +98,7 @@ public class Workflow implements Serializable {
/** 获取流程运行持续时间 */ /** 获取流程运行持续时间 */
public String getDurationTime() { public String getDurationTime() {
if (historicActivityInstance != null && historicActivityInstance.getDurationInMillis() != null) { if (historicActivityInstance != null && historicActivityInstance.getDurationInMillis() != null) {
return TimeUtils.toTimeString(historicActivityInstance.getDurationInMillis()); return TimeUtil.toTimeString(historicActivityInstance.getDurationInMillis());
} }
return ""; return "";
} }

2
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/ConfigController.java

@ -41,7 +41,7 @@ public class ConfigController {
.eq(StrUtil.isNotBlank(config.getKey()), Config::getKey, config.getKey()) .eq(StrUtil.isNotBlank(config.getKey()), Config::getKey, config.getKey())
.eq(StrUtil.isNotBlank(config.getIsSys()), Config::getIsSys, config.getIsSys()) .eq(StrUtil.isNotBlank(config.getIsSys()), Config::getIsSys, config.getIsSys())
.between(StrUtil.isNotBlank(config.getBeginTime()) && StrUtil.isNotBlank(config.getEndTime()), Config::getCreateTime, config.getBeginTime(), config.getEndTime()) .between(StrUtil.isNotBlank(config.getBeginTime()) && StrUtil.isNotBlank(config.getEndTime()), Config::getCreateTime, config.getBeginTime(), config.getEndTime())
.orderByDesc(Config::getId); .orderByAsc(Config::getId);
} }
@GetMapping("/list") @GetMapping("/list")

2
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/DictController.java

@ -36,7 +36,7 @@ public class DictController {
.like(StrUtil.isNotBlank(dict.getName()), Dict::getName, dict.getName()) .like(StrUtil.isNotBlank(dict.getName()), Dict::getName, dict.getName())
.eq(StrUtil.isNotBlank(dict.getType()), Dict::getType, dict.getType()) .eq(StrUtil.isNotBlank(dict.getType()), Dict::getType, dict.getType())
.eq(StrUtil.isNotBlank(dict.getStatus()), Dict::getStatus, dict.getStatus()) .eq(StrUtil.isNotBlank(dict.getStatus()), Dict::getStatus, dict.getStatus())
.orderByDesc(Dict::getId); .orderByAsc(Dict::getId);
} }
@GetMapping("/list") @GetMapping("/list")

12
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/DictDataController.java

@ -2,19 +2,17 @@ package com.cloud.kicc.system.controller;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.system.api.entity.DictData;
import com.cloud.kicc.system.api.feign.RemoteDictService;
import com.cloud.kicc.system.service.DictDataService;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.constant.CacheConstants; import com.cloud.kicc.common.core.constant.CacheConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.log.annotation.SysLog; import com.cloud.kicc.common.log.annotation.SysLog;
import com.cloud.kicc.common.security.annotation.Inner; import com.cloud.kicc.common.security.annotation.Inner;
import com.cloud.kicc.system.api.entity.DictData;
import com.cloud.kicc.system.api.feign.RemoteDictService;
import com.cloud.kicc.system.service.DictDataService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -42,7 +40,7 @@ public class DictDataController {
return new LambdaQueryWrapper<DictData>() return new LambdaQueryWrapper<DictData>()
.like(StrUtil.isNotBlank(dictData.getLabel()), DictData::getLabel, dictData.getLabel()) .like(StrUtil.isNotBlank(dictData.getLabel()), DictData::getLabel, dictData.getLabel())
.eq(StrUtil.isNotBlank(dictData.getDictType()), DictData::getDictType, dictData.getDictType()) .eq(StrUtil.isNotBlank(dictData.getDictType()), DictData::getDictType, dictData.getDictType())
.orderByDesc(DictData::getId); .orderByAsc(DictData::getId);
} }
@GetMapping("/list") @GetMapping("/list")
@ -59,7 +57,7 @@ public class DictDataController {
@Inner(false) @Inner(false)
@GetMapping("/dictType") @GetMapping("/dictType")
@Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type") @Cacheable(value = CacheConstants.DICT_DETAILS, keyGenerator = "universalCacheKeyGeneratorUtil")
public R dictType(String type, String tenantId) { public R dictType(String type, String tenantId) {
return R.ok(dictDataService.list(Wrappers.<DictData>query().lambda() return R.ok(dictDataService.list(Wrappers.<DictData>query().lambda()
.eq(DictData::getDictType, type) .eq(DictData::getDictType, type)

Loading…
Cancel
Save