From f2b6fdd955f8ac6e5b351e0b5e3a9f583ed6da2e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 30 四月 2026 15:26:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java |  108 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 63 insertions(+), 45 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java
index 814ee65..46236f1 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java
@@ -4,21 +4,25 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.Constants;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.AppVersionMapper;
 import com.doumee.dao.business.model.AppVersion;
 import com.doumee.service.business.AppVersionService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.util.List;
-import java.util.Objects;
+import java.io.File;
+import java.util.*;
 
 /**
  * APP鐗堟湰Service瀹炵幇
@@ -31,13 +35,15 @@
     @Autowired
     private AppVersionMapper appVersionMapper;
 
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
     @Override
     public Integer create(AppVersion appVersion) {
         if (StringUtils.isBlank(appVersion.getVersionInfo())
                 || StringUtils.isBlank(appVersion.getFileUrl())
                 || StringUtils.isBlank(appVersion.getName())
                 || StringUtils.isBlank(appVersion.getContent())
-                || StringUtils.isBlank(appVersion.getTitle())
                 || Objects.isNull(appVersion.getIsForce())
                 || Objects.isNull(appVersion.getType())
                 || Objects.isNull(appVersion.getFileSize())
@@ -108,55 +114,37 @@
     @Override
     public PageData<AppVersion> findPage(PageWrap<AppVersion> pageWrap) {
         IPage<AppVersion> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<AppVersion> queryWrapper = new QueryWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        pageWrap.getModel().setDeleted(Constants.ZERO);
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(AppVersion::getId, pageWrap.getModel().getId());
+        MPJLambdaWrapper<AppVersion> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(AppVersion.class)
+                .select("su.REALNAME as createUserName")
+                .leftJoin("system_user su on su.ID = t.CREATE_USER")
+                .eq(AppVersion::getDeleted, Constants.ZERO);
+        AppVersion model = pageWrap.getModel();
+        Utils.MP.blankToNull(model);
+        if (model.getVersionInfo() != null) {
+            wrapper.like(AppVersion::getVersionInfo, model.getVersionInfo());
         }
-        if (pageWrap.getModel().getDeleted() != null) {
-            queryWrapper.lambda().eq(AppVersion::getDeleted, pageWrap.getModel().getDeleted());
+        if (model.getName() != null) {
+            wrapper.like(AppVersion::getName, model.getName());
         }
-        if (pageWrap.getModel().getCreateUser() != null) {
-            queryWrapper.lambda().eq(AppVersion::getCreateUser, pageWrap.getModel().getCreateUser());
+        if (model.getTitle() != null) {
+            wrapper.like(AppVersion::getTitle, model.getTitle());
         }
-        if (pageWrap.getModel().getCreateTime() != null) {
-            queryWrapper.lambda().ge(AppVersion::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
-            queryWrapper.lambda().le(AppVersion::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
+        if (model.getIsForce() != null) {
+            wrapper.eq(AppVersion::getIsForce, model.getIsForce());
         }
-        if (pageWrap.getModel().getUpdateUser() != null) {
-            queryWrapper.lambda().eq(AppVersion::getUpdateUser, pageWrap.getModel().getUpdateUser());
+        if (model.getType() != null) {
+            wrapper.eq(AppVersion::getType, model.getType());
         }
-        if (pageWrap.getModel().getUpdateTime() != null) {
-            queryWrapper.lambda().ge(AppVersion::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
-            queryWrapper.lambda().le(AppVersion::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(AppVersion::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getVersionInfo() != null) {
-            queryWrapper.lambda().like(AppVersion::getVersionInfo, pageWrap.getModel().getVersionInfo());
-        }
-        if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().like(AppVersion::getName, pageWrap.getModel().getName());
-        }
-        if (pageWrap.getModel().getTitle() != null) {
-            queryWrapper.lambda().like(AppVersion::getTitle, pageWrap.getModel().getTitle());
-        }
-        if (pageWrap.getModel().getIsForce() != null) {
-            queryWrapper.lambda().eq(AppVersion::getIsForce, pageWrap.getModel().getIsForce());
-        }
-        if (pageWrap.getModel().getType() != null) {
-            queryWrapper.lambda().eq(AppVersion::getType, pageWrap.getModel().getType());
-        }
-        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
+        wrapper.orderByDesc(AppVersion::getId);
+        PageData<AppVersion> pageData = PageData.from(appVersionMapper.selectJoinPage(page, AppVersion.class, wrapper));
+        String urlPrefix = systemDictDataBiz.queryByCode(Constants.OSS, Constants.APP_FILES_URL).getCode();
+        for (AppVersion vo : pageData.getRecords()) {
+            if (StringUtils.isNotBlank(vo.getFileUrl())) {
+                vo.setFileFullUrl(urlPrefix + vo.getFileUrl());
             }
         }
-        return PageData.from(appVersionMapper.selectPage(page, queryWrapper));
+        return pageData;
     }
 
     @Override
@@ -176,4 +164,34 @@
         return appVersionMapper.selectOne(qw);
     }
 
+    @Override
+    public Map<String, Object> uploadFile(MultipartFile file) throws Exception {
+        if (file == null || file.isEmpty()) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓婁紶鏂囦欢涓嶈兘涓虹┖");
+        }
+        String rootPath = systemDictDataBiz.queryByCode(Constants.OSS, Constants.APP_FILES).getCode();
+        String urlPrefix = systemDictDataBiz.queryByCode(Constants.OSS, Constants.APP_FILES_URL).getCode();
+        String originName = file.getOriginalFilename();
+        String ext = ".apk";
+        if (originName != null && originName.indexOf(".") > 0) {
+            ext = originName.substring(originName.lastIndexOf("."));
+        }
+        String fileName =  UUID.randomUUID() + ext;
+        File dest = new File(rootPath + fileName);
+        if (!dest.getParentFile().exists()) {
+            dest.getParentFile().mkdirs();
+        }
+        try {
+            file.transferTo(dest);
+        } catch (Exception e) {
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "鏂囦欢涓婁紶澶辫触: " + e.getMessage());
+        }
+        Map<String, Object> data = new HashMap<>();
+        data.put("url", urlPrefix + fileName);
+        data.put("imgaddr", fileName);
+        data.put("imgname", fileName);
+        data.put("originname", originName);
+        return data;
+    }
+
 }

--
Gitblit v1.9.3