From 15687cad80c6e9449855be6d126a74e9fde1fea5 Mon Sep 17 00:00:00 2001
From: "1378012178@qq.com" <1378012178@qq.com>
Date: Mon, 7 Apr 2025 14:50:02 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81app=E7=89=88=E6=9C=AC=E7=AE=A1?=
=?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD=202=E3=80=81=E5=A2=9E=E5=8A=A0uat?=
=?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
nursing-unit-admin/nu-admin-biz/pom.xml | 7 +-
.../AppVersionConfigController.java | 156 ++++++++
.../entity/AppVersionConfig.java | 77 ++++
.../mapper/AppVersionConfigMapper.java | 15 +
.../mapper/xml/AppVersionConfigMapper.xml | 9 +
.../service/IAppVersionConfigService.java | 14 +
.../impl/AppVersionConfigApiServiceImpl.java | 32 ++
.../impl/AppVersionConfigServiceImpl.java | 18 +
nursing-unit-api/pom.xml | 21 ++
.../api/VersionUpdateApi.java | 73 ++++
.../appversionconfig/entity/AppConfig.java | 22 ++
.../pad/appversionconfig/entity/R.java | 50 +++
.../appversionconfig/entity/VersionInfo.java | 19 +
.../service/IAppConfigService.java | 7 +
.../org/jeecg/config/shiro/ShiroConfig.java | 2 +-
nursing-unit-system/nu-system-start/pom.xml | 7 +-
.../src/main/resources/application-dev.yml | 4 +-
.../src/main/resources/application-uat.yml | 339 ++++++++++++++++++
pom.xml | 24 ++
19 files changed, 891 insertions(+), 5 deletions(-)
create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/controller/AppVersionConfigController.java
create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/entity/AppVersionConfig.java
create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/mapper/AppVersionConfigMapper.java
create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/mapper/xml/AppVersionConfigMapper.xml
create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/IAppVersionConfigService.java
create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/impl/AppVersionConfigApiServiceImpl.java
create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/impl/AppVersionConfigServiceImpl.java
create mode 100644 nursing-unit-api/pom.xml
create mode 100644 nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/api/VersionUpdateApi.java
create mode 100644 nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/AppConfig.java
create mode 100644 nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/R.java
create mode 100644 nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/VersionInfo.java
create mode 100644 nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/service/IAppConfigService.java
create mode 100644 nursing-unit-system/nu-system-start/src/main/resources/application-uat.yml
diff --git a/nursing-unit-admin/nu-admin-biz/pom.xml b/nursing-unit-admin/nu-admin-biz/pom.xml
index 020a5ba..fa319c6 100644
--- a/nursing-unit-admin/nu-admin-biz/pom.xml
+++ b/nursing-unit-admin/nu-admin-biz/pom.xml
@@ -29,7 +29,12 @@
org.jeecgframework
weixin4j
-
+
+
+ com.nursingunit.boot
+ nursing-unit-api
+ ${nursingunit.version}
+
diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/controller/AppVersionConfigController.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/controller/AppVersionConfigController.java
new file mode 100644
index 0000000..0434d9d
--- /dev/null
+++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/controller/AppVersionConfigController.java
@@ -0,0 +1,156 @@
+package com.nu.modules.appversionconfig.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.nu.modules.appversionconfig.entity.AppVersionConfig;
+import com.nu.modules.appversionconfig.service.IAppVersionConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+ /**
+ * @Description: app版本记录
+ * @Author: jeecg-boot
+ * @Date: 2025-04-07
+ * @Version: V1.0
+ */
+@Api(tags="app版本记录")
+@RestController
+@RequestMapping("/appVersionConfig/appVersionConfig")
+@Slf4j
+public class AppVersionConfigController extends JeecgController {
+ @Autowired
+ private IAppVersionConfigService appVersionConfigService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param appVersionConfig
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ //@AutoLog(value = "app版本记录-分页列表查询")
+ @ApiOperation(value="app版本记录-分页列表查询", notes="app版本记录-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(AppVersionConfig appVersionConfig,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(appVersionConfig, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = appVersionConfigService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加
+ *
+ * @param appVersionConfig
+ * @return
+ */
+ @AutoLog(value = "app版本记录-添加")
+ @ApiOperation(value="app版本记录-添加", notes="app版本记录-添加")
+ @PostMapping(value = "/add")
+ public Result add(@RequestBody AppVersionConfig appVersionConfig) {
+ appVersionConfigService.save(appVersionConfig);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param appVersionConfig
+ * @return
+ */
+ @AutoLog(value = "app版本记录-编辑")
+ @ApiOperation(value="app版本记录-编辑", notes="app版本记录-编辑")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result edit(@RequestBody AppVersionConfig appVersionConfig) {
+ appVersionConfigService.updateById(appVersionConfig);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "app版本记录-通过id删除")
+ @ApiOperation(value="app版本记录-通过id删除", notes="app版本记录-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result delete(@RequestParam(name="id",required=true) String id) {
+ appVersionConfigService.removeById(id);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "app版本记录-批量删除")
+ @ApiOperation(value="app版本记录-批量删除", notes="app版本记录-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.appVersionConfigService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ //@AutoLog(value = "app版本记录-通过id查询")
+ @ApiOperation(value="app版本记录-通过id查询", notes="app版本记录-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result queryById(@RequestParam(name="id",required=true) String id) {
+ AppVersionConfig appVersionConfig = appVersionConfigService.getById(id);
+ if(appVersionConfig==null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(appVersionConfig);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param appVersionConfig
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, AppVersionConfig appVersionConfig) {
+ return super.exportXls(request, appVersionConfig, AppVersionConfig.class, "app版本记录");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, AppVersionConfig.class);
+ }
+
+}
diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/entity/AppVersionConfig.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/entity/AppVersionConfig.java
new file mode 100644
index 0000000..8d94def
--- /dev/null
+++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/entity/AppVersionConfig.java
@@ -0,0 +1,77 @@
+package com.nu.modules.appversionconfig.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import org.jeecg.common.constant.ProvinceCityArea;
+import org.jeecg.common.util.SpringContextUtils;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: app版本记录
+ * @Author: jeecg-boot
+ * @Date: 2025-04-07
+ * @Version: V1.0
+ */
+@Data
+@TableName("nu_app_version_config")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="nu_app_version_config对象", description="app版本记录")
+public class AppVersionConfig implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**主键*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+ /**版本号*/
+ @Excel(name = "版本号", width = 15)
+ @ApiModelProperty(value = "版本号")
+ private String versionCode;
+ /**下载地址*/
+ @Excel(name = "下载地址", width = 15)
+ @ApiModelProperty(value = "下载地址")
+ private String versionUrl;
+ /**更新说明*/
+ @Excel(name = "更新说明", width = 15)
+ @ApiModelProperty(value = "更新说明")
+ private String updateTrips;
+ /**是否强制更新 0-否 1-是*/
+ @Excel(name = "是否强制更新 0-否 1-是", width = 15)
+ @ApiModelProperty(value = "是否强制更新 0-否 1-是")
+ private Integer isForceUpdate;
+ /**创建者*/
+ @ApiModelProperty(value = "创建者")
+ private String createBy;
+ /**创建时间*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建时间")
+ private Date createTime;
+ /**更新者*/
+ @ApiModelProperty(value = "更新者")
+ private String updateBy;
+ /**更新时间*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新时间")
+ private Date updateTime;
+ /**状态 0-不可用 1-可用*/
+ @Excel(name = "状态 0-不可用 1-可用", width = 15)
+ @ApiModelProperty(value = "状态 0-不可用 1-可用")
+ private Integer status;
+}
diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/mapper/AppVersionConfigMapper.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/mapper/AppVersionConfigMapper.java
new file mode 100644
index 0000000..63df195
--- /dev/null
+++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/mapper/AppVersionConfigMapper.java
@@ -0,0 +1,15 @@
+package com.nu.modules.appversionconfig.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.nu.modules.appversionconfig.entity.AppVersionConfig;
+import com.nu.modules.pad.appversionconfig.entity.AppConfig;
+
+/**
+ * @Description: app版本记录
+ * @Author: jeecg-boot
+ * @Date: 2025-04-07
+ * @Version: V1.0
+ */
+public interface AppVersionConfigMapper extends BaseMapper {
+ AppVersionConfig findLastVersionInfo();
+}
diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/mapper/xml/AppVersionConfigMapper.xml b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/mapper/xml/AppVersionConfigMapper.xml
new file mode 100644
index 0000000..5cdbece
--- /dev/null
+++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/mapper/xml/AppVersionConfigMapper.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/IAppVersionConfigService.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/IAppVersionConfigService.java
new file mode 100644
index 0000000..efcba13
--- /dev/null
+++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/IAppVersionConfigService.java
@@ -0,0 +1,14 @@
+package com.nu.modules.appversionconfig.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.nu.modules.appversionconfig.entity.AppVersionConfig;
+
+/**
+ * @Description: app版本记录
+ * @Author: jeecg-boot
+ * @Date: 2025-04-07
+ * @Version: V1.0
+ */
+public interface IAppVersionConfigService extends IService {
+
+}
diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/impl/AppVersionConfigApiServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/impl/AppVersionConfigApiServiceImpl.java
new file mode 100644
index 0000000..f1437d1
--- /dev/null
+++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/impl/AppVersionConfigApiServiceImpl.java
@@ -0,0 +1,32 @@
+package com.nu.modules.appversionconfig.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nu.modules.appversionconfig.entity.AppVersionConfig;
+import com.nu.modules.appversionconfig.mapper.AppVersionConfigMapper;
+import com.nu.modules.appversionconfig.service.IAppVersionConfigService;
+import com.nu.modules.pad.appversionconfig.entity.AppConfig;
+import com.nu.modules.pad.appversionconfig.service.IAppConfigService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: app版本记录
+ * @Author: jeecg-boot
+ * @Date: 2025-04-07
+ * @Version: V1.0
+ */
+@Service
+public class AppVersionConfigApiServiceImpl extends ServiceImpl implements IAppConfigService {
+
+ @Autowired
+ private AppVersionConfigMapper mapper;
+
+ @Override
+ public AppConfig findLastVersionInfo() {
+ AppVersionConfig lastVersionInfo = mapper.findLastVersionInfo();
+ AppConfig appConfig = new AppConfig();
+ BeanUtils.copyProperties(lastVersionInfo,appConfig);
+ return appConfig;
+ }
+}
diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/impl/AppVersionConfigServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/impl/AppVersionConfigServiceImpl.java
new file mode 100644
index 0000000..3c695d0
--- /dev/null
+++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/appversionconfig/service/impl/AppVersionConfigServiceImpl.java
@@ -0,0 +1,18 @@
+package com.nu.modules.appversionconfig.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.nu.modules.appversionconfig.entity.AppVersionConfig;
+import com.nu.modules.appversionconfig.mapper.AppVersionConfigMapper;
+import com.nu.modules.appversionconfig.service.IAppVersionConfigService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: app版本记录
+ * @Author: jeecg-boot
+ * @Date: 2025-04-07
+ * @Version: V1.0
+ */
+@Service
+public class AppVersionConfigServiceImpl extends ServiceImpl implements IAppVersionConfigService {
+
+}
diff --git a/nursing-unit-api/pom.xml b/nursing-unit-api/pom.xml
new file mode 100644
index 0000000..b1aafac
--- /dev/null
+++ b/nursing-unit-api/pom.xml
@@ -0,0 +1,21 @@
+
+
+
+ com.nursingunit.boot
+ nursing-unit-parent
+ 2.0.0
+
+ 接口模块
+ 4.0.0
+ nursing-unit-api
+
+
+
+ com.nursingunit.boot
+ nursing-unit-base-core
+ 2.0.0
+
+
+
diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/api/VersionUpdateApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/api/VersionUpdateApi.java
new file mode 100644
index 0000000..124ff85
--- /dev/null
+++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/api/VersionUpdateApi.java
@@ -0,0 +1,73 @@
+package com.nu.modules.pad.appversionconfig.api;
+
+import cn.hutool.core.util.StrUtil;
+import com.nu.modules.pad.appversionconfig.entity.AppConfig;
+import com.nu.modules.pad.appversionconfig.entity.R;
+import com.nu.modules.pad.appversionconfig.entity.VersionInfo;
+import com.nu.modules.pad.appversionconfig.service.IAppConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/pad")
+@CrossOrigin("*")
+public class VersionUpdateApi {
+
+ @Autowired
+ private IAppConfigService appConfigService;
+ /**
+ * APP版本更新
+ * 请求参数中其实不止传递了一下四个,更多请看插件市场作者的文档,https://ext.dcloud.net.cn/plugin?id=3931
+ * @param platform 平台(android/ios)
+ * @param name 应用名称
+ * @param version 应用版本名称 主版本号.次版本号.修订号
+ * @param code 应用版本号
+ * @return
+ */
+ @RequestMapping("/versionUpdate")
+ public R check(String platform,String name,String version,String code) {
+ Map map = new HashMap<>();
+ VersionInfo info = new VersionInfo();
+ info.setUpdate_flag(0);
+ map.put("code", 100);
+ map.put("data", info);
+ AppConfig appConfig = appConfigService.findLastVersionInfo();
+ if(appConfig ==null) {
+ map.put("msg", "无版本配置信息");
+ return R.ok(map);
+ }
+ if(!StrUtil.isEmptyIfStr(version) && !StrUtil.isEmptyIfStr(platform)) {
+ int[] oldVers = StrUtil.splitToInt(version, ".");
+ int[] newVers = StrUtil.splitToInt(appConfig.getVersionCode(), ".");
+ boolean isUpdateFlag = false;
+ int length = oldVers.length > newVers.length ? newVers.length : oldVers.length;
+ for (int i = 0; i < length; i++) {
+ if(newVers[i] > oldVers[i]) {
+ isUpdateFlag = true;
+ break;
+ }
+ }
+ if(isUpdateFlag) {
+ info.setUpdate_flag(1);//0:不需要更新,1:需要更新
+ info.setVersion(appConfig.getVersionCode());
+ info.setUpdate_url(appConfig.getVersionUrl());
+ info.setUpdate_tips(appConfig.getUpdateTrips());
+ info.setForceupdate(appConfig.getIsForceUpdate());
+ map.put("code", 100);
+ map.put("msg", "应用程序需要更新");
+ map.put("data", info);
+ }
+ return R.ok(map);
+ }else {
+ map.put("code", 500);
+ map.put("msg", "请求参数不含版本号、平台");
+ map.put("data", info);
+ return R.ok(map);
+ }
+ }
+}
diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/AppConfig.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/AppConfig.java
new file mode 100644
index 0000000..fa819aa
--- /dev/null
+++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/AppConfig.java
@@ -0,0 +1,22 @@
+package com.nu.modules.pad.appversionconfig.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class AppConfig {
+
+ private int id;//唯一标识
+ private String versionCode;//版本号
+ private String versionUrl;//下载地址
+ private String updateTrips;//更新说明
+ private int isForceUpdate;//是否强制更新 0:否,1:是
+ private String createBy;//创建者
+ private Date createTime;//创建时间
+ private String updateBy;//更新者
+ private Date updateTime;//更新时间
+ private int status;//状态 0:不可以,1:可用
+
+
+}
diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/R.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/R.java
new file mode 100644
index 0000000..415624e
--- /dev/null
+++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/R.java
@@ -0,0 +1,50 @@
+package com.nu.modules.pad.appversionconfig.entity;
+import java.util.HashMap;
+import java.util.Map;
+
+
+public class R extends HashMap {
+
+ private static final long serialVersionUID = 1L;
+
+ public R() {
+ put("code", 0);
+ }
+
+ public static R error() {
+ return error(500, "未知异常,请联系管理员");
+ }
+
+ public static R error(String msg) {
+ return error(500, msg);
+ }
+
+ public static R error(int code, String msg) {
+ R r = new R();
+ r.put("code", code);
+ r.put("msg", msg);
+ return r;
+ }
+
+ public static R ok(String msg) {
+ R r = new R();
+ r.put("msg", msg);
+ return r;
+ }
+
+ public static R ok(Map map) {
+ R r = new R();
+ r.putAll(map);
+ return r;
+ }
+
+ public static R ok() {
+ return new R();
+ }
+
+ @Override
+ public R put(String key, Object value) {
+ super.put(key, value);
+ return this;
+ }
+}
diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/VersionInfo.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/VersionInfo.java
new file mode 100644
index 0000000..bce0f5b
--- /dev/null
+++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/entity/VersionInfo.java
@@ -0,0 +1,19 @@
+package com.nu.modules.pad.appversionconfig.entity;
+
+import lombok.Data;
+
+/**
+ * 该实体是基于uniapp插件市场,APP版本升级插件所要求的响应格式定义的参数
+ * 插件地址:https://ext.dcloud.net.cn/plugin?id=3931
+ */
+@Data
+public class VersionInfo {
+ private int update_flag;// 0 不需要升级,1 需要升级
+ private String update_url;//升级安装包或 appstore 地址,注意是全路径
+ private int forceupdate;//0 不强制,1 强制升级(这个字段以后可能会优化到 update_flag 里)
+ private String update_tips;//升级说明,不用我提醒大家换行应该用\n 了吧?
+ private String version;//当前最新的版本
+ private int size;//备用吧,有些服务器启用了 gzip 或者直接返回流数据,会造成客户端获取不到安装包大小,进度条将会失效。用这个字段来计算进度。单位是字节。
+ private int wgt_flag;//1.0.3后新增参数,1为增量升级,0为非增量升级
+ private String wgt_url;//1.0.3后新增参数,如果wgt_flag=1,则这个参数就是增量包的地址,注意是全路径
+}
diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/service/IAppConfigService.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/service/IAppConfigService.java
new file mode 100644
index 0000000..056f1af
--- /dev/null
+++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/appversionconfig/service/IAppConfigService.java
@@ -0,0 +1,7 @@
+package com.nu.modules.pad.appversionconfig.service;
+
+import com.nu.modules.pad.appversionconfig.entity.AppConfig;
+
+public interface IAppConfigService {
+ public AppConfig findLastVersionInfo();
+}
diff --git a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
index 5e22e34..e9d534f 100644
--- a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
+++ b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -108,7 +108,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/sys/getLoginQrcode/**", "anon"); //登录二维码
filterChainDefinitionMap.put("/sys/getQrcodeToken/**", "anon"); //监听扫码
filterChainDefinitionMap.put("/sys/checkAuth", "anon"); //授权接口排除
- filterChainDefinitionMap.put("/dictType/dictType/abc", "anon");//TODO 待删除
+ filterChainDefinitionMap.put("/api/pad/versionUpdate", "anon");//pad端版本检测接口
//update-begin--Author:scott Date:20221116 for:排除静态资源后缀
filterChainDefinitionMap.put("/", "anon");
diff --git a/nursing-unit-system/nu-system-start/pom.xml b/nursing-unit-system/nu-system-start/pom.xml
index bd875dc..458fcda 100644
--- a/nursing-unit-system/nu-system-start/pom.xml
+++ b/nursing-unit-system/nu-system-start/pom.xml
@@ -48,7 +48,12 @@
nu-service-directive-biz
${nursingunit.version}
-
+
+
+ com.nursingunit.boot
+ nursing-unit-api
+ ${nursingunit.version}
+
org.flywaydb
diff --git a/nursing-unit-system/nu-system-start/src/main/resources/application-dev.yml b/nursing-unit-system/nu-system-start/src/main/resources/application-dev.yml
index 751cf61..c8aec9d 100644
--- a/nursing-unit-system/nu-system-start/src/main/resources/application-dev.yml
+++ b/nursing-unit-system/nu-system-start/src/main/resources/application-dev.yml
@@ -45,8 +45,8 @@ spring:
clean-disabled: true
servlet:
multipart:
- max-file-size: 10MB
- max-request-size: 10MB
+ max-file-size: 100MB
+ max-request-size: 100MB
mail:
# 定时任务发送邮件
timeJobSend: false
diff --git a/nursing-unit-system/nu-system-start/src/main/resources/application-uat.yml b/nursing-unit-system/nu-system-start/src/main/resources/application-uat.yml
new file mode 100644
index 0000000..ee98768
--- /dev/null
+++ b/nursing-unit-system/nu-system-start/src/main/resources/application-uat.yml
@@ -0,0 +1,339 @@
+server:
+ port: 8080
+ tomcat:
+ max-swallow-size: -1
+ error:
+ include-exception: true
+ include-stacktrace: ALWAYS
+ include-message: ALWAYS
+ servlet:
+ context-path: /nursing-unit
+ compression:
+ enabled: true
+ min-response-size: 1024
+ mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*
+
+management:
+ endpoints:
+ web:
+ exposure:
+ include: metrics,jeecghttptrace
+
+spring:
+ # flyway配置
+ flyway:
+ # 是否启用flyway
+ enabled: false
+ # 编码格式,默认UTF-8
+ encoding: UTF-8
+ # 迁移sql脚本文件存放路径,官方默认db/migration
+ locations: classpath:flyway/sql/mysql
+ # 迁移sql脚本文件名称的前缀,默认V
+ sql-migration-prefix: V
+ # 迁移sql脚本文件名称的分隔符,默认2个下划线__
+ sql-migration-separator: __
+ # 避免带${}sql执行失败
+ placeholder-prefix: '#('
+ placeholder-suffix: )
+ # 迁移sql脚本文件名称的后缀
+ sql-migration-suffixes: .sql
+ # 迁移时是否进行校验,默认true
+ validate-on-migrate: true
+ # 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
+ baseline-on-migrate: true
+ # 是否关闭要清除已有库下的表功能,生产环境必须为true,否则会删库,非常重要!!!
+ clean-disabled: true
+ servlet:
+ multipart:
+ max-file-size: 10MB
+ max-request-size: 10MB
+ mail:
+ # 定时任务发送邮件
+ timeJobSend: false
+ host: smtp.163.com
+ username: jeecgos@163.com
+ password: ??
+ properties:
+ mail:
+ smtp:
+ auth: true
+ starttls:
+ enable: true
+ required: true
+ ## quartz定时任务,采用数据库方式
+ quartz:
+ job-store-type: jdbc
+ initialize-schema: embedded
+ #定时任务启动开关,true-开 false-关
+ auto-startup: true
+ #延迟1秒启动定时任务
+ startup-delay: 1s
+ #启动时更新己存在的Job
+ overwrite-existing-jobs: true
+ properties:
+ org:
+ quartz:
+ scheduler:
+ instanceName: MyScheduler
+ instanceId: AUTO
+ jobStore:
+ class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
+ driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+ tablePrefix: QRTZ_
+ isClustered: true
+ misfireThreshold: 12000
+ clusterCheckinInterval: 15000
+ threadPool:
+ class: org.quartz.simpl.SimpleThreadPool
+ threadCount: 10
+ threadPriority: 5
+ threadsInheritContextClassLoaderOfInitializingThread: true
+ #json 时间戳统一转换
+ jackson:
+ date-format: yyyy-MM-dd HH:mm:ss
+ time-zone: GMT+8
+ jpa:
+ open-in-view: false
+ aop:
+ proxy-target-class: true
+ #配置freemarker
+ freemarker:
+ # 设置模板后缀名
+ suffix: .ftl
+ # 设置文档类型
+ content-type: text/html
+ # 设置页面编码格式
+ charset: UTF-8
+ # 设置页面缓存
+ cache: false
+ prefer-file-system-access: false
+ # 设置ftl文件路径
+ template-loader-path:
+ - classpath:/templates
+ template_update_delay: 0
+ # 设置静态文件路径,js,css等
+ mvc:
+ static-path-pattern: /**
+ #Spring Boot 2.6+后映射匹配的默认策略已从AntPathMatcher更改为PathPatternParser,需要手动指定为ant-path-matcher
+ pathmatch:
+ matching-strategy: ant_path_matcher
+ resource:
+ static-locations: classpath:/static/,classpath:/public/
+ autoconfigure:
+ exclude:
+ - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+ - org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration
+ datasource:
+ druid:
+ stat-view-servlet:
+ enabled: true
+ loginUsername: admin
+ loginPassword: 123456
+ allow:
+ web-stat-filter:
+ enabled: true
+ dynamic:
+ druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
+ # 连接池的配置信息
+ # 初始化大小,最小,最大
+ initial-size: 5
+ min-idle: 5
+ maxActive: 1000
+ # 配置获取连接等待超时的时间
+ maxWait: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 3600000
+ validationQuery: SELECT 1
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ # 打开PSCache,并且指定每个连接上PSCache的大小
+ poolPreparedStatements: true
+ maxPoolPreparedStatementPerConnectionSize: 20
+ # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+ filters: stat,wall,slf4j
+ # 允许SELECT语句的WHERE子句是一个永真条件
+ wall:
+ selectWhereAlwayTrueCheck: false
+ # 打开mergeSql功能;慢SQL记录
+ stat:
+ merge-sql: true
+ slow-sql-millis: 5000
+ datasource:
+ master:
+ url: jdbc:mysql://localhost:40521/nursing_unit?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+ # url: jdbc:mysql://localhost:3306/nursing_unit_001?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+ username: root
+ password: BLXC@123.
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ # 多数据源配置
+ #multi-datasource1:
+ #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+ #username: root
+ #password: root
+ #driver-class-name: com.mysql.cj.jdbc.Driver
+ #redis 配置
+ redis:
+ database: 0
+ host: 127.0.0.1
+ port: 6379
+ password:
+#mybatis plus 设置
+mybatis-plus:
+ mapper-locations: classpath*:org/jeecg/**/xml/*Mapper.xml,classpath*:com/nu/**/xml/*Mapper.xml
+ global-config:
+ # 关闭MP3.0自带的banner
+ banner: false
+ db-config:
+ #主键类型 0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)";
+ id-type: ASSIGN_ID
+ # 默认数据库表下划线命名
+ table-underline: true
+ configuration:
+ # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ # 返回类型为Map,显示null对应的字段
+ call-setters-on-nulls: true
+#jeecg专用配置
+minidao:
+ base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*
+jeecg:
+ # AI集成
+ ai-chat:
+ enabled: true
+ model: deepseek-chat
+ apiKey: ??
+ apiHost: https://api.deepseek.com
+ timeout: 60
+ # 平台上线安全配置
+ firewall:
+ # 数据源安全 (开启后,Online报表和图表的数据源为必填)
+ dataSourceSafe: false
+ # 低代码模式(dev:开发模式,prod:发布模式——关闭所有在线开发配置能力)
+ lowCodeMode: dev
+ # 签名密钥串(前后端要一致,正式发布请自行修改)
+ signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a
+ #签名拦截接口
+ signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys,/sys/sendChangePwdSms,/sys/user/sendChangePhoneSms,/sys/sms,/desform/api/sendVerifyCode
+ # 本地:local、Minio:minio、阿里云:alioss
+ uploadType: local
+ # 前端访问地址
+ domainUrl:
+ pc: http://localhost:3100
+ app: http://localhost:8051
+ path:
+ #文件上传根目录 设置
+ upload: /opt/upFiles
+ #webapp文件路径
+ webapp: /opt/webapp
+ shiro:
+ excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/bigscreen/category/**,/bigscreen/visual/**,/bigscreen/map/**,/jmreport/bigscreen2/**
+ #阿里云oss存储和大鱼短信秘钥配置
+ oss:
+ accessKey: ??
+ secretKey: ??
+ endpoint: oss-cn-beijing.aliyuncs.com
+ bucketName: jeecgdev
+ # 短信模板
+ sms-template:
+ # 签名
+ signature:
+ # 模板code
+ templateCode:
+ # 登录短信、忘记密码模板编码
+ SMS_175435174:
+ # 修改密码短信模板编码
+ SMS_465391221:
+ # 注册账号短信模板编码
+ SMS_175430166:
+ # 在线预览文件服务器地址配置
+ file-view-domain: http://fileview.jeecg.com
+ # minio文件上传
+ minio:
+ minio_url: http://minio.jeecg.com
+ minio_name: ??
+ minio_pass: ??
+ bucketName: otatest
+ #大屏报表参数设置
+ jmreport:
+ #多租户模式,默认值为空(created:按照创建人隔离、tenant:按照租户隔离) (v1.6.2+ 新增)
+ saasMode:
+ # 平台上线安全配置(v1.6.2+ 新增)
+ firewall:
+ # 数据源安全 (开启后,不允许使用平台数据源、SQL解析加签并且不允许查询数据库)
+ dataSourceSafe: false
+ # 低代码开发模式(dev:开发模式,prod:发布模式—关闭在线报表设计功能,分配角色admin、lowdeveloper可以放开限制)
+ lowCodeMode: dev
+ #xxl-job配置
+ xxljob:
+ enabled: false
+ adminAddresses: http://127.0.0.1:9080/xxl-job-admin
+ appname: ${spring.application.name}
+ accessToken: ''
+ address: 127.0.0.1:30007
+ ip: 127.0.0.1
+ port: 30007
+ logPath: logs/jeecg/job/jobhandler/
+ logRetentionDays: 30
+ #分布式锁配置
+ redisson:
+ address: 127.0.0.1:6379
+ password:
+ type: STANDALONE
+ enabled: true
+ # 百度开放API配置
+ baidu-api:
+ app-id: ??
+ api-key: ??
+ secret-key: ??
+ # ElasticSearch 6设置
+ elasticsearch:
+ cluster-name: jeecg-ES
+ cluster-nodes: 127.0.0.1:9200
+ check-enabled: false
+#cas单点登录
+cas:
+ prefixUrl: http://cas.example.org:8443/cas
+#Mybatis输出sql日志
+logging:
+ level:
+ org.flywaydb: debug
+ org.jeecg.modules.system.mapper: info
+ com.nu.modules.system.mapper: info
+#swagger
+knife4j:
+ #开启增强配置
+ enable: true
+ #开启生产环境屏蔽
+ production: false
+ basic:
+ enable: false
+ username: jeecg
+ password: jeecg1314
+#第三方登录
+justauth:
+ enabled: true
+ type:
+ GITHUB:
+ client-id: ??
+ client-secret: ??
+ redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/github/callback
+ WECHAT_ENTERPRISE:
+ client-id: ??
+ client-secret: ??
+ redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/wechat_enterprise/callback
+ agent-id: ??
+ DINGTALK:
+ client-id: ??
+ client-secret: ??
+ redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/dingtalk/callback
+ WECHAT_OPEN:
+ client-id: ??
+ client-secret: ??
+ redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/wechat_open/callback
+ cache:
+ type: default
+ prefix: 'demo::'
+ timeout: 1h
diff --git a/pom.xml b/pom.xml
index 4d49109..730a5df 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,6 +80,8 @@
nursing-unit-admin
nursing-unit-service-directive
+
+ nursing-unit-api
nursing-unit-system
@@ -510,6 +512,28 @@
+
+
+ uat
+
+
+ false
+
+
+
+ dev
+
+ jeecg-boot-nacos:8848
+
+
+
+ DEFAULT_GROUP
+
+
+
+
+
+
prod