Commit 9d8f91a2 authored by 赵啸非's avatar 赵啸非

添加资源部署站点字段

parent 9ed47a85
......@@ -21,7 +21,7 @@ export default {
created() {
const siteid = session.getSession("siteid");
console.log("siteId:"+siteid)
this.query["siteId"]=1;
this.query["siteId"]=siteid?siteid:1;
},
methods: {
/** 重写新增方法 */
......
......@@ -83,7 +83,7 @@ public class DeviceModuleDistributeEntity extends DeviceModuleDistributeVo {
}
public void initAttrValue(){
this.productId = 0L;
this.productId = null;
this.productCode = "";
this.productName = "";
this.imageResolution = "";
......
package com.mortals.xhx.module.device.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.device.model.DeviceModuleDistributeEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 设备前端模块部署视图对象
*
......@@ -15,4 +12,15 @@ import java.util.List;
public class DeviceModuleDistributeVo extends BaseEntityLong {
private String homeUrl;
/**
* 源站点
*/
private Long sourceSiteId;
/**
* 目标站点
*/
private Long targetSiteId;
}
\ No newline at end of file
package com.mortals.xhx.module.device.service;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.device.model.DeviceModuleDistributeEntity;
......@@ -14,4 +15,7 @@ public interface DeviceModuleDistributeService extends ICRUDService<DeviceModule
void active(DeviceModuleDistributeEntity distributeEntity, Context context);
Rest<String> cloneAppBySite(DeviceModuleDistributeEntity deviceModuleDistributeEntity, Context context);
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.mortals.xhx.module.device.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
......@@ -10,8 +11,11 @@ import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.ImageReEnum;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.pdu.site.SitePdu;
import com.mortals.xhx.feign.site.ISiteFeign;
import com.mortals.xhx.module.device.dao.DeviceModuleDistributeDao;
import com.mortals.xhx.module.device.model.DeviceModuleDistributeEntity;
import com.mortals.xhx.module.device.model.DeviceModuleDistributeQuery;
import com.mortals.xhx.module.device.service.DeviceModuleDistributeService;
import com.mortals.xhx.module.product.model.ProductEntity;
import com.mortals.xhx.module.product.service.ProductService;
......@@ -22,6 +26,7 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.nio.charset.Charset;
import java.util.Date;
import java.util.List;
/**
* DeviceModuleDistributeService
......@@ -36,6 +41,8 @@ public class DeviceModuleDistributeServiceImpl extends AbstractCRUDServiceImpl<D
private ProductService productService;
@Autowired
private UploadService uploadService;
@Autowired
private ISiteFeign siteFeign;
@Override
protected void saveBefore(DeviceModuleDistributeEntity entity, Context context) throws AppException {
......@@ -72,19 +79,21 @@ public class DeviceModuleDistributeServiceImpl extends AbstractCRUDServiceImpl<D
//RuntimeUtil
//部署路径是否存在 如果不存在 创建目录,
String path = GlobalSysInfo.getParamValue(Constant.DISTRIBUTE_PATH, "/home/publish/app/homeDeviceUrl");
String siteCode = distributeEntity.getSiteCode();
String code = distributeEntity.getProductCode();
String imageRe = distributeEntity.getImageResolutionValue();
String disPath = "/" + path + "/" + code + "/" + imageRe;
String disPath = "/" + siteCode + "/" + path + "/" + code + "/" + imageRe;
//判断目标目录是否存在 如果存在 这删除
if (FileUtil.isDirectory(disPath)) {
FileUtil.del(disPath);
}
String fileEncode ="UTF-8";
String fileEncode = "UTF-8";
try {
fileEncode = EncodeUtil.getEncode(targetFilePath,true);
fileEncode = EncodeUtil.getEncode(targetFilePath, true);
} catch (Exception e) {
log.error("异常",e);
log.error("异常", e);
}
ZipUtil.unzip(targetFilePath, disPath, Charset.forName(fileEncode));
//更新
......@@ -95,14 +104,53 @@ public class DeviceModuleDistributeServiceImpl extends AbstractCRUDServiceImpl<D
this.update(distributeEntity, context);
}
@Override
public Rest<String> cloneAppBySite(DeviceModuleDistributeEntity deviceModuleDistributeEntity, Context context) {
//拷贝应用
Long targetSiteId = deviceModuleDistributeEntity.getTargetSiteId();
Long sourceSiteId = deviceModuleDistributeEntity.getSourceSiteId();
Rest<SitePdu> sitePduRest = siteFeign.info(targetSiteId);
if (YesNoEnum.NO.getValue() == sitePduRest.getCode()) {
throw new AppException("未查询到当前站点!");
}
SitePdu sitePdu = sitePduRest.getData();
DeviceModuleDistributeQuery distributeQuery = new DeviceModuleDistributeQuery();
distributeQuery.setSiteId(sourceSiteId);
List<DeviceModuleDistributeEntity> deviceModuleDistributeEntities = this.find(distributeQuery);
//如果已存在 则不复制
for (DeviceModuleDistributeEntity moduleDistributeEntity : deviceModuleDistributeEntities) {
DeviceModuleDistributeQuery query = new DeviceModuleDistributeQuery();
query.setSiteId(targetSiteId);
query.setProductId(moduleDistributeEntity.getProductId());
query.setVersion(moduleDistributeEntity.getVersion());
int count = this.count(query, context);
if (count == 0) {
moduleDistributeEntity.setId(null);
moduleDistributeEntity.setSiteId(sitePdu.getId());
moduleDistributeEntity.setSiteName(sitePdu.getSiteName());
moduleDistributeEntity.setSiteCode(sitePdu.getSiteCode());
moduleDistributeEntity.setDistributeFilePath("");
moduleDistributeEntity.setDistribute(YesNoEnum.NO.getValue());
}
}
return Rest.ok();
}
public static void main(String[] args) {
File file = new File("F:\\交警窗口证件照.zip");
String disPath = "F:\\pics\\";
String fileEncode ="UTF-8";
String fileEncode = "UTF-8";
try {
fileEncode = EncodeUtil.getEncode("F:\\1672973316144.zip",true);
fileEncode = EncodeUtil.getEncode("F:\\1672973316144.zip", true);
} catch (Exception e) {
}
......
......@@ -82,6 +82,26 @@ public class DeviceModuleDistributeController extends BaseCRUDJsonBodyMappingCon
return rest;
}
/**
* app应用克隆给本站点
*/
@PostMapping(value = "cloneAppBySite")
public Rest<Void> cloneAppBySite(@RequestBody DeviceModuleDistributeEntity moduleDistributeEntity) {
String busiDesc = this.getModuleDesc() + "部署克隆";
Rest<Void> rest = Rest.ok(busiDesc + " 【成功】");
try {
Rest<String> cloneRest = this.service.cloneAppBySite(moduleDistributeEntity, getContext());
if (YesNoEnum.NO.getValue() == cloneRest.getCode()) {
return Rest.fail(cloneRest.getMsg());
}
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("应用克隆异常", e);
rest = Rest.fail(super.convertException(e));
}
return rest;
}
@Override
protected int viewAfter(Long id, Map<String, Object> model, DeviceModuleDistributeEntity entity, Context context) throws AppException {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment