diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/RequestVo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/LarkActiveBaseRequestVo.java
similarity index 92%
rename from ruoyi-common/src/main/java/com/ruoyi/common/core/domain/RequestVo.java
rename to ruoyi-common/src/main/java/com/ruoyi/common/core/domain/LarkActiveBaseRequestVo.java
index 4b3099a..3094557 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/RequestVo.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/LarkActiveBaseRequestVo.java
@@ -7,7 +7,7 @@ import lombok.Data;
* @create 2023-08-16 16:58
*/
@Data
-public class RequestVo {
+public class LarkActiveBaseRequestVo {
/**
* 查询的当前页
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
index 6e10fea..0307e95 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
@@ -1,17 +1,13 @@
package com.ruoyi.common.utils.file;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
+import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import com.ruoyi.common.utils.StringPlusUtils;
+import org.springframework.web.multipart.MultipartFile;
/**
* 文件处理工具类
@@ -200,4 +196,30 @@ public class FileUtils extends org.apache.commons.io.FileUtils
String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
return encode.replaceAll("\\+", "%20");
}
+
+ public static File multipartFile2File(MultipartFile multipartFile){
+ String fileName = multipartFile.getOriginalFilename();
+ File file = new File(fileName);
+ OutputStream out = null;
+ try{
+ //获取文件流,以文件流的方式输出到新文件
+// InputStream in = multipartFile.getInputStream();
+ out = new FileOutputStream(file);
+ byte[] ss = multipartFile.getBytes();
+ for(int i = 0; i < ss.length; i++){
+ out.write(ss[i]);
+ }
+ }catch(IOException e){
+ e.printStackTrace();
+ }finally {
+ if (out != null){
+ try {
+ out.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return file;
+ }
}
diff --git a/ruoyi-flyingbook/pom.xml b/ruoyi-flyingbook/pom.xml
index 1d3646f..9893767 100644
--- a/ruoyi-flyingbook/pom.xml
+++ b/ruoyi-flyingbook/pom.xml
@@ -66,7 +66,16 @@
org.aspectj
aspectjweaver
-
+
+ com.qcloud
+ cos-sts_api
+ 3.1.0
+
+
+ com.qcloud
+ cos_api
+ 5.6.155
+
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/CosHelper/CosHelper.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/CosHelper/CosHelper.java
new file mode 100644
index 0000000..74bd927
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/CosHelper/CosHelper.java
@@ -0,0 +1,92 @@
+package com.ruoyi.flyingbook.CosHelper;
+
+import com.qcloud.cos.COSClient;
+import com.qcloud.cos.ClientConfig;
+import com.qcloud.cos.Headers;
+import com.qcloud.cos.auth.AnonymousCOSCredentials;
+import com.qcloud.cos.auth.BasicCOSCredentials;
+import com.qcloud.cos.auth.COSCredentials;
+import com.qcloud.cos.auth.COSSigner;
+import com.qcloud.cos.exception.CosClientException;
+import com.qcloud.cos.exception.CosServiceException;
+import com.qcloud.cos.http.HttpMethodName;
+import com.qcloud.cos.http.HttpProtocol;
+import com.qcloud.cos.model.Bucket;
+import com.qcloud.cos.model.CannedAccessControlList;
+import com.qcloud.cos.model.PutObjectRequest;
+import com.qcloud.cos.model.PutObjectResult;
+import com.qcloud.cos.model.ciModel.job.DocHtmlRequest;
+import com.qcloud.cos.region.Region;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.net.URL;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author yuxiangyong
+ * @create 2023-08-19 9:52
+ */
+@Slf4j
+@Component
+public class CosHelper {
+
+ private String secretId = "AKID62pQpzvd7MyVs31mV3OXUVKxNadT7Zu5";
+ private String secretKey = "2EXcUYQ8fz61jGahbMvISbaMxMYZO0Qg";
+
+ private COSClient buildClinet(){
+ COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
+ Region region = new Region("ap-beijing");
+ ClientConfig clientConfig = new ClientConfig(region);
+ clientConfig.setHttpProtocol(HttpProtocol.https);
+ return new COSClient(cred, clientConfig);
+ }
+
+ public PutObjectResult upload(String bucketName, String key, File localFile){
+ COSClient cosClient = null;
+ try {
+ cosClient = buildClinet();
+ PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
+ PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
+ return putObjectResult;
+ }catch (Exception e){
+ log.info("upload file error",e);
+ }finally {
+ shutdown(cosClient);
+ }
+ return null;
+ }
+
+ /**
+ * 生成临时图片链接
+ * @param bucketName
+ * @param key
+ * @return
+ */
+ public String previewUrl(String bucketName, String key){
+ COSClient cosClient = null;
+ try {
+ cosClient = buildClinet();
+ Date expirationDate = new Date(System.currentTimeMillis() + 30 * 60 * 1000);
+ Map params = new HashMap();
+ Map headers = new HashMap();
+ HttpMethodName method = HttpMethodName.GET;
+ URL url = cosClient.generatePresignedUrl(bucketName, key, expirationDate, method, headers, params);
+ System.out.println(url.toString());
+ }catch (Exception e){
+ log.info("upload file error",e);
+ }finally {
+ shutdown(cosClient);
+ }
+ return null;
+ }
+
+ private void shutdown(COSClient cosClient){
+ if (cosClient != null){
+ cosClient.shutdown();
+ }
+ }
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/CosHelper/CosStsHelper.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/CosHelper/CosStsHelper.java
new file mode 100644
index 0000000..f6853e7
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/CosHelper/CosStsHelper.java
@@ -0,0 +1,75 @@
+package com.ruoyi.flyingbook.CosHelper;
+
+import com.tencent.cloud.CosStsClient;
+import com.tencent.cloud.Response;
+
+import java.util.TreeMap;
+
+/**
+ * @author yuxiangyong
+ * @create 2023-08-19 9:46
+ */
+public class CosStsHelper {
+ // 根据 github 提供的 maven 集成方法导入 java sts sdk,使用 3.1.0 及更高版本
+ public static void main(String[] args) {
+ TreeMap config = new TreeMap();
+
+ try {
+ //这里的 SecretId 和 SecretKey 代表了用于申请临时密钥的永久身份(主账号、子账号等),子账号需要具有操作存储桶的权限。
+ String secretId = System.getenv("secretId");//用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
+ String secretKey = System.getenv("secretKey");//用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
+ // 替换为您的云 api 密钥 SecretId
+ config.put("secretId", secretId);
+ // 替换为您的云 api 密钥 SecretKey
+ config.put("secretKey", secretKey);
+
+ // 设置域名:
+ // 如果您使用了腾讯云 cvm,可以设置内部域名
+ //config.put("host", "sts.internal.tencentcloudapi.com");
+
+ // 临时密钥有效时长,单位是秒,默认 1800 秒,目前主账号最长 2 小时(即 7200 秒),子账号最长 36 小时(即 129600)秒
+ config.put("durationSeconds", 1800);
+
+ // 换成您的 bucket
+ config.put("bucket", "examplebucket-1250000000");
+ // 换成 bucket 所在地区
+ config.put("region", "ap-guangzhou");
+
+ // 这里改成允许的路径前缀,可以根据自己网站的用户登录态判断允许上传的具体路径
+ // 列举几种典型的前缀授权场景:
+ // 1、允许访问所有对象:"*"
+ // 2、允许访问指定的对象:"a/a1.txt", "b/b1.txt"
+ // 3、允许访问指定前缀的对象:"a*", "a/*", "b/*"
+ // 如果填写了“*”,将允许用户访问所有资源;除非业务需要,否则请按照最小权限原则授予用户相应的访问权限范围。
+ config.put("allowPrefixes", new String[]{
+ "exampleobject",
+ "exampleobject2"
+ });
+
+ // 密钥的权限列表。必须在这里指定本次临时密钥所需要的权限。
+ // 简单上传、表单上传和分块上传需要以下的权限,其他权限列表请参见 https://cloud.tencent.com/document/product/436/31923
+ String[] allowActions = new String[]{
+ // 简单上传
+ "name/cos:PutObject",
+ // 表单上传、小程序上传
+ "name/cos:PostObject",
+ // 分块上传
+ "name/cos:InitiateMultipartUpload",
+ "name/cos:ListMultipartUploads",
+ "name/cos:ListParts",
+ "name/cos:UploadPart",
+ "name/cos:CompleteMultipartUpload"
+ };
+ config.put("allowActions", allowActions);
+
+
+ Response response = CosStsClient.getCredential(config);
+ System.out.println(response.credentials.tmpSecretId);
+ System.out.println(response.credentials.tmpSecretKey);
+ System.out.println(response.credentials.sessionToken);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new IllegalArgumentException("no valid secret !");
+ }
+ }
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/LarkHelper/LarkUserHelper.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/LarkHelper/LarkUserHelper.java
index 0696d2e..0a05fdf 100644
--- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/LarkHelper/LarkUserHelper.java
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/LarkHelper/LarkUserHelper.java
@@ -1,5 +1,7 @@
package com.ruoyi.flyingbook.LarkHelper;
+import com.alibaba.fastjson.JSONObject;
+import com.lark.oapi.core.token.AccessTokenType;
import com.lark.oapi.service.approval.v4.model.GetInstanceRespBody;
import com.lark.oapi.service.authen.v1.model.CreateAccessTokenReq;
import com.lark.oapi.service.authen.v1.model.CreateAccessTokenReqBody;
@@ -9,9 +11,12 @@ import com.lark.oapi.service.contact.v3.model.*;
import com.ruoyi.flyingbook.domain.lark.LarkApprovalRequest;
import com.ruoyi.flyingbook.domain.lark.LarkException;
import com.ruoyi.flyingbook.domain.lark.LarkUserRequest;
+import com.ruoyi.flyingbook.domain.larkactive.LarkSessionResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import java.nio.charset.StandardCharsets;
+
/**
* @author yuxiangyong
@@ -22,12 +27,15 @@ import org.springframework.stereotype.Component;
public class LarkUserHelper extends LarkHelper{
static String openId = "ou_cd09481727e91fce1f12b7b0ed1500d2";
+ static String code = "ou_cd09481727e91fce1f12b7b0ed1500d2";
public static void main(String[] args) throws Exception {
LarkUserHelper bk = new LarkUserHelper();
GetUserRespBody userRespBody = bk.getUserInfoDetail(new LarkUserRequest(appId, secret, openId));
// userRespBody.getUser().getName();
System.out.println(userRespBody);
+ LarkSessionResponse larkSessionResponse = bk.tokenLoginValidate(new LarkUserRequest(appId, secret, openId, code));
+ System.out.println(larkSessionResponse);
}
@@ -71,4 +79,22 @@ public class LarkUserHelper extends LarkHelper{
throw new RuntimeException(new LarkException("LarkUserHelper.getUserToken",e.getMessage(),request).getErrorMessageBody());
}
}
+
+ /**
+ * 获取userToken
+ */
+ private static final String TOKEN_LOGIN_VALIDATE = "https://open.feishu.cn/open-apis/mina/v2/tokenLoginValidate";
+ public LarkSessionResponse tokenLoginValidate(LarkUserRequest request) {
+ try {
+ JSONObject body = new JSONObject();
+ body.put("code",request.getCode());
+ byte[] resBody = buildClient(request)
+ .post(TOKEN_LOGIN_VALIDATE, body, AccessTokenType.Tenant)
+ .getBody();
+ String resStr = new String(resBody, StandardCharsets.UTF_8);
+ return JSONObject.parseObject(resStr, LarkSessionResponse.class);
+ } catch (Exception e) {
+ throw new RuntimeException(new LarkException("LarkUserHelper.getUserToken",e.getMessage(),request).getErrorMessageBody());
+ }
+ }
}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/LarkActiveController.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/LarkActiveController.java
index 46c7b60..3327f6a 100644
--- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/LarkActiveController.java
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/LarkActiveController.java
@@ -1,30 +1,33 @@
package com.ruoyi.flyingbook.controller;
+import com.ruoyi.flyingbook.CosHelper.CosHelper;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.enums.FlagStatus;
import com.ruoyi.common.enums.LarkActiveInviteStageEnum;
import com.ruoyi.common.enums.LarkActiveStageEnum;
+import com.ruoyi.common.utils.file.FileUtils;
+import com.ruoyi.flyingbook.LarkHelper.LarkUserHelper;
import com.ruoyi.flyingbook.domain.LarkActive;
import com.ruoyi.flyingbook.domain.LarkUserActiveInviteRelatoin;
import com.ruoyi.flyingbook.domain.LarkUserActiveRelatoin;
import com.ruoyi.flyingbook.domain.edi.ResponseVo;
-import com.ruoyi.flyingbook.domain.larkactive.LarkActiveCountVo;
-import com.ruoyi.flyingbook.domain.larkactive.LarkActiveRequest;
-import com.ruoyi.flyingbook.domain.larkactive.LarkActiveUserRelationRequest;
-import com.ruoyi.flyingbook.domain.larkactive.LarkActiveVo;
+import com.ruoyi.flyingbook.domain.lark.LarkUserRequest;
+import com.ruoyi.flyingbook.domain.larkactive.*;
import com.ruoyi.flyingbook.service.ILarkActiveService;
import com.ruoyi.flyingbook.service.ILarkUserActiveInviteRelatoinService;
import com.ruoyi.flyingbook.service.ILarkUserActiveRelatoinService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.File;
+import java.util.Date;
import java.util.List;
@Slf4j
@RestController
+@RequestMapping("/lark/active")
public class LarkActiveController extends BaseController {
@Autowired
@@ -33,6 +36,22 @@ public class LarkActiveController extends BaseController {
private ILarkUserActiveRelatoinService larkUserActiveRelatoinService;
@Autowired
private ILarkUserActiveInviteRelatoinService larkUserActiveInviteRelatoinService;
+ @Autowired
+ private LarkUserHelper larkUserHelper;
+ @Autowired
+ private CosHelper cosHelper;
+
+ private static final String APP_ID = "cli_a482a8572cbc9013";
+ private static final String APP_SECRET = "lZNXbCLlOslWbwBIVc4qvgxOdnfA8Mos";
+
+ /**
+ * 分页查询活动
+ */
+ @PostMapping("/getSession")
+ public ResponseVo getSession(@RequestBody LarkSessionRequest request) {
+ LarkSessionResponse larkSessionResponse = larkUserHelper.tokenLoginValidate(new LarkUserRequest(APP_ID, APP_SECRET, null, request.getCode()));
+ return new ResponseVo<>(larkSessionResponse.getData());
+ }
/**
* 分页查询活动
@@ -52,43 +71,17 @@ public class LarkActiveController extends BaseController {
}
/**
- * 上传活动图片 todo yxy
+ * 上传活动图片
*/
@PostMapping("/uploadActiveFile")
- public ResponseVo uploadActiveFile(@RequestBody LarkActiveRequest request) {
- LarkActive larkActive = larkActiveService.selectLarkActiveById(request.getLarkActiveId());
- return new ResponseVo(larkActive);
+ public ResponseVo uploadActiveFile(@RequestParam("file") MultipartFile file,@RequestParam("userName")String userName,@RequestParam("larkActiveId") Long larkActiveId) {
+ LarkActiveUserRelationRequest request = new LarkActiveUserRelationRequest();
+ request.setFile(file);
+ request.setUserName(userName);
+ request.setLarkActiveId(larkActiveId);
+ return larkUserActiveRelatoinService.commitFile(request);
}
- /**
- * 查询所有待审核的提交信息
- */
- @PostMapping("/queryWaitReview")
- public ResponseVo queryWaitReview(@RequestBody LarkActiveUserRelationRequest request) {
- request.setActiveStage(LarkActiveStageEnum.SUBMIT.getCode());
- return larkUserActiveRelatoinService.queryPage(request);
- }
-
- /**
- * 查询所有待审核的提交信息
- */
- @PostMapping("/approve")
- public void approve(@RequestBody LarkUserActiveRelatoin request) {
- LarkUserActiveInviteRelatoin larkUserActiveInviteRelatoin = new LarkUserActiveInviteRelatoin();
- larkUserActiveInviteRelatoin.setFlag(FlagStatus.OK.getCode());
- larkUserActiveInviteRelatoin.setCompanyName(request.getCompanyName());
- larkUserActiveInviteRelatoin.setInviteUserName(request.getUserName());
- larkUserActiveInviteRelatoin.setInviteStage(LarkActiveInviteStageEnum.INVITE.getCode());
- List larkUserActiveInviteRelatoins = larkUserActiveInviteRelatoinService.selectLarkUserActiveInviteRelatoinList(larkUserActiveInviteRelatoin);
- for (LarkUserActiveInviteRelatoin userActiveInviteRelatoin : larkUserActiveInviteRelatoins) {
- userActiveInviteRelatoin.setInviteStage(LarkActiveInviteStageEnum.ACTIVE.getCode());
- larkUserActiveInviteRelatoinService.updateLarkUserActiveInviteRelatoin(userActiveInviteRelatoin);
- }
- request.setActiveStage(LarkActiveStageEnum.ADJUST.getCode());
- larkUserActiveRelatoinService.updateLarkUserActiveRelatoin(request);
- }
-
-
/**
* 查询已经完成所有活动的人的名称
*/
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/LarkActive.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/LarkActive.java
index ef25528..d526563 100644
--- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/LarkActive.java
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/LarkActive.java
@@ -45,6 +45,11 @@ public class LarkActive extends BaseEntity {
*/
private String activeImageUrl;
+ /**
+ * 活动图片
+ */
+ private Integer activeImageCount;
+
/**
* 活动类型
* @see com.ruoyi.common.enums.LarkActiveTypeEnum
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/LarkUserActiveImage.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/LarkUserActiveImage.java
new file mode 100644
index 0000000..3953ae1
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/LarkUserActiveImage.java
@@ -0,0 +1,36 @@
+package com.ruoyi.flyingbook.domain;
+
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】对象 lark_user_active_image
+ *
+ * @author ruoyi
+ * @date 2023-08-19
+ */
+@Data
+public class LarkUserActiveImage extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ private Long id;
+
+ /** 用户活动关联关系id */
+ private Long userActiveRelatoin;
+
+ /** 存储桶路径 */
+ private String bucketName;
+
+ /** 文件的唯一key */
+ private String fileKey;
+
+ /**
+ * @see com.ruoyi.common.enums.FlagStatus
+ */
+ private Long flag;
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/lark/LarkUserRequest.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/lark/LarkUserRequest.java
index 6b8e1e5..4273572 100644
--- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/lark/LarkUserRequest.java
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/lark/LarkUserRequest.java
@@ -22,4 +22,9 @@ public class LarkUserRequest extends LarkRequest{
super(appId, appSecret);
this.openId = openId;
}
+
+ public LarkUserRequest(String appId, String appSecret, String openId, String code) {
+ super(appId, appSecret);
+ this.code = code;
+ }
}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveRequest.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveRequest.java
index aa76aef..f09f226 100644
--- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveRequest.java
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveRequest.java
@@ -1,6 +1,6 @@
package com.ruoyi.flyingbook.domain.larkactive;
-import com.ruoyi.common.core.domain.RequestVo;
+import com.ruoyi.common.core.domain.LarkActiveBaseRequestVo;
import lombok.Data;
import java.util.List;
@@ -10,7 +10,7 @@ import java.util.List;
* @create 2023-08-16 16:58
*/
@Data
-public class LarkActiveRequest extends RequestVo {
+public class LarkActiveRequest extends LarkActiveBaseRequestVo {
private String companyName;
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveUserRelationRequest.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveUserRelationRequest.java
index 719e0f2..7648276 100644
--- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveUserRelationRequest.java
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveUserRelationRequest.java
@@ -1,20 +1,27 @@
package com.ruoyi.flyingbook.domain.larkactive;
-import com.ruoyi.common.core.domain.RequestVo;
+import com.ruoyi.common.core.domain.LarkActiveBaseRequestVo;
import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
/**
* @author yuxiangyong
* @create 2023-08-16 16:58
*/
@Data
-public class LarkActiveUserRelationRequest extends RequestVo {
+public class LarkActiveUserRelationRequest extends LarkActiveBaseRequestVo {
private String companyName;
private Long larkActiveId;
private String userName;
+
+ private MultipartFile file;
+
+
/**
* @see com.ruoyi.common.enums.FlagStatus
*/
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionDetailResponse.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionDetailResponse.java
new file mode 100644
index 0000000..cbed0a8
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionDetailResponse.java
@@ -0,0 +1,20 @@
+package com.ruoyi.flyingbook.domain.larkactive;
+
+import lombok.Data;
+
+/**
+ * @author yuxiangyong
+ * @create 2023-08-16 16:58
+ */
+@Data
+public class LarkSessionDetailResponse {
+
+ private String open_id;
+ private String employee_id;
+ private String session_key;
+ private String tenant_key;
+ private String access_token;
+ private String expires_in;
+ private String refresh_token;
+
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionRequest.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionRequest.java
new file mode 100644
index 0000000..95928d0
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionRequest.java
@@ -0,0 +1,14 @@
+package com.ruoyi.flyingbook.domain.larkactive;
+
+import lombok.Data;
+
+/**
+ * @author yuxiangyong
+ * @create 2023-08-16 16:58
+ */
+@Data
+public class LarkSessionRequest {
+
+ private String code;
+
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionResponse.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionResponse.java
new file mode 100644
index 0000000..6f8c3c7
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionResponse.java
@@ -0,0 +1,16 @@
+package com.ruoyi.flyingbook.domain.larkactive;
+
+import lombok.Data;
+
+/**
+ * @author yuxiangyong
+ * @create 2023-08-16 16:58
+ */
+@Data
+public class LarkSessionResponse {
+
+ private String code;
+ private String msg;
+ private LarkSessionDetailResponse data;
+
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/mapper/LarkUserActiveImageMapper.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/mapper/LarkUserActiveImageMapper.java
new file mode 100644
index 0000000..6b64989
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/mapper/LarkUserActiveImageMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.flyingbook.mapper;
+
+import com.ruoyi.flyingbook.domain.LarkUserActiveImage;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-08-19
+ */
+public interface LarkUserActiveImageMapper
+{
+ /**
+ * 查询【请填写功能名称】
+ *
+ * @param id 【请填写功能名称】ID
+ * @return 【请填写功能名称】
+ */
+ public LarkUserActiveImage selectLarkUserActiveImageById(Long id);
+
+ /**
+ * 查询【请填写功能名称】列表
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 【请填写功能名称】集合
+ */
+ public List selectLarkUserActiveImageList(LarkUserActiveImage larkUserActiveImage);
+
+ /**
+ * 新增【请填写功能名称】
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 结果
+ */
+ public int insertLarkUserActiveImage(LarkUserActiveImage larkUserActiveImage);
+
+ /**
+ * 修改【请填写功能名称】
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 结果
+ */
+ public int updateLarkUserActiveImage(LarkUserActiveImage larkUserActiveImage);
+
+ /**
+ * 删除【请填写功能名称】
+ *
+ * @param id 【请填写功能名称】ID
+ * @return 结果
+ */
+ public int deleteLarkUserActiveImageById(Long id);
+
+ /**
+ * 批量删除【请填写功能名称】
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ public int deleteLarkUserActiveImageByIds(Long[] ids);
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/ILarkUserActiveImageService.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/ILarkUserActiveImageService.java
new file mode 100644
index 0000000..1cae831
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/ILarkUserActiveImageService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.flyingbook.service;
+
+import com.ruoyi.flyingbook.domain.LarkUserActiveImage;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-08-19
+ */
+public interface ILarkUserActiveImageService
+{
+ /**
+ * 查询【请填写功能名称】
+ *
+ * @param id 【请填写功能名称】ID
+ * @return 【请填写功能名称】
+ */
+ public LarkUserActiveImage selectLarkUserActiveImageById(Long id);
+
+ /**
+ * 查询【请填写功能名称】列表
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 【请填写功能名称】集合
+ */
+ public List selectLarkUserActiveImageList(LarkUserActiveImage larkUserActiveImage);
+
+ /**
+ * 新增【请填写功能名称】
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 结果
+ */
+ public int insertLarkUserActiveImage(LarkUserActiveImage larkUserActiveImage);
+
+ /**
+ * 修改【请填写功能名称】
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 结果
+ */
+ public int updateLarkUserActiveImage(LarkUserActiveImage larkUserActiveImage);
+
+ /**
+ * 批量删除【请填写功能名称】
+ *
+ * @param ids 需要删除的【请填写功能名称】ID
+ * @return 结果
+ */
+ public int deleteLarkUserActiveImageByIds(Long[] ids);
+
+ /**
+ * 删除【请填写功能名称】信息
+ *
+ * @param id 【请填写功能名称】ID
+ * @return 结果
+ */
+ public int deleteLarkUserActiveImageById(Long id);
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/ILarkUserActiveRelatoinService.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/ILarkUserActiveRelatoinService.java
index 62a85f7..4195ad7 100644
--- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/ILarkUserActiveRelatoinService.java
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/ILarkUserActiveRelatoinService.java
@@ -33,6 +33,8 @@ public interface ILarkUserActiveRelatoinService {
public List selectLarkUserActiveRelatoinList(LarkUserActiveRelatoin larkUserActiveRelatoin);
public ResponseVo queryPage(LarkActiveUserRelationRequest request);
+ public ResponseVo commitFile(LarkActiveUserRelationRequest request);
+
/**
* 新增【请填写功能名称】
*
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveImageServiceImpl.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveImageServiceImpl.java
new file mode 100644
index 0000000..e6494a2
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveImageServiceImpl.java
@@ -0,0 +1,96 @@
+package com.ruoyi.flyingbook.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.flyingbook.domain.LarkUserActiveImage;
+import com.ruoyi.flyingbook.mapper.LarkUserActiveImageMapper;
+import com.ruoyi.flyingbook.service.ILarkUserActiveImageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-08-19
+ */
+@Service
+public class LarkUserActiveImageServiceImpl implements ILarkUserActiveImageService
+{
+ @Autowired
+ private LarkUserActiveImageMapper larkUserActiveImageMapper;
+
+ /**
+ * 查询【请填写功能名称】
+ *
+ * @param id 【请填写功能名称】ID
+ * @return 【请填写功能名称】
+ */
+ @Override
+ public LarkUserActiveImage selectLarkUserActiveImageById(Long id)
+ {
+ return larkUserActiveImageMapper.selectLarkUserActiveImageById(id);
+ }
+
+ /**
+ * 查询【请填写功能名称】列表
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 【请填写功能名称】
+ */
+ @Override
+ public List selectLarkUserActiveImageList(LarkUserActiveImage larkUserActiveImage)
+ {
+ return larkUserActiveImageMapper.selectLarkUserActiveImageList(larkUserActiveImage);
+ }
+
+ /**
+ * 新增【请填写功能名称】
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 结果
+ */
+ @Override
+ public int insertLarkUserActiveImage(LarkUserActiveImage larkUserActiveImage)
+ {
+ larkUserActiveImage.setCreateTime(DateUtils.getNowDate());
+ return larkUserActiveImageMapper.insertLarkUserActiveImage(larkUserActiveImage);
+ }
+
+ /**
+ * 修改【请填写功能名称】
+ *
+ * @param larkUserActiveImage 【请填写功能名称】
+ * @return 结果
+ */
+ @Override
+ public int updateLarkUserActiveImage(LarkUserActiveImage larkUserActiveImage)
+ {
+ larkUserActiveImage.setUpdateTime(DateUtils.getNowDate());
+ return larkUserActiveImageMapper.updateLarkUserActiveImage(larkUserActiveImage);
+ }
+
+ /**
+ * 批量删除【请填写功能名称】
+ *
+ * @param ids 需要删除的【请填写功能名称】ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLarkUserActiveImageByIds(Long[] ids)
+ {
+ return larkUserActiveImageMapper.deleteLarkUserActiveImageByIds(ids);
+ }
+
+ /**
+ * 删除【请填写功能名称】信息
+ *
+ * @param id 【请填写功能名称】ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLarkUserActiveImageById(Long id)
+ {
+ return larkUserActiveImageMapper.deleteLarkUserActiveImageById(id);
+ }
+}
diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java
index 47862b2..04b1ffa 100644
--- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java
+++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java
@@ -1,9 +1,13 @@
package com.ruoyi.flyingbook.service.impl;
+import com.qcloud.cos.model.PutObjectResult;
import com.ruoyi.common.enums.FlagStatus;
import com.ruoyi.common.enums.LarkActiveStageEnum;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.file.FileUtils;
+import com.ruoyi.flyingbook.CosHelper.CosHelper;
import com.ruoyi.flyingbook.domain.LarkActive;
+import com.ruoyi.flyingbook.domain.LarkUserActiveImage;
import com.ruoyi.flyingbook.domain.LarkUserActiveRelatoin;
import com.ruoyi.flyingbook.domain.edi.ResponseVo;
import com.ruoyi.flyingbook.domain.larkactive.LarkActiveCountVo;
@@ -11,6 +15,7 @@ import com.ruoyi.flyingbook.domain.larkactive.LarkActiveRequest;
import com.ruoyi.flyingbook.domain.larkactive.LarkActiveUserRelationRequest;
import com.ruoyi.flyingbook.domain.larkactive.LarkActiveVo;
import com.ruoyi.flyingbook.mapper.LarkActiveMapper;
+import com.ruoyi.flyingbook.mapper.LarkUserActiveImageMapper;
import com.ruoyi.flyingbook.mapper.LarkUserActiveRelatoinMapper;
import com.ruoyi.flyingbook.service.ILarkUserActiveRelatoinService;
import org.apache.commons.collections4.CollectionUtils;
@@ -18,7 +23,10 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.File;
+import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
@@ -36,6 +44,13 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi
private LarkUserActiveRelatoinMapper larkUserActiveRelatoinMapper;
@Autowired
private LarkActiveMapper larkActiveMapper;
+ @Autowired
+ private CosHelper cosHelper;
+ @Autowired
+ private LarkUserActiveImageMapper larkUserActiveImageMapper;
+
+
+ private static final String BUCKET_NAME = "ruoyi-1308275795";
/**
* 查询【请填写功能名称】
@@ -58,17 +73,17 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi
int userCount = larkUserActiveRelatoinMapper.queryUserCount(larkUserActiveRelatoin);
larkActiveCountVo.setTotalUserQty(userCount);
List larkActiveCountVos = larkUserActiveRelatoinMapper.queryUserCountGroupByActive(larkUserActiveRelatoin);
- if (CollectionUtils.isNotEmpty(larkActiveCountVos)){
+ if (CollectionUtils.isNotEmpty(larkActiveCountVos)) {
List activeIdList = larkActiveCountVos.stream().map(LarkActiveVo::getId).distinct().collect(Collectors.toList());
- if (CollectionUtils.isNotEmpty(activeIdList)){
+ if (CollectionUtils.isNotEmpty(activeIdList)) {
LarkActiveRequest query = new LarkActiveRequest();
query.setFlag(FlagStatus.OK.getCode());
query.setLarkActiveIdList(activeIdList);
Map activeMap = larkActiveMapper.queryCompleteActive(query).stream().collect(Collectors.toMap(LarkActive::getId, Function.identity(), (k1, k2) -> k1));
for (LarkActiveVo activeCountVo : larkActiveCountVos) {
LarkActive larkActive = activeMap.get(activeCountVo.getId());
- if (larkActive != null){
- BeanUtils.copyProperties(larkActive,activeCountVo);
+ if (larkActive != null) {
+ BeanUtils.copyProperties(larkActive, activeCountVo);
}
}
}
@@ -90,18 +105,71 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi
@Override
public ResponseVo queryPage(LarkActiveUserRelationRequest request) {
- if (request == null || StringUtils.isBlank(request.getCompanyName())){
- return new ResponseVo(request.getCurrentPage(),request.getPageSize());
+ if (request == null || StringUtils.isBlank(request.getCompanyName())) {
+ return new ResponseVo(request.getCurrentPage(), request.getPageSize());
}
request.setFlag(FlagStatus.OK.getCode());
LarkUserActiveRelatoin larkActive = new LarkUserActiveRelatoin();
- BeanUtils.copyProperties(request,larkActive);
+ BeanUtils.copyProperties(request, larkActive);
Integer count = larkUserActiveRelatoinMapper.count(larkActive);
- if (count > 0){
+ if (count > 0) {
List larkUserActiveRelatoins = larkUserActiveRelatoinMapper.queryPage(request);
- return new ResponseVo(request.getCurrentPage(),request.getPageSize(),larkUserActiveRelatoins,count);
+ return new ResponseVo(request.getCurrentPage(), request.getPageSize(), larkUserActiveRelatoins, count);
+ }
+ return new ResponseVo(request.getCurrentPage(), request.getPageSize(), null, count);
+ }
+
+ @Override
+ public ResponseVo commitFile(LarkActiveUserRelationRequest request) {
+ MultipartFile multipartFile = request.getFile();
+ File file = FileUtils.multipartFile2File(multipartFile);
+ String name = file.getName();
+ String[] split = name.split("\\.");
+ String key = String.format("%s_%s", split[0], System.currentTimeMillis());
+ split[0] = key;
+ key = String.join(".", split);
+ LarkUserActiveRelatoin relatoin = queryUserActiveRelation(request.getUserName(), request.getLarkActiveId());
+ if (relatoin == null) {
+ return new ResponseVo();
+ }
+ Integer totalCount = userActiveCount(relatoin) + 1;
+ LarkActive larkActive = larkActiveMapper.selectLarkActiveById(relatoin.getActiveId());
+ cosHelper.upload(BUCKET_NAME, key, file);
+ buildUserActiveImage(relatoin, key);
+ if (totalCount >= larkActive.getActiveImageCount()) {
+ relatoin.setActiveStage(LarkActiveStageEnum.ADJUST.getCode());
+ }
+ return new ResponseVo();
+ }
+
+ private void buildUserActiveImage(LarkUserActiveRelatoin relatoin, String key) {
+ LarkUserActiveImage larkUserActiveImage = new LarkUserActiveImage();
+ larkUserActiveImage.setCreateTime(new Date());
+ larkUserActiveImage.setCreateBy("System");
+ larkUserActiveImage.setUserActiveRelatoin(relatoin.getId());
+ larkUserActiveImage.setFlag(FlagStatus.OK.getCode());
+ larkUserActiveImage.setBucketName(BUCKET_NAME);
+ larkUserActiveImage.setFileKey(key);
+ larkUserActiveImageMapper.insertLarkUserActiveImage(larkUserActiveImage);
+ }
+
+ private Integer userActiveCount(LarkUserActiveRelatoin relatoin) {
+ LarkUserActiveImage larkUserActiveImage = new LarkUserActiveImage();
+ larkUserActiveImage.setUserActiveRelatoin(relatoin.getId());
+ larkUserActiveImage.setFlag(FlagStatus.OK.getCode());
+ return larkUserActiveImageMapper.selectLarkUserActiveImageList(larkUserActiveImage).size();
+ }
+
+ private LarkUserActiveRelatoin queryUserActiveRelation(String userName, Long activeId) {
+ LarkUserActiveRelatoin relatoin = new LarkUserActiveRelatoin();
+ relatoin.setUserName(userName);
+ relatoin.setActiveId(activeId);
+ relatoin.setFlag(FlagStatus.OK.getCode());
+ List larkUserActiveRelatoins = larkUserActiveRelatoinMapper.selectLarkUserActiveRelatoinList(relatoin);
+ if (CollectionUtils.isNotEmpty(larkUserActiveRelatoins)) {
+ return larkUserActiveRelatoins.get(0);
}
- return new ResponseVo(request.getCurrentPage(),request.getPageSize(),null,count);
+ return null;
}
/**
diff --git a/ruoyi-flyingbook/src/main/resources/mapper/LarkActiveMapper.xml b/ruoyi-flyingbook/src/main/resources/mapper/LarkActiveMapper.xml
index 7fe9cb5..da09b8f 100644
--- a/ruoyi-flyingbook/src/main/resources/mapper/LarkActiveMapper.xml
+++ b/ruoyi-flyingbook/src/main/resources/mapper/LarkActiveMapper.xml
@@ -14,6 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
@@ -23,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- select id, company_id, company_name, active_name, active_desc, active_content, active_image_url, active_type, active_score, create_by, create_time, update_by, update_time, flag, remark from lark_active
+ select id, company_id, company_name, active_name, active_desc, active_content, active_image_url, active_type, active_score,active_image_count, create_by, create_time, update_by, update_time, flag, remark from lark_active
@@ -52,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and active_image_url = #{activeImageUrl}
and active_type = #{activeType}
and active_score = #{activeScore}
+ and active_image_count = #{activeImageCount}
and flag = #{flag}
@@ -67,6 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and active_image_url = #{activeImageUrl}
and active_type = #{activeType}
and active_score = #{activeScore}
+ and active_image_count = #{activeImageCount}
and flag = #{flag}
limit #{offset},{pageSize}
@@ -83,6 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and active_image_url = #{activeImageUrl}
and active_type = #{activeType}
and active_score = #{activeScore}
+ and active_image_count = #{activeImageCount}
and flag = #{flag}
and id in
@@ -108,6 +113,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
active_image_url,
active_type,
active_score,
+ active_image_count,
create_by,
create_time,
update_by,
@@ -124,6 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{activeImageUrl},
#{activeType},
#{activeScore},
+ #{activeImageCount},
#{createBy},
#{createTime},
#{updateBy},
@@ -144,6 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
active_image_url = #{activeImageUrl},
active_type = #{activeType},
active_score = #{activeScore},
+ active_image_count = #{activeImageCount},
create_by = #{createBy},
create_time = #{createTime},
update_by = #{updateBy},
diff --git a/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveImageMapper.xml b/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveImageMapper.xml
new file mode 100644
index 0000000..c3e639c
--- /dev/null
+++ b/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveImageMapper.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, user_active_relatoin, bucket_name, file_key, create_by, create_time, update_by, update_time, flag, remark from lark_user_active_image
+
+
+
+
+
+
+
+ insert into lark_user_active_image
+
+ user_active_relatoin,
+ bucket_name,
+ file_key,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ flag,
+ remark,
+
+
+ #{userActiveRelatoin},
+ #{bucketName},
+ #{fileKey},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{flag},
+ #{remark},
+
+
+
+
+ update lark_user_active_image
+
+ user_active_relatoin = #{userActiveRelatoin},
+ bucket_name = #{bucketName},
+ file_key = #{fileKey},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ flag = #{flag},
+ remark = #{remark},
+
+ where id = #{id}
+
+
+
+ delete from lark_user_active_image where id = #{id}
+
+
+
+ delete from lark_user_active_image where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveRelatoinMapper.xml b/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveRelatoinMapper.xml
index f54897f..a863afa 100644
--- a/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveRelatoinMapper.xml
+++ b/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveRelatoinMapper.xml
@@ -97,8 +97,13 @@
group by user_name
+
+
+
+
+