huangjn 2 rokov pred
rodič
commit
665cbe64b7

+ 4 - 0
blade-common/src/main/java/org/springblade/common/constant/CommonConstant.java

@@ -62,6 +62,10 @@ public interface CommonConstant {
 
 	String SYS_USER_TASK_BATCH = "sys.user.task.batch";
 
+	String JL_THE_LOG = "JL.theLog";
+
+	String SG_THE_LOG = "SG.theLog";
+
 	/**
 	 * 默认排序字段
 	 */

+ 28 - 0
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/sms/SmsBuilder.java

@@ -112,6 +112,34 @@ public class SmsBuilder {
 		return template;
 	}
 
+	public SmsTemplate template(Sms sms) {
+		String tenantId = AuthUtil.getTenantId();
+		Sms smsCached = smsPool.get(tenantId);
+		SmsTemplate template = templatePool.get(tenantId);
+		// 若为空或者不一致,则重新加载
+		if (Func.hasEmpty(template, smsCached) ||
+				!sms.getTemplateId().equals(smsCached.getTemplateId()) ||
+				!sms.getAccessKey().equals(smsCached.getAccessKey()) ||
+				!sms.getSignName().equals(smsCached.getSignName())) {
+			synchronized (SmsBuilder.class) {
+				template = templatePool.get(tenantId);
+
+				if (sms.getCategory() == SmsEnum.YUNPIAN.getCategory()) {
+					template = YunpianSmsBuilder.template(sms, bladeRedis);
+				} else if (sms.getCategory() == SmsEnum.QINIU.getCategory()) {
+					template = QiniuSmsBuilder.template(sms, bladeRedis);
+				} else if (sms.getCategory() == SmsEnum.TENCENT.getCategory()) {
+					template = TencentSmsBuilder.template(sms, bladeRedis);
+				} else if (sms.getCategory() == SmsEnum.ALI.getCategory()) {
+					//阿里云
+					template = AliSmsBuilder.template(sms, bladeRedis);
+				}
+				templatePool.put(tenantId, template);
+				smsPool.put(tenantId, sms);
+			}
+		}
+		return template;
+	}
 
 	/**
 	 * 获取短信实体

+ 8 - 2
blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/NewISmsClientImpl.java

@@ -1,6 +1,8 @@
 package org.springblade.resource.feign;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
+import org.springblade.core.sms.SmsTemplate;
 import org.springblade.core.sms.model.SmsData;
 import org.springblade.core.sms.model.SmsResponse;
 import org.springblade.core.tenant.annotation.NonDS;
@@ -8,6 +10,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.jackson.JsonUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.resource.builder.sms.SmsBuilder;
+import org.springblade.resource.entity.Sms;
+import org.springblade.resource.service.ISmsService;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -18,11 +22,13 @@ public class NewISmsClientImpl implements NewISmsClient {
 
     private final SmsBuilder smsBuilder;
 
+    private final ISmsService smsService;
+
     @Override
     @PostMapping(SEND_MESSAGE)
     public R<SmsResponse> sendMessage(String code, String params, String phones) {
         SmsData smsData = new SmsData(JsonUtil.readMap(params, String.class, String.class));
-        SmsResponse response = smsBuilder.template(code).sendMessage(smsData, Func.toStrList(phones));
-        return R.data(response);
+        return R.data(this.smsBuilder.template(this.smsService.getOne(Wrappers.<Sms>lambdaQuery().eq(Sms::getSmsCode, code))).sendMessage(smsData, Func.toStrList(phones)));
     }
+
 }

+ 23 - 16
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.mixsmart.utils.StringUtils;
 import lombok.AllArgsConstructor;
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.ContractInfo;
@@ -18,6 +19,7 @@ import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.vo.WbsTreeContractTreeVO;
 import org.springblade.manager.vo.WbsTreeContractTreeVO3;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
+import org.springblade.system.cache.ParamCache;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
 import org.springframework.web.bind.annotation.RestController;
@@ -193,25 +195,19 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
         List<WbsTreeContract> result = this.wbsTreeContractService.queryCurrentContractLogList(contract.getPId());
         if (result != null && result.size() != 0) {
             List<WbsTreeContractTreeVOS> vosResult = new ArrayList<>();
+
+            //获取施工配置,如果未找到配置则使用默认判断
+            String sgTheLog = StringUtils.isNotEmpty(ParamCache.getValue(CommonConstant.SG_THE_LOG)) ? ParamCache.getValue(CommonConstant.SG_THE_LOG) : "7,9,13";
+            //获取监理配置,如果未找到配置则使用默认判断
+            String jlTheLOg = StringUtils.isNotEmpty(ParamCache.getValue(CommonConstant.JL_THE_LOG)) ? ParamCache.getValue(CommonConstant.JL_THE_LOG) : "8,10,11,12";
+
             result.forEach(node -> {
-               if(new Integer("2").equals(contract.getContractType()) && Arrays.asList("8,10,11,12".split(",")).contains(node.getNodeType().toString())){
+               if(new Integer("2").equals(contract.getContractType()) && Arrays.asList(jlTheLOg.split(",")).contains(node.getNodeType().toString())){
                    //转换
-                   WbsTreeContractTreeVOS vos = new WbsTreeContractTreeVOS();
-                   vos.setNodeType(node.getNodeType());
-                   vos.setPrimaryKeyId(String.valueOf(node.getPKeyId()));
-                   vos.setTitle(StringUtils.isNotEmpty(node.getFullName()) ? node.getFullName() : node.getNodeName());
-                   vos.setExcelId(node.getExcelId());
-                   //最终返回集合
-                   vosResult.add(vos);
-               } else if(new Integer("1").equals(contract.getContractType()) && Arrays.asList("7,9,13".split(",")).contains(node.getNodeType().toString())){
+                   this.setWbsTreeContractTreeVOS(node, vosResult);
+               } else if(new Integer("1").equals(contract.getContractType()) && Arrays.asList(sgTheLog.split(",")).contains(node.getNodeType().toString())){
                    //转换
-                   WbsTreeContractTreeVOS vos = new WbsTreeContractTreeVOS();
-                   vos.setNodeType(node.getNodeType());
-                   vos.setPrimaryKeyId(String.valueOf(node.getPKeyId()));
-                   vos.setTitle(StringUtils.isNotEmpty(node.getFullName()) ? node.getFullName() : node.getNodeName());
-                   vos.setExcelId(node.getExcelId());
-                   //最终返回集合
-                   vosResult.add(vos);
+                   this.setWbsTreeContractTreeVOS(node, vosResult);
                }
             });
 
@@ -273,4 +269,15 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
         }
         return null;
     }
+
+    private void setWbsTreeContractTreeVOS(WbsTreeContract node, List<WbsTreeContractTreeVOS> vosResult){
+        WbsTreeContractTreeVOS vos = new WbsTreeContractTreeVOS();
+        vos.setNodeType(node.getNodeType());
+        vos.setPrimaryKeyId(String.valueOf(node.getPKeyId()));
+        vos.setTitle(StringUtils.isNotEmpty(node.getFullName()) ? node.getFullName() : node.getNodeName());
+        vos.setExcelId(node.getExcelId());
+        //最终返回集合
+        vosResult.add(vos);
+    }
+
 }