diff --git a/application-tenant/tenant-admin/pom.xml b/application-tenant/tenant-admin/pom.xml
index b2ab632..9c94759 100644
--- a/application-tenant/tenant-admin/pom.xml
+++ b/application-tenant/tenant-admin/pom.xml
@@ -25,6 +25,8 @@
mybatis-plus-generator
${mybatisplus.version}
+
+
cn.afterturn
easypoi-base
@@ -40,6 +42,20 @@
easypoi-annotation
4.4.0
+
+
+
+ org.apache.xmlbeans
+ xmlbeans
+ 3.1.0
+
+
+
+ cn.hutool
+ hutool-all
+ 5.8.26
+
+
org.jetbrains
annotations
@@ -57,7 +73,7 @@
org.quartz-scheduler
quartz
- 2.3.2
+ 2.3.2
org.mybatis
@@ -158,8 +174,6 @@
1.0.0
-
-
@@ -171,4 +185,4 @@
-
\ No newline at end of file
+
diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/controller/LoginController.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/controller/LoginController.java
index 970b03b..7387b36 100644
--- a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/controller/LoginController.java
+++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/controller/LoginController.java
@@ -70,6 +70,7 @@ import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
+
/**
* 登录接口控制器类。
*
@@ -138,6 +139,7 @@ public class LoginController {
private static final String SHOW_NAME_FIELD = "showName";
private static final String SHOW_ORDER_FIELD = "showOrder";
private static final String HEAD_IMAGE_URL_FIELD = "headImageUrl";
+ private static final String SIGNATURE_IMAGE = "signatureImage";
private static final String THIRD_PARTY_CONFIG = "third_party_config";
@@ -145,20 +147,18 @@ public class LoginController {
private OrmGenDataSourceUtil ormGenDataSourceUtil;
-
-
@PostMapping("/getEhrLtpa")
@NoAuthInterface
public ResponseResult getEhrLtap(
@MyRequestBody String username
- ){
+ ) {
EasConfig easConfig = ApplicationContextHolder.getBean("easConfig");
String path = easConfig.getLtpaToken();
// String path = "/ehrapp/yd/LtpaToken.properties"; // 测试环境地址
System.out.println("getEasSsoUrl path = " + path);
String password = LtpaTokenManager.generate(username, path).toString();
JSONObject jsonData = new JSONObject();
- jsonData.put("ltap",password);
+ jsonData.put("ltap", password);
return ResponseResult.success(jsonData);
}
@@ -220,7 +220,7 @@ public class LoginController {
if (entryValue.get(entryFiledKey) instanceof ObjectValue) {
ObjectValue entityValue = (ObjectValue) entryValue.get(entryFiledKey);
Long pk = entityValue.getPkValue();
- if (pk == null || pk == 0L) {
+ if (pk == 0L) {
continue;
}
entityValue = ormGenDataSourceUtil.queryOne(entityValue.getTableName(), pk);
@@ -610,7 +610,7 @@ public class LoginController {
return;
}
responseInfo.setDownloadUri("/tenantadmin/upms/login/downloadHeadImage");
- String newHeadImage = JSONArray.toJSONString(CollUtil.newArrayList(responseInfo));
+ String newHeadImage = JSON.toJSONString(CollUtil.newArrayList(responseInfo));
if (!sysUserService.changeHeadImage(TokenData.takeFromRequest().getUserId(), newHeadImage)) {
ResponseResult.output(HttpServletResponse.SC_FORBIDDEN, ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST));
return;
@@ -657,7 +657,7 @@ public class LoginController {
log.info("Rest api login.");
try {
// Object tokenObj = redissonClient.getBucket(appid).get();
- String accessToken="";
+ String accessToken = "";
// if (tokenObj != null) {
// accessToken=tokenObj.toString();
// }else {
@@ -669,7 +669,7 @@ public class LoginController {
paramMap.put("scope", "app");
// 发送 POST 请求
String tokenData = HttpUtil.post(tokenUrl, paramMap);
- if (StringUtils.isBlank(tokenData)){
+ if (StringUtils.isBlank(tokenData)) {
return ResponseResult.error("500", "通过appId获取AccessToken失败,appId:" + appid);
}
JSONObject tokenJson = JSONObject.parseObject(tokenData);
@@ -679,10 +679,10 @@ public class LoginController {
accessToken = ((JSONObject) (tokenJson.get("data"))).get("accessToken").toString();
//accessToken的有效时间为6400秒,在该有效期内多次获取均返回同一token,
//连许多次请求会被拦截,因此需要本地缓存。为防止极端情况,设置过期时间为6200s
- redissonClient.getBucket(appid).set(accessToken,6200,TimeUnit.SECONDS);
+ redissonClient.getBucket(appid).set(accessToken, 6200, TimeUnit.SECONDS);
// }
String jsonInputString = String.format("{\"appid\":\"%s\", \"ticket\":\"%s\"}", appid, ticket);
- String infoUrl="https://www.yunzhijia.com/gateway/ticket/user/acquirecontext?accessToken="+accessToken;
+ String infoUrl = "https://www.yunzhijia.com/gateway/ticket/user/acquirecontext?accessToken=" + accessToken;
String userStr = HttpUtil.post(infoUrl, jsonInputString);
log.info("validateHubCloudLogin appid:{}, ticket:{} ", appid, ticket);
JSONObject userObj = JSONObject.parseObject(userStr);
@@ -729,11 +729,11 @@ public class LoginController {
log.info("Rest api mlogin.");
try {
// Object tokenObj = redissonClient.getBucket(appid).get();
- String accessToken="";
+ String accessToken = "";
// if (tokenObj != null) {
// accessToken=tokenObj.toString();
// }else {
- if(StringUtils.isEmpty(appid)){
+ if (StringUtils.isEmpty(appid)) {
appid = hubCloudAppId;
}
String tokenUrl = "https://www.yunzhijia.com/gateway/oauth2/token/getAccessToken";
@@ -744,7 +744,7 @@ public class LoginController {
paramMap.put("scope", "app");
// 发送 POST 请求
String tokenData = HttpUtil.post(tokenUrl, paramMap);
- if (StringUtils.isBlank(tokenData)){
+ if (StringUtils.isBlank(tokenData)) {
return ResponseResult.error("500", "通过appId获取AccessToken失败,appId:" + appid);
}
JSONObject tokenJson = JSONObject.parseObject(tokenData);
@@ -754,10 +754,10 @@ public class LoginController {
accessToken = ((JSONObject) (tokenJson.get("data"))).get("accessToken").toString();
//accessToken的有效时间为6400秒,在该有效期内多次获取均返回同一token,
//连许多次请求会被拦截,因此需要本地缓存。为防止极端情况,设置过期时间为6200s
- redissonClient.getBucket(appid).set(accessToken,6200,TimeUnit.SECONDS);
+ redissonClient.getBucket(appid).set(accessToken, 6200, TimeUnit.SECONDS);
// }
String jsonInputString = String.format("{\"appid\":\"%s\", \"ticket\":\"%s\"}", appid, ticket);
- String infoUrl="https://www.yunzhijia.com/gateway/ticket/user/acquirecontext?accessToken="+accessToken;
+ String infoUrl = "https://www.yunzhijia.com/gateway/ticket/user/acquirecontext?accessToken=" + accessToken;
String userStr = HttpUtil.post(infoUrl, jsonInputString);
log.info("validateHubCloudLogin appid:{}, ticket:{} ", appid, ticket);
JSONObject userObj = JSONObject.parseObject(userStr);
@@ -804,27 +804,27 @@ public class LoginController {
log.info("Rest api login.");
try {
Object tokenObj = redissonClient.getBucket(appKey).get();
- String accessToken="";
+ String accessToken = "";
if (tokenObj != null) {
- accessToken=tokenObj.toString();
- }else {
+ accessToken = tokenObj.toString();
+ } else {
String tokenUrl = "https://api.dingtalk.com/v1.0/oauth2/accessToken";
String jsonInputString = String.format(
"{\"appKey\":\"%s\", \"appSecret\":\"%s\"}",
appKey, dingTalkSecret);
// 发送 POST 请求
String tokenData = HttpUtil.post(tokenUrl, jsonInputString);
- if (StringUtils.isBlank(tokenData)){
+ if (StringUtils.isBlank(tokenData)) {
return ResponseResult.error("500", "通过appKey获取AccessToken失败,appKey:" + appKey);
}
JSONObject tokenJson = JSONObject.parseObject(tokenData);
accessToken = tokenJson.get("accessToken").toString();
//accessToken的有效时间为7200秒,在该有效期内多次获取均返回同一token,
//连许多次请求会被拦截,因此需要本地缓存。为防止极端情况,设置过期时间为6200s
- redissonClient.getBucket(appKey).set(accessToken,7000,TimeUnit.SECONDS);
+ redissonClient.getBucket(appKey).set(accessToken, 7000, TimeUnit.SECONDS);
}
- String jsonInputString = String.format("{\"code\":\"%s\"}",code);
- String infoUrl="https://oapi.dingtalk.com/topapi/v2/user/getuserinfo?access_token="+accessToken;
+ String jsonInputString = String.format("{\"code\":\"%s\"}", code);
+ String infoUrl = "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo?access_token=" + accessToken;
String userStr = HttpUtil.post(infoUrl, jsonInputString);
log.info("validateHubCloudLogin appKey:{}, code:{} ", appKey, code);
JSONObject userObj = JSONObject.parseObject(userStr);
@@ -841,7 +841,7 @@ public class LoginController {
if (user.getUserStatus() == SysUserStatus.STATUS_LOCKED) {
return ResponseResult.error(ErrorCodeEnum.INVALID_USER_STATUS, "登录失败,用户账号被锁定!");
}
- JSONObject jsonData = this.buildLoginData(user,null,null);
+ JSONObject jsonData = this.buildLoginData(user, null, null);
return ResponseResult.success(jsonData);
} catch (Exception e) {
e.printStackTrace();
@@ -869,14 +869,14 @@ public class LoginController {
log.info("Rest api login.");
try {
- if(StringUtils.isBlank(ticket)){
- return ResponseResult.error("500","ticket不能为空");
+ if (StringUtils.isBlank(ticket)) {
+ return ResponseResult.error("500", "ticket不能为空");
}
- String jsonInputString = String.format("{\"ticket\":\"%s\",\"appId\":\"%s\",\"checkType\":1}",ticket,appId);
+ String jsonInputString = String.format("{\"ticket\":\"%s\",\"appId\":\"%s\",\"checkType\":1}", ticket, appId);
log.info("doLoginValidateDingTalkmJzt ", jsonInputString);
String userStr = HttpUtil.post(ticketUrl, jsonInputString);
- if(StringUtils.isBlank(userStr)){
- return ResponseResult.error("500","ticket异常:"+ticket);
+ if (StringUtils.isBlank(userStr)) {
+ return ResponseResult.error("500", "ticket异常:" + ticket);
}
log.info(" get user result:", userStr);
JSONObject userObj = JSONObject.parseObject(userStr);
@@ -896,7 +896,7 @@ public class LoginController {
return ResponseResult.success(jsonData);
} catch (Exception e) {
e.printStackTrace();
- return ResponseResult.error("500", "自动登录失败:"+e.getMessage());
+ return ResponseResult.error("500", "自动登录失败:" + e.getMessage());
}
}
@@ -1114,24 +1114,24 @@ public class LoginController {
}
- private String getShrRole(String zwcjName){
+ private String getShrRole(String zwcjName) {
String roleId = "";
- if(!StringUtils.isEmpty(zwcjName)){
+ if (!StringUtils.isEmpty(zwcjName)) {
SysRole role = new SysRole();
- if(!zwcjName.equals("员工")){//非员工
+ if (!zwcjName.equals("员工")) {//非员工
role.setRoleName("非员工");
- List roleList = sysRoleService.getSysRoleList(role,"");
- if(roleList.size() > 0){
+ List roleList = sysRoleService.getSysRoleList(role, "");
+ if (roleList.size() > 0) {
roleId = roleId + roleList.get(0).getRoleId();
}
}
role.setRoleName(zwcjName);
- List roleList = sysRoleService.getSysRoleList(role,"");
- if(roleList.size() > 0){
- if(StringUtils.isEmpty(roleId)){
- roleId = roleList.get(0).getRoleId()+"";
- }else{
- roleId = roleId +","+roleList.get(0).getRoleId();
+ List roleList = sysRoleService.getSysRoleList(role, "");
+ if (roleList.size() > 0) {
+ if (StringUtils.isEmpty(roleId)) {
+ roleId = roleList.get(0).getRoleId() + "";
+ } else {
+ roleId = roleId + "," + roleList.get(0).getRoleId();
}
}
}
@@ -1167,11 +1167,11 @@ public class LoginController {
if (mobileEntry.getPcurl() != null) {
mobileEntry.setPcurl(EasUtil.getEasSsoUrl(user.getLoginName(), mobileEntry.getPcurl()));
}
- if(mobileEntry.getExtraUrl() != null){
- if(mobileEntry.getExtraUrl().contains("?")){
- mobileEntry.setExtraUrl(mobileEntry.getExtraUrl()+"&userNumber="+user.getLoginName());
- }else{
- mobileEntry.setExtraUrl(mobileEntry.getExtraUrl()+"?userNumber="+user.getLoginName());
+ if (mobileEntry.getExtraUrl() != null) {
+ if (mobileEntry.getExtraUrl().contains("?")) {
+ mobileEntry.setExtraUrl(mobileEntry.getExtraUrl() + "&userNumber=" + user.getLoginName());
+ } else {
+ mobileEntry.setExtraUrl(mobileEntry.getExtraUrl() + "?userNumber=" + user.getLoginName());
}
}
}
@@ -1201,7 +1201,7 @@ public class LoginController {
jsonData.put(IS_ADMIN, user.getUserType() == SysUserType.TYPE_ADMIN);
if (user.getDeptId() != null) {
SysDept dept = sysDeptService.getById(user.getDeptId());
- if(dept != null){
+ if (dept != null) {
jsonData.put("deptName", dept.getDeptName());
}
@@ -1532,6 +1532,6 @@ public class LoginController {
private List permCodeList;
private List permList;
}
-
+
}
diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/controller/SysUserController.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/controller/SysUserController.java
index a19d724..2d00389 100644
--- a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/controller/SysUserController.java
+++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/controller/SysUserController.java
@@ -20,6 +20,7 @@ import apelet.tenantadmin.upms.model.SysUser;
import apelet.tenantadmin.upms.service.SysUserService;
import apelet.tenantadmin.upms.vo.SysUserVo;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ReflectUtil;
import com.alibaba.fastjson.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -225,7 +226,7 @@ public class SysUserController {
* @return 应答结果对象,包含查询结果集。
*/
@PostMapping("/list")
- public ResponseResult> list(
+ public ResponseResult> list(
@MyRequestBody SysUserDto sysUserDtoFilter,
@MyRequestBody MyOrderParam orderParam,
@MyRequestBody MyPageParam pageParam) {
@@ -235,7 +236,16 @@ public class SysUserController {
SysUser sysUserFilter = MyModelUtil.copyTo(sysUserDtoFilter, SysUser.class);
String orderBy = MyOrderParam.buildOrderBy(orderParam, SysUser.class);
List sysUserList = sysUserService.getSysUserListWithRelation(sysUserFilter, orderBy);
- return ResponseResult.success(MyPageUtil.makeResponseData(sysUserList, SysUser.INSTANCE));
+
+ MyPageData sysUserVoMyPageData = MyPageUtil.makeResponseData(sysUserList, SysUser.INSTANCE);
+ sysUserVoMyPageData.getDataList().forEach(f ->{
+ List collect = sysUserList.stream().filter(u -> f.getUserId().equals(u.getUserId())).collect(Collectors.toList());
+ SysUser sysUser = collect.get(0);
+ f.setSignatureImage(sysUser.getSignatureImage());
+ });
+ return ResponseResult.success(sysUserVoMyPageData);
+
+
}
diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/dto/SysUserDto.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/dto/SysUserDto.java
index e096b69..86f1feb 100644
--- a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/dto/SysUserDto.java
+++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/dto/SysUserDto.java
@@ -1,5 +1,7 @@
package apelet.tenantadmin.upms.dto;
+import apelet.common.core.annotation.UploadFlagColumn;
+import apelet.common.core.upload.UploadStoreTypeEnum;
import apelet.common.core.validator.AddGroup;
import apelet.common.core.validator.ConstDictRef;
import apelet.common.core.validator.UpdateGroup;
@@ -70,6 +72,9 @@ public class SysUserDto {
@Schema(description = "用户头像的Url")
private String headImageUrl;
+ @Schema(description = "签名")
+ private String signatureImage;
+
/**
* 用户状态(0: 正常 1: 锁定)。
*/
diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/model/SysUser.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/model/SysUser.java
index e1ed6fb..85dba06 100644
--- a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/model/SysUser.java
+++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/model/SysUser.java
@@ -63,6 +63,10 @@ public class SysUser {
@UploadFlagColumn(storeType = UploadStoreTypeEnum.LOCAL_SYSTEM)
private String headImageUrl;
+
+ @UploadFlagColumn(storeType = UploadStoreTypeEnum.LOCAL_SYSTEM)
+ private String signatureImage;
+
/**
* 用户状态(0: 正常 1: 锁定)。
*/
diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/vo/SysUserVo.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/vo/SysUserVo.java
index 25c11ea..0125b29 100644
--- a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/vo/SysUserVo.java
+++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/upms/vo/SysUserVo.java
@@ -53,6 +53,8 @@ public class SysUserVo {
@Schema(description = "用户头像的Url")
private String headImageUrl;
+ @Schema(description = "签名")
+ private String signatureImage;
/**
* 用户状态(0: 正常 1: 锁定)。
*/
diff --git a/application-tenant/tenant-admin/src/main/resources/application-config.yml b/application-tenant/tenant-admin/src/main/resources/application-config.yml
index f0748e1..b51ea11 100644
--- a/application-tenant/tenant-admin/src/main/resources/application-config.yml
+++ b/application-tenant/tenant-admin/src/main/resources/application-config.yml
@@ -88,7 +88,7 @@ aliyun:
oss:
enabled: true
expireSeconds: 1000
- endpoint: https://oss-cn-beijing.aliyuncs.com
+ endpoint: oss-cn-beijing.aliyuncs.com
accessKey: LTAI5t5fEgzRRtdmBvczVS6r
secretKey: uESFiyyi6EwCkM5w4a4pbx6TmVhqgx
bucketName: yy-test12
diff --git a/common/common-association/src/main/java/apelet/association/controller/HomeController.java b/common/common-association/src/main/java/apelet/association/controller/HomeController.java
index 794bb3b..370cee8 100644
--- a/common/common-association/src/main/java/apelet/association/controller/HomeController.java
+++ b/common/common-association/src/main/java/apelet/association/controller/HomeController.java
@@ -1,14 +1,21 @@
package apelet.association.controller;
-import apelet.common.core.object.ObjectCollection;
-import apelet.common.core.object.ResponseResult;
+import apelet.association.utils.WordDocUtil;
+import apelet.common.core.annotation.NoAuthInterface;
+import apelet.common.core.object.*;
import apelet.common.generator.utils.OrmGenDataSourceUtil;
import apelet.common.orm.impl.Filter;
import apelet.common.orm.impl.FilterItem;
import apelet.common.orm.impl.Selector;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLEncoder;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@@ -68,4 +75,5 @@ public class HomeController {
}
+
}
diff --git a/common/common-association/src/main/java/apelet/association/plugin/active/ActivityInfoDetailsPlugin.java b/common/common-association/src/main/java/apelet/association/plugin/active/ActivityInfoDetailsPlugin.java
index e3736ec..018c538 100644
--- a/common/common-association/src/main/java/apelet/association/plugin/active/ActivityInfoDetailsPlugin.java
+++ b/common/common-association/src/main/java/apelet/association/plugin/active/ActivityInfoDetailsPlugin.java
@@ -3,6 +3,7 @@ package apelet.association.plugin.active;
import apelet.association.utils.MyFileUtil;
import apelet.association.utils.QRCodeUtil;
import apelet.common.core.exception.MyRuntimeException;
+import apelet.common.core.object.ObjectCollection;
import apelet.common.core.object.ObjectValue;
import apelet.common.core.upload.UploadResponseInfo;
import apelet.common.core.util.ApplicationContextHolder;
@@ -27,7 +28,9 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* 活动详情
@@ -59,14 +62,52 @@ public class ActivityInfoDetailsPlugin extends ListPlugin {
@Override
public void change(String widgetVariableName, ObjectValue objectValue) {
+ //添加 会员
+ if (widgetVariableName.equals("table1786587576012")) {
+ ObjectCollection memberInvitations = objectValue.getObjectCollection("member_invitation");
+ List collect = memberInvitations.stream().filter(f -> f.getString("rowkey").equals(objectValue.getString("rowkeysubset"))).collect(Collectors.toList());
+ if (!collect.isEmpty()) {
+ ObjectValue memberInvitation = collect.get(0);
+ ObjectValue membershipApplyId = memberInvitation.getObjectValue("membership_apply_id");
+ if (membershipApplyId == null) {
+ return;
+ }
+ ObjectValue membershipApply = ormGenDataSourceUtil.queryOne(membershipApplyId.getTableName(), membershipApplyId.getString("id"));
+ ObjectCollection applyEntry = membershipApply.getObjectCollection("membership_apply_entry");
+ if (applyEntry == null) {
+ return;
+ }
+ ObjectValue entryObject = applyEntry.getObject(0);
+ this.setWidgetAttributeByEntry("table1786587576012", "unit_name", AttributeEnum.VALUE_CHANGE, membershipApply.getString("unit_name"), objectValue.getString("rowkeysubset"));
+ this.setWidgetAttributeByEntry("table1786587576012", "person", AttributeEnum.VALUE_CHANGE, entryObject.getString("contact_name"), objectValue.getString("rowkeysubset"));
+ this.setWidgetAttributeByEntry("table1786587576012", "phone", AttributeEnum.VALUE_CHANGE, entryObject.getString("contact_phone"), objectValue.getString("rowkeysubset"));
+ }
+ }
+ //专家邀请
+ if(widgetVariableName.equals("table1786587648327")){
+ ObjectCollection expertInvitations = objectValue.getObjectCollection("expert_invitation");
+ List collect = expertInvitations.stream().filter(f -> f.getString("rowkey").equals(objectValue.getString("rowkeysubset"))).collect(Collectors.toList());
+ if (!collect.isEmpty()) {
+ ObjectValue expertInvitation = collect.get(0);
+ ObjectValue expert = expertInvitation.getObjectValue("expert_id");
+ expert = ormGenDataSourceUtil.queryOne(expert.getTableName(), expert.getString("id"));
+ this.setWidgetAttributeByEntry("table1786587648327", "person", AttributeEnum.VALUE_CHANGE, expert.getString("name"), objectValue.getString("rowkeysubset"));
+ this.setWidgetAttributeByEntry("table1786587648327", "phone", AttributeEnum.VALUE_CHANGE, expert.getString("phone"), objectValue.getString("rowkeysubset"));
+ }
+ }
+ //访客邀请
+ if(widgetVariableName.equals("table1786587726532")){
+
+ }
}
@Override
public void buttonTriggered(String widgetVariableName, ObjectValue objectValue) {
+ // 生成报名二维码
if (widgetVariableName.equals("button1786587153460")) {
String registrationQr = objectValue.getString("registration_qr");
- if(StringUtils.isNotEmpty(registrationQr)){
+ if (StringUtils.isNotEmpty(registrationQr)) {
this.showErrorMessage("当前已存在报名二维码, 请勿重复生成!!!");
return;
}
@@ -79,26 +120,31 @@ public class ActivityInfoDetailsPlugin extends ListPlugin {
// 生成 报名二维码
long id = objectValue.getLong("id");
- String url = "http://58.48.135.5:8069" + "/#/?" +
+ String url = "http://192.168.100.42:8099" + "/#/?" +
"loginName=" + "admin" +
"&password=" + "123456" +
- "&entryId=" + "2087413611113746432" +
+ "&entryId=" + "2087710350152568832" +
"&bindType=" + "1" +
- "&onlineFormId=" + "2087385700075835392" +
+ "&onlineFormId=" + "2048951917157027840" +
"&activeId=" + id;
byte[] checkInQr = qrCodeUtil.generateQrCode(url, 350, 350);
QRFile = MyFileUtil.writeToFile(checkInQr, savePath, "qrcode-" + System.currentTimeMillis() + ".png");
MultipartFile checkInMultipart = MyFileUtil.readFileAsMultipartFile(QRFile, "image/png");
- UploadResponseInfo registrationQR = myFileUtil.uploadMyFile(table, "registration_qr", true, checkInMultipart);
- this.setWidgetAttribute("registrationQr", AttributeEnum.VALUE_CHANGE, registrationQR);
+ UploadResponseInfo registrationQR = myFileUtil.uploadMyFile(table, "qr", true, checkInMultipart);
+
+ String s = "[" + new JSONObject(BeanUtil.beanToMap(registrationQR)).toJSONString() + "]";
+ this.setWidgetAttribute("registrationQr", AttributeEnum.VALUE_CHANGE, s);
+ this.setWidgetAttribute("qr", AttributeEnum.VALUE_CHANGE, s);
- objectValue.put("registration_qr", "["+new JSONObject(BeanUtil.beanToMap(registrationQR)).toJSONString()+"]");
+ objectValue.put("registration_qr", s);
+ objectValue.put("qr", s);
Selector selector = new Selector();
selector.getList().add(new SelectorItem("registration_qr"));
ormGenDataSourceUtil.update(objectValue.getTableName(), objectValue, selector);
} catch (Exception e) {
+ e.printStackTrace();
throw new MyRuntimeException(e.getMessage());
} finally {
QRFile.delete();
diff --git a/common/common-association/src/main/java/apelet/association/plugin/active/ActivitySignConfigPlugin.java b/common/common-association/src/main/java/apelet/association/plugin/active/ActivitySignConfigPlugin.java
index 73d6f9a..4c40e69 100644
--- a/common/common-association/src/main/java/apelet/association/plugin/active/ActivitySignConfigPlugin.java
+++ b/common/common-association/src/main/java/apelet/association/plugin/active/ActivitySignConfigPlugin.java
@@ -102,16 +102,16 @@ public class ActivitySignConfigPlugin extends ListPlugin {
Model model = dto.getModel();
if ("button1778742711763".equals(widgetVariableName)) {
- if (StringUtils.isNotBlank(objectValue.getString("sign_in_code")) &&
- StringUtils.isNotBlank(objectValue.getString("sign_out_code"))) {
- showWarningMessage("当前已存在二维码, 请勿重复生产!!!");
- return;
- }
+// if (StringUtils.isNotBlank(objectValue.getString("sign_in_code")) &&
+// StringUtils.isNotBlank(objectValue.getString("sign_out_code"))) {
+// showWarningMessage("当前已存在二维码, 请勿重复生产!!!");
+// return;
+// }
// 生成二维码
String savePath = System.getProperty("user.dir") + "\\zz-resource\\qrcode";
- File checkOutFile;
- File checkInFile;
+ File checkOutFile = null;
+ File checkInFile = null;
try {
Object activityId = objectValue.get("id");
Object activityName = objectValue.get("name");
@@ -135,13 +135,6 @@ public class ActivitySignConfigPlugin extends ListPlugin {
} catch (Exception e) {
e.printStackTrace();
throw new MyRuntimeException("二维码生成失败, 请联系管理员!!!");
- } finally {
- try {
- FileUtils.cleanDirectory(new File(savePath));
- } catch (IOException e) {
- e.printStackTrace();
- System.err.println("文件刪除失敗!!!");
- }
}
}
}
diff --git a/common/common-association/src/main/java/apelet/association/plugin/clueManage/ClueSaveOpPlugin.java b/common/common-association/src/main/java/apelet/association/plugin/clueManage/ClueSaveOpPlugin.java
new file mode 100644
index 0000000..d5d6a7d
--- /dev/null
+++ b/common/common-association/src/main/java/apelet/association/plugin/clueManage/ClueSaveOpPlugin.java
@@ -0,0 +1,76 @@
+package apelet.association.plugin.clueManage;
+
+import apelet.common.core.exception.MyRuntimeException;
+import apelet.common.core.object.ObjectCollection;
+import apelet.common.core.object.ObjectValue;
+import apelet.common.core.object.TokenData;
+import apelet.common.core.util.ApplicationContextHolder;
+import apelet.common.generator.utils.OrmGenDataSourceUtil;
+import apelet.common.online.plugin.*;
+import apelet.common.orm.impl.Selector;
+import apelet.common.orm.impl.SelectorItem;
+import cn.hutool.core.date.DateUtil;
+import org.redisson.api.RBucket;
+import org.redisson.api.RedissonClient;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @ClassName: ClueActivateOpPlugin
+ * @Author: lihuangbin
+ * @Date: 2026/5/11
+ * @Description: 激活放弃的线索
+ */
+
+public class ClueSaveOpPlugin extends OperationServicePlugIn {
+
+ private final OrmGenDataSourceUtil ormGenDataSourceUtil;
+ private final RedissonClient redissonClient;
+
+ public ClueSaveOpPlugin() {
+ ormGenDataSourceUtil = ApplicationContextHolder.getBean(OrmGenDataSourceUtil.class);
+ redissonClient = ApplicationContextHolder.getBean(RedissonClient.class);
+ }
+
+
+ @Override
+ public void endOperationTransaction(EndOperationTransactionArgs e) {
+ ObjectValue objectValue = e.getModel();
+ String redisKey = "clue -- " + DateUtil.today();
+ RBucket