| | |
| | | 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实现 |
| | |
| | | @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()) |
| | |
| | | @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 |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |