rk
12 小时以前 cf17c2f7012fc4351f66c71d66a4aa3a9fe9e34a
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;
    }
}