添加release版本
这个提交包含在:
父节点
a754e75c7e
当前提交
5834d5e66d
@ -0,0 +1,77 @@
|
||||
package com.xuqm.server.appmanager.controller.releases;
|
||||
|
||||
import com.xuqm.server.appmanager.common.JWTHelper;
|
||||
import com.xuqm.server.appmanager.controller.releases.data.ReleaseAddData;
|
||||
import com.xuqm.server.appmanager.controller.releases.data.ReleaseListData;
|
||||
import com.xuqm.server.appmanager.entitys.UserInfo;
|
||||
import com.xuqm.server.appmanager.entitys.sys.v1.ApplicationEntity;
|
||||
import com.xuqm.server.appmanager.entitys.sys.v1.ReleaseEntity;
|
||||
import com.xuqm.server.appmanager.enums.AppStatus;
|
||||
import com.xuqm.server.appmanager.http.HttpResult;
|
||||
import com.xuqm.server.appmanager.repository.sys.v1.ApplicationRepository;
|
||||
import com.xuqm.server.appmanager.repository.sys.v1.ReleaseRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("release/v1")
|
||||
public class ReleaseV1Controller {
|
||||
|
||||
@Autowired
|
||||
private ApplicationRepository applicationRepository;
|
||||
@Autowired
|
||||
private ReleaseRepository releaseRepository;
|
||||
|
||||
@PostMapping("/add")
|
||||
public HttpResult<String> ReleaseAdd(@RequestBody ReleaseAddData data, @RequestHeader(name = "token") String token) throws Exception {
|
||||
UserInfo userInfo = JWTHelper.getUser(token);
|
||||
if (null == userInfo) {
|
||||
return new HttpResult<>(401, "登录失效", null);
|
||||
}
|
||||
if (null == data.getAppId() || null == data.getUrl() || null == data.getVersionCode() || null == data.getVersionName()) {
|
||||
return new HttpResult<>(201, "参数错误", null);
|
||||
} else {
|
||||
ApplicationEntity app = applicationRepository.findFirstByAppIdAndTenantNo(data.getAppId(), userInfo.getTenantNo());
|
||||
if (null == app) return new HttpResult<>(201, "appId不存在", null);
|
||||
ReleaseEntity release = releaseRepository.findFirstByAppIdAndTenantNoAndVersionCodeGreaterThanEqual(data.getAppId(), userInfo.getTenantNo(), data.getVersionCode());
|
||||
if (null != release) return new HttpResult<>(201, "存在更高版本", null);
|
||||
release = new ReleaseEntity();
|
||||
release.setAppId(data.getAppId());
|
||||
release.setTenantNo(userInfo.getTenantNo());
|
||||
release.setUrl(data.getUrl());
|
||||
release.setVersionCode(data.getVersionCode());
|
||||
release.setVersionName(data.getVersionName());
|
||||
release.setContent(data.getContent());
|
||||
release.setVivo(data.isVivo() ? AppStatus.ABSENT : AppStatus.NOT);
|
||||
release.setXiaomi(data.isXiaomi() ? AppStatus.ABSENT : AppStatus.NOT);
|
||||
release.setOppo(data.isOppo() ? AppStatus.ABSENT : AppStatus.NOT);
|
||||
release.setMeizu(data.isMeizu() ? AppStatus.ABSENT : AppStatus.NOT);
|
||||
release.setHuawei(data.isHuawei() ? AppStatus.ABSENT : AppStatus.NOT);
|
||||
release.setGoogle(data.isGoogle() ? AppStatus.ABSENT : AppStatus.NOT);
|
||||
release.setRongyao(data.isRongyao() ? AppStatus.ABSENT : AppStatus.NOT);
|
||||
releaseRepository.save(release);
|
||||
|
||||
return new HttpResult<>(200, "创建成功", app.getAppId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/list")
|
||||
public HttpResult<Page<ReleaseEntity>> ReleaseList(@RequestBody ReleaseListData data, @RequestHeader(name = "token") String token) throws Exception {
|
||||
|
||||
UserInfo userInfo = JWTHelper.getUser(token);
|
||||
if (null == userInfo) {
|
||||
return new HttpResult<>(401, "登录失效", null);
|
||||
}
|
||||
if (data.getPageNumber() < 0) return new HttpResult<>(201, "参数错误", null);
|
||||
if (data.getPageSize() < 0) return new HttpResult<>(201, "参数错误", null);
|
||||
|
||||
|
||||
Page<ReleaseEntity> apps = releaseRepository.findAllByAppIdAndTenantNo(data.getAppId(), userInfo.getTenantNo(), PageRequest.of(data.getPageNumber(), data.getPageSize()));
|
||||
|
||||
return new HttpResult<>(200, "成功", apps);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.xuqm.server.appmanager.controller.releases.data;
|
||||
|
||||
import com.xuqm.server.appmanager.enums.AppStatus;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ReleaseAddData {
|
||||
private String appId;
|
||||
private boolean huawei;
|
||||
private boolean xiaomi;
|
||||
private boolean meizu;
|
||||
private boolean rongyao;
|
||||
private boolean oppo;
|
||||
private boolean vivo;
|
||||
private boolean google;
|
||||
private String url;
|
||||
private String versionCode;
|
||||
private String versionName;
|
||||
private String content;
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package com.xuqm.server.appmanager.controller.releases.data;
|
||||
|
||||
import com.xuqm.server.appmanager.data.PageData;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ReleaseListData extends PageData {
|
||||
private String appId;
|
||||
}
|
||||
@ -10,6 +10,7 @@ import lombok.Data;
|
||||
@Data
|
||||
public class ReleaseEntity extends AbstractBaseTimeEntity {
|
||||
private String appId;
|
||||
private String tenantNo;
|
||||
@Enumerated(EnumType.STRING)
|
||||
private AppStatus huawei;
|
||||
@Enumerated(EnumType.STRING)
|
||||
@ -27,4 +28,5 @@ public class ReleaseEntity extends AbstractBaseTimeEntity {
|
||||
private String url;
|
||||
private String versionCode;
|
||||
private String versionName;
|
||||
private String content;
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import java.util.List;
|
||||
@Repository
|
||||
public interface ApplicationRepository extends JpaRepository<ApplicationEntity, Long> {
|
||||
ApplicationEntity findFirstByAppNameAndTenantNo(String appName, String tenantNo);
|
||||
ApplicationEntity findFirstByAppIdAndTenantNo(String appId, String tenantNo);
|
||||
|
||||
ApplicationEntity findFirstByTenantNoAndPackageNameOrAppName(String tenantNo, String packageName, String appName);
|
||||
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package com.xuqm.server.appmanager.repository.sys.v1;
|
||||
|
||||
import com.xuqm.server.appmanager.entitys.sys.v1.ApplicationEntity;
|
||||
import com.xuqm.server.appmanager.entitys.sys.v1.ReleaseEntity;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface ReleaseRepository extends JpaRepository<ReleaseEntity, Long> {
|
||||
ReleaseEntity findFirstByAppIdAndTenantNoAndVersionCodeGreaterThanEqual(String appId, String tenantNo, String versionCode);
|
||||
Page<ReleaseEntity> findAllByAppIdAndTenantNo(String appId, String tenantNo, Pageable pageable);
|
||||
}
|
||||
正在加载...
在新工单中引用
屏蔽一个用户