From 5daed4d743170c988620e1703876e245f65f1fe6 Mon Sep 17 00:00:00 2001 From: YXY <932687738@qq.com> Date: Sat, 19 Aug 2023 13:31:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=85=A5=E6=96=87=E4=BB=B6=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...stVo.java => LarkActiveBaseRequestVo.java} | 2 +- .../ruoyi/common/utils/file/FileUtils.java | 34 +++++-- ruoyi-flyingbook/pom.xml | 11 ++- .../ruoyi/flyingbook/CosHelper/CosHelper.java | 92 ++++++++++++++++++ .../flyingbook/CosHelper/CosStsHelper.java | 75 +++++++++++++++ .../flyingbook/LarkHelper/LarkUserHelper.java | 26 +++++ .../controller/LarkActiveController.java | 73 +++++++------- .../ruoyi/flyingbook/domain/LarkActive.java | 5 + .../domain/LarkUserActiveImage.java | 36 +++++++ .../domain/lark/LarkUserRequest.java | 5 + .../domain/larkactive/LarkActiveRequest.java | 4 +- .../LarkActiveUserRelationRequest.java | 11 ++- .../larkactive/LarkSessionDetailResponse.java | 20 ++++ .../domain/larkactive/LarkSessionRequest.java | 14 +++ .../larkactive/LarkSessionResponse.java | 16 ++++ .../mapper/LarkUserActiveImageMapper.java | 62 ++++++++++++ .../service/ILarkUserActiveImageService.java | 62 ++++++++++++ .../ILarkUserActiveRelatoinService.java | 2 + .../impl/LarkUserActiveImageServiceImpl.java | 96 +++++++++++++++++++ .../LarkUserActiveRelatoinServiceImpl.java | 88 +++++++++++++++-- .../resources/mapper/LarkActiveMapper.xml | 10 +- .../mapper/LarkUserActiveImageMapper.xml | 91 ++++++++++++++++++ .../mapper/LarkUserActiveRelatoinMapper.xml | 7 +- .../framework/config/SecurityConfig.java | 2 +- 24 files changed, 779 insertions(+), 65 deletions(-) rename ruoyi-common/src/main/java/com/ruoyi/common/core/domain/{RequestVo.java => LarkActiveBaseRequestVo.java} (92%) create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/CosHelper/CosHelper.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/CosHelper/CosStsHelper.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/LarkUserActiveImage.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionDetailResponse.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionRequest.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkSessionResponse.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/mapper/LarkUserActiveImageMapper.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/ILarkUserActiveImageService.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveImageServiceImpl.java create mode 100644 ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveImageMapper.xml 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 + + + + +