Commit c0820c37 authored by “yiyousong”'s avatar “yiyousong”
parents 18fd1882 38d17586
......@@ -9383,6 +9383,96 @@ msg|String|消息|-
```
### 自助终端应用部署
**请求URL:** app/appDistribute
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 应用部署
**请求参数:**
参数名称| 类型 | 必填 |描述
:---|:------|:----|:-------
id|Long|否|应用Id
**请求样例:**
```
{
}
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
**响应消息样例:**
```
{
"msg":"应用部署成功",
"code":1,
"data":{}
}
}
```
### 自助终端基础应用部署
**请求URL:** app/appCommonDistribute
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 基础应用部署
**请求参数:**
参数名称| 类型 | 必填 |描述
:---|:------|:----|:-------
filePath|String|是|文件相对路径地址
**请求样例:**
```
{
}
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
**响应消息样例:**
```
{
"msg":"应用部署成功",
"code":1,
"data":{}
}
}
```
### 自助终端应用克隆
......
......@@ -7,6 +7,7 @@ import com.mortals.framework.service.IUser;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.UploadFileType;
import com.mortals.xhx.utils.SpringUtils;
import lombok.Getter;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.logging.Log;
......
......@@ -297,9 +297,9 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
@Override
public void updateUserList(List<UserPdu> list) {
//更新本地用户信息,并且更新用户站点树
list.forEach(user -> {
UserEntity tempUserEntity = this.selectOne(new UserQuery().loginName(user.getLoginName()));
if (ObjectUtils.isEmpty(tempUserEntity)) {
for (UserPdu user : list) {
UserEntity tempUser = this.selectOne(new UserQuery().loginName(user.getLoginName()));
if (ObjectUtils.isEmpty(tempUser)) {
//新增
UserEntity entity = new UserEntity();
entity.initAttrValue();
......@@ -307,18 +307,18 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
this.save(entity);
Context context = new Context();
context.setUser(entity);
ThreadPool.getInstance().execute(new SyncTreeSiteThread(context));
} else {
//更新
UserEntity userEntity = new UserEntity();
BeanUtils.copyProperties(user, userEntity, new String[]{"loginPwd", "userType", "status", "lastLoginTime", "lastLoginAddress"});
BeanUtils.copyProperties(user, userEntity, new String[]{"loginPwd","loginName", "userType", "status", "lastLoginTime", "lastLoginAddress"});
userEntity.setId(tempUser.getId());
this.updateWidthDao(userEntity);
Context context = new Context();
context.setUser(userEntity);
ThreadPool.getInstance().execute(new SyncTreeSiteThread( context));
}
});
}
}
......
......@@ -3,6 +3,7 @@ package com.mortals.xhx.common.utils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipUtil;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
......@@ -12,6 +13,8 @@ import java.io.*;
public class ZipUtils {
public static void main(String[] args) throws Exception {
unzip(new File("F:\\1664176173348.zip"), "F:\\tmp");
// String path = "F:\\Users\\Isuzu\\Desktop\\test.zip";
// unzip(new File(path), "D:\\data");
}
......
......@@ -22,6 +22,8 @@ public interface AppService extends ICRUDService<AppEntity, Long> {
Rest<String> appDistribute(AppEntity appEntity, Context context);
Rest<Void> appCommonDistribute(AppEntity appEntity, Context context);
Rest<String> cloneAppsBySites(List<AppEntity> appList, List<SiteEntity> siteList, Context context);
......
......@@ -2,6 +2,7 @@ package com.mortals.xhx.module.app.service.impl;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.mortals.framework.model.DbMatchMode;
......@@ -62,16 +63,16 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L
@Override
protected void findAfter(AppEntity params, PageInfo pageInfo, Context context, List<AppEntity> list) throws AppException {
//排序
if(!ObjectUtils.isEmpty(params.getIdList())){
if (!ObjectUtils.isEmpty(params.getIdList())) {
//根据idList进行排序
for (int i = 0; i < params.getIdList().size(); i++) {
Long id = params.getIdList().get(i);
for (int j = 0; j < list.size(); j++) {
if(id.equals(list.get(j).getId())){
if (id.equals(list.get(j).getId())) {
//判断位置是否一直
if(i!=j){
if (i != j) {
//交换
Collections.swap(list,i,j);
Collections.swap(list, i, j);
}
}
}
......@@ -109,8 +110,8 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L
if (FileUtil.isDirectory(disPath)) {
FileUtil.del(disPath);
}
ZipUtils.unzip(new File(targetFilePath), disPath);
// ZipUtil.unzip(targetFilePath, disPath);
//ZipUtils.unzip(new File(targetFilePath), disPath);
ZipUtil.unzip(targetFilePath, disPath);
//更新
appEntity.setDistributeFilePath(disPath);
appEntity.setDistribute(YesNoEnum.YES.getValue());
......@@ -119,6 +120,30 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L
return Rest.ok("应用部署成功!");
}
@Override
public Rest<Void> appCommonDistribute(AppEntity appEntity, Context context) {
//判断文件是否存在
String targetFilePath = uploadService.getFilePath(appEntity.getFilePath());
if (FileUtil.isEmpty(new File(targetFilePath))) {
throw new AppException("部署文件不存在!");
}
if (!FileUtil.getSuffix(appEntity.getFilePath()).equals("zip")) {
throw new AppException("部署只支持zip文件!");
}
//部署路径是否存在 如果不存在 创建目录,
//文件构成目录 /home/publish/app/common
String disPath = "/home/publish/app/common";
//判断目标目录是否存在 如果存在 这删除
if (FileUtil.isDirectory(disPath)) {
FileUtil.del(disPath);
}
// ZipUtils.unzip(new File(targetFilePath), disPath);
ZipUtil.unzip(targetFilePath, disPath);
return Rest.ok("基础应用部署成功!");
}
@Override
public Rest<String> cloneAppsBySites(List<AppEntity> appList, List<SiteEntity> siteList, Context context) {
log.info("克隆应用开始!");
......@@ -319,6 +344,6 @@ public class AppServiceImpl extends AbstractCRUDServiceImpl<AppDao, AppEntity, L
}
public static void main(String[] args) {
}
}
\ No newline at end of file
package com.mortals.xhx.module.app.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.model.Context;
......@@ -70,7 +71,8 @@ public class AppVersionServiceImpl extends AbstractCRUDServiceImpl<AppVersionDao
if (FileUtil.isDirectory(disPath)) {
FileUtil.del(disPath);
}
ZipUtils.unzip(new File(targetFilePath), disPath);
// ZipUtils.unzip(new File(targetFilePath), disPath);
ZipUtil.unzip(targetFilePath, disPath);
return disPath;
}
......
package com.mortals.xhx.module.app.web;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.ZipUtil;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
......@@ -57,8 +58,6 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService,
}
@Override
protected int infoAfter(Long id, Map<String, Object> model, AppEntity entity, Context context) throws AppException {
List<AppEntity> appEntityList = this.service.find(new AppQuery().appCode(entity.getAppCode()), context);
......@@ -67,22 +66,13 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService,
return super.infoAfter(id, model, entity, context);
}
@Override
protected int doListAfter(AppEntity query, Map<String, Object> model, Context context) throws AppException {
//model.get("result")
return super.doListAfter(query, model, context);
}
/**
* app应用部署
*/
@PostMapping(value = "appDistribute")
public Rest<Void> appDistribute(@RequestBody AppEntity appEntity) {
public Rest<String> appDistribute(@RequestBody AppEntity appEntity) {
String busiDesc = this.getModuleDesc() + "自助服务应用部署";
Rest<Void> rest = Rest.ok(busiDesc + " 【成功】");
Rest<String> rest = Rest.ok(busiDesc + " 【成功】");
try {
if (ObjectUtils.isEmpty(appEntity.getId())) {
throw new AppException("应用Id不能为空!");
......@@ -91,7 +81,7 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService,
if (ObjectUtils.isEmpty(appEntity)) {
throw new AppException("当前应用不存在!appId:" + appEntity.getId());
}
Rest<String> disRest = this.service.appDistribute(appEntity, getContext());
rest = this.service.appDistribute(appEntity, getContext());
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("自助服务应用部署", e);
......@@ -100,6 +90,23 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService,
return rest;
}
/**
* app基础应用部署
*/
@PostMapping(value = "appCommonDistribute")
public Rest<Void> appCommonDistribute(@RequestBody AppEntity appEntity) {
String busiDesc = this.getModuleDesc() + "自助服务应用部署";
Rest<Void> rest = Rest.ok(busiDesc + " 【成功】");
try {
rest = this.service.appCommonDistribute(appEntity, getContext());
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
log.error("基础服务应用部署", e);
rest = Rest.fail(super.convertException(e));
}
return rest;
}
/**
* app应用克隆给其它站点
......@@ -130,10 +137,13 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService,
public static void main(String[] args) {
String homeUrl = "app/1/2";
/* String homeUrl = "app/1/2";
String domainUrl = "http://192.168.0.98:11078";
String s = UrlBuilder.of(domainUrl).addPath("app").addPath("1").addPath("2").toString();
System.out.println(s);
System.out.println(s);*/
ZipUtil.unzip("F://1672973316144.zip","E://abc");
}
......
......@@ -148,8 +148,8 @@ setup_java() {
#yum -y remove tzdata-java.noarch
else
writelog "ubuntu java clear"
apt-get purge openjdk*
apt-get purge icedtea-* openjdk-*
#apt-get -y purge openjdk*
#apt-get -y purge icedtea-* openjdk-*
fi
rm -rf ${JAVA_HOME}
mkdir -p ${JAVA_HOME}
......@@ -224,7 +224,18 @@ setup_mysql() {
mkdir -p ${MYSQL_EXECPATH}/mysql-files
groupadd mysql
useradd -r -g mysql mysql
system_version=$(unix_is_centos)
if [[ ${system_version} == "centos" ]]; then
writelog "centos"
yum -y install libncurses*
# yum -y remove java-*-openjdk* #卸载centos中的openjdk
#yum -y remove tzdata-java.noarch
else
writelog "ubuntu"
apt -y install libncurses*
#apt-get purge openjdk*
#apt-get purge icedtea-* openjdk-*
fi
writelog "exccmd tar -zvxf ${BASEDIR}/soft/${MYSQL}/${MYSQL_CENTOS_FILENAME} -C ${MYSQL_EXECPATH} --strip-components 1"
tar -zvxf ${BASEDIR}/soft/${MYSQL}/${MYSQL_CENTOS_FILENAME} -C ${MYSQL_EXECPATH} --strip-components 1
cd ${MYSQL_EXECPATH}
......@@ -232,19 +243,30 @@ setup_mysql() {
chmod 750 mysql-file
echo "[mysqld]
datadir=${MYSQL_DATA_PATH}
port = ${MYSQL_PORT}
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=1
#忽略密码
skip-grant-tables
datadir=${MYSQL_DATA_PATH}
socket=/tmp/mysql.sock
port = ${MYSQL_PORT}
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=1
#忽略密码
skip-grant-tables
[client]
default-character-set=utf8
socket=/tmp/mysql.sock
[mysql]
default-character-set=utf8
socket=/tmp/mysql.sock
" >${MYSQL_CONF_PATH}
#初始化
bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH}
writelog "mysql init cmd: bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock"
bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock
#bin/mysqld --initialize-insecure --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock
#创建软连接
ln -s ${MYSQL_EXECPATH}/support-files/mysql.server /etc/init.d/mysql
......@@ -252,7 +274,7 @@ setup_mysql() {
export PATH=$PATH:${MYSQL_EXECPATH}/bin
source /etc/profile
service mysql restart
mysql -uroot -p123 <${BASEDIR}/soft/${MYSQL}/user.sql
mysql -uroot -p <${BASEDIR}/soft/${MYSQL}/user.sql
sed -i "s/skip-grant-tables/#skip-grant-tables/g" ${MYSQL_CONF_PATH}
service mysql restart
......@@ -304,7 +326,7 @@ setup_nginx() {
else
writelog "ubuntu nginx clear"
apt-get purge nginx*
apt-get -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++
apt-get -y install build-essential openssl libssl-dev libpcre3 libpcre3-dev zlib1g zlib1g-dev
fi
rm -rf ${NGINX_EXECPATH}
......@@ -313,6 +335,7 @@ setup_nginx() {
tar -zvxf ${BASEDIR}/soft/${NGINX}/${NGINX_FILENAME} -C ${NGINX_EXECPATH} --strip-components 1
cd ${NGINX_EXECPATH}
#./configure --prefix=${NGINX_EXECPATH} --conf-path=${NGINX_CONF} --with-pcre=/home/pcre-8.45
./configure --prefix=${NGINX_EXECPATH} --conf-path=${NGINX_CONF}
writelog "nginx make start"
make
......
......@@ -38,7 +38,6 @@
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
......
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