From f41b3b53dad6a8468fc1ae9babb85a0270124d01 Mon Sep 17 00:00:00 2001
From: luliqiang <kidgrow>
Date: Mon, 28 Dec 2020 16:38:55 +0800
Subject: [PATCH] 修正影像版私有云数据库模板Bug 完善相关验证字符串的加密方式

---
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html                                                              |    2 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java |  347 ++++++++++++++++++++++++++------------
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql                                     |  142 +++++++--------
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java                                           |    6 
 4 files changed, 308 insertions(+), 189 deletions(-)

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java
index ce53cc6..66befdd 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java
@@ -3,14 +3,20 @@
 import cn.hutool.core.date.DateTime;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.constant.SecurityConstants;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.common.utils.EncryptUtils;
 import com.kidgrow.oprationcenter.mapper.PartnerDockingInfoMapper;
 import com.kidgrow.oprationcenter.model.PartnerDockingInfo;
 import com.kidgrow.oprationcenter.model.PartnerInfo;
+import com.kidgrow.oprationcenter.model.ProductOrder;
+import com.kidgrow.oprationcenter.model.ProductOrderRecord;
 import com.kidgrow.oprationcenter.service.IPartnerDockingInfoService;
 import com.kidgrow.oprationcenter.service.IPartnerInfoService;
+import com.kidgrow.oprationcenter.service.IProductOrderRecordService;
+import com.kidgrow.oprationcenter.service.IProductOrderService;
 import com.kidgrow.usercenter.feign.SysDepartmentService;
 import com.kidgrow.usercenter.feign.SysDoctorService;
 import com.kidgrow.usercenter.feign.SysHospitalService;
@@ -34,11 +40,12 @@
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @version 1.0
  * @Description: 合作商客户对接信息表<br>
  * @Project: 运营中心<br>
  * @CreateDate: Created in 2020-12-08 14:35:33 <br>
  * @Author: <a href="1024030301@kidgrow.com">LuLiQiang</a>
- * @version 1.0
  */
 @Slf4j
 @Service
@@ -59,36 +66,45 @@
     @Autowired
     IPartnerInfoService partnerInfoService;
 
+    @Autowired
+    IProductOrderService productOrderService;
+
+    @Autowired
+    IProductOrderRecordService productOrderRecordService;
+
     /**
      * 列表
+     *
      * @param params
      * @return
      */
     @Override
-    public PageResult<PartnerDockingInfo> findList(Map<String, Object> params){
+    public PageResult<PartnerDockingInfo> findList(Map<String, Object> params) {
         Page<PartnerDockingInfo> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
-        List<PartnerDockingInfo> list  =  baseMapper.findList(page, params);
+        List<PartnerDockingInfo> list = baseMapper.findList(page, params);
         return PageResult.<PartnerDockingInfo>builder().data(list).code(0).count(page.getTotal()).build();
     }
 
     /**
-   * 根据PartnerDockingInfo对象当做查询条件进行查询
-   * @param partnerDockingInfo
-   * @return PartnerDockingInfo
-   */
+     * 根据PartnerDockingInfo对象当做查询条件进行查询
+     *
+     * @param partnerDockingInfo
+     * @return PartnerDockingInfo
+     */
     @Override
-    public PartnerDockingInfo findByObject(PartnerDockingInfo partnerDockingInfo){
+    public PartnerDockingInfo findByObject(PartnerDockingInfo partnerDockingInfo) {
         return baseMapper.findByObject(partnerDockingInfo);
     }
 
 
     /**
      * 根据对接类型版本等信息,创建客户私有云数据库脚本
+     *
      * @param partnerDockingInfo
      * @return
      */
     @Override
-    public String createSQL( PartnerDockingInfo partnerDockingInfo ){
+    public String createSQL(PartnerDockingInfo partnerDockingInfo) {
         // 模板SQL文
         String dbSql = "";
         // 医院信息SQL文
@@ -100,10 +116,14 @@
         // 合作商信息SQL文
         String partnerSQL = "";
         // 服务器信息SQL文
-        String serverSQL= "";
-        InputStream fileImput =null;
+        String serverSQL = "";
+        // 服务期限和数量的SQL文
+        String serviceSQL = "";
 
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        InputStream fileImput = null;
+        // 时间转换格式
+        SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 
         String createTime = "";
         String updateTime = "";
@@ -114,67 +134,71 @@
             dbSql = FileUtils.readFile(fileImput);
 
             // 2、读取医院信息表Hospital_Info,插入SQL文中
-            Map<String,Object> hospitalMap = new HashMap<>();
-            hospitalMap.put("id",partnerDockingInfo.getHospitalId());
+            Map<String, Object> hospitalMap = new HashMap<>();
+            hospitalMap.put("id", partnerDockingInfo.getHospitalId());
             ResultBody hospitalResult = sysHospitalService.findAllByMap(hospitalMap);
 
-            if (hospitalResult.isOk()){
+            if (hospitalResult.isOk()) {
                 String jsonData = JSONObject.toJSONString(hospitalResult.getData());
-                List<SysHospital> hospitalLists= JSONObject.parseArray(jsonData,SysHospital.class);
-                if (hospitalLists.size()> 0) {
+                List<SysHospital> hospitalLists = JSONObject.parseArray(jsonData, SysHospital.class);
+                if (hospitalLists.size() > 0) {
                     SysHospital hospitalInfo = hospitalLists.get(0);
-                    createTime = simpleDateFormat.format(hospitalInfo.getCreateTime());
-                    updateTime = simpleDateFormat.format(hospitalInfo.getUpdateTime());
+                    createTime = "'" + dateTimeFormat.format(hospitalInfo.getCreateTime()) + "'";
+                    updateTime = (hospitalInfo.getUpdateTime() == null) ? "NULL" : "'" + dateTimeFormat.format(hospitalInfo.getUpdateTime())+ "'";
                     hospitalSQL = " INSERT INTO sys_hospital  VALUES (" +
                             hospitalInfo.getId() + ", " +
-                            "'" + hospitalInfo.getHospitalName()+ "', " +
-                            "'" + hospitalInfo.getHospitalShortName()+ "', " +
-                            "'" + hospitalInfo.getHospitalCode()+ "', " +
-                            "'" + hospitalInfo.getHospitalTypeId()+ "', " +
-                            "'" + hospitalInfo.getHospitalTypeName()+ "', " +
-                            "'" + hospitalInfo.getHospitalTel()+ "', " +
-                            "'" + hospitalInfo.getHospitalProvince()+ "', " +
-                            "'" + hospitalInfo.getHospitalCity()+ "', " +
-                            "'" + hospitalInfo.getHospitalArea()+ "', " +
-                            "'" + hospitalInfo.getAreaCode()+ "', " +
-                            "'" + hospitalInfo.getHospitalLink()+ "', " +
-                            "'" + hospitalInfo.getHospitalAdress()+ "', " +
-                            "'" + hospitalInfo.getLatitude()+ "', " +
-                            "'" + hospitalInfo.getLongitude()+ "', " +
-                            "'" + hospitalInfo.getHospitalQualifiedId()+ "', " +
-                            "'" + hospitalInfo.getHospitalQualifiedName()+ "', " +
+                            "'" + hospitalInfo.getHospitalName() + "', " +
+                            "'" + hospitalInfo.getHospitalShortName() + "', " +
+                            "'" + hospitalInfo.getHospitalCode() + "', " +
+                            "'" + hospitalInfo.getHospitalTypeId() + "', " +
+                            "'" + hospitalInfo.getHospitalTypeName() + "', " +
+                            "'" + hospitalInfo.getHospitalTel() + "', " +
+                            "'" + hospitalInfo.getHospitalProvince() + "', " +
+                            "'" + hospitalInfo.getHospitalCity() + "', " +
+                            "'" + hospitalInfo.getHospitalArea() + "', " +
+                            "'" + hospitalInfo.getAreaCode() + "', " +
+                            "'" + hospitalInfo.getHospitalLink() + "', " +
+                            "'" + hospitalInfo.getHospitalAdress() + "', " +
+                            "'" + hospitalInfo.getLatitude() + "', " +
+                            "'" + hospitalInfo.getLongitude() + "', " +
+                            "'" + hospitalInfo.getHospitalQualifiedId() + "', " +
+                            "'" + hospitalInfo.getHospitalQualifiedName() + "', " +
                             "NULL," +
                             "NULL," +
                             "NULL," +
-                            "'" + hospitalInfo.getHospitalAbout()+ "', " +
+                            "'" + hospitalInfo.getHospitalAbout() + "', " +
                             hospitalInfo.getHospitalState() + ", " +
                             hospitalInfo.getEnabled() + ", " +
                             hospitalInfo.getIsDel() + ", " +
                             hospitalInfo.getCreateUserId() + ", " +
-                            "'" + hospitalInfo.getCreateUserName()+ "', " +
+                            "'" + hospitalInfo.getCreateUserName() + "', " +
                             hospitalInfo.getUpdateUserId() + ", " +
-                            "'" + hospitalInfo.getUpdateUserName()+ "', " +
-                            "'" + createTime+ "', " +
-                            "'" + updateTime+"' " +
+                            "'" + hospitalInfo.getUpdateUserName() + "', " +
+                            createTime + ", " +
+                            updateTime + " " +
                             ");\n\r";
+                } else {
+                    return "医院信息读取失败,请重新生成SQL!";
                 }
-
+            } else {
+                return "医院信息读取失败,请重新生成SQL!";
             }
 
             // 3、读取科室信息表Department_Info,生成SQL文
-            departmentSQL = "INSERT INTO sys_department VALUES ("+
-                    +partnerDockingInfo.getDepartmentId()+ ", "+
-                    "'" + partnerDockingInfo.getDepartmentName() +"', " +
+            departmentSQL = "INSERT INTO sys_department VALUES (" +
+                    +partnerDockingInfo.getDepartmentId() + ", " +
+                    "'" + partnerDockingInfo.getDepartmentName() + "', " +
+                    +partnerDockingInfo.getHospitalId() + ", " +
                     "0, 1, 0, '喜高科技', 0 , '喜高科技', " +
                     "'" + DateTime.now().toString() + "', " +
                     "'" + DateTime.now().toString() + "', " +
                     "6 " +
                     ");\n\r";
             // 4、读取医生信息表Doctor_Info,生成SQL文
-            Map<String,Object> doctorMap = new HashMap<>();
-            doctorMap.put("hospital_id",partnerDockingInfo.getHospitalId());
-            doctorMap.put("department_id",partnerDockingInfo.getDepartmentId());
-            doctorMap.put("is_admin_user",1);
+            Map<String, Object> doctorMap = new HashMap<>();
+            doctorMap.put("hospital_id", partnerDockingInfo.getHospitalId());
+            doctorMap.put("department_id", partnerDockingInfo.getDepartmentId());
+            doctorMap.put("is_admin_user", 1);
             ResultBody doctorResult = sysDoctorService.getListByMap(doctorMap);
 
             if (doctorResult.isOk()) {
@@ -184,97 +208,194 @@
                     SysDoctor doctorInfo = doctorList.get(0);
                     doctorSQL = "INSERT INTO sys_doctor VALUES(" +
                             doctorInfo.getId() + ", " +
-                            + doctorInfo.getHospitalId() + ", " +
-                            "'" + doctorInfo.getHospitalName()+ "', " +
-                            + doctorInfo.getDepartmentId() + ", " +
-                            "'" + doctorInfo.getDepartmentName()+ "', " +
-                            "'" + doctorInfo.getDoctorName()+ "', " +
-                            "NULL, " +
-                            "'" + doctorInfo.getDoctorCcie()+ "', " +
-                            "'" + doctorInfo.getDoctorTel()+ "', " +
-                            "'" + DigestUtils.md5DigestAsHex("123456".getBytes()).replace("-","") +"', " +
-                            "'" + doctorInfo.getDoctorRankId()+ "', " +
-                            "'" + doctorInfo.getDoctorRank()+ "', " +
-                            "'" + doctorInfo.getDoctorOtherLink()+ "', " +
-                            "'" + doctorInfo.getDoctorEmail()+ "', " +
-                            "'" + doctorInfo.getDoctorAbout()+ "', " +
+                            +doctorInfo.getHospitalId() + ", " +
+                            "'" + doctorInfo.getHospitalName() + "', " +
+                            +doctorInfo.getDepartmentId() + ", " +
+                            "'" + doctorInfo.getDepartmentName() + "', " +
+                            "'" + doctorInfo.getDoctorName() + "', " +
+                            "NULL, NULL, " +
+                            "'" + doctorInfo.getDoctorTel() + "', " +
+                            "'" + DigestUtils.md5DigestAsHex("123456".getBytes()).replace("-", "") + "', " +
+                            "'" + doctorInfo.getDoctorRankId() + "', " +
+                            "'" + doctorInfo.getDoctorRank() + "', " +
+                            "'" + doctorInfo.getDoctorOtherLink() + "', " +
+                            "'" + doctorInfo.getDoctorEmail() + "', " +
+                            "'" + doctorInfo.getDoctorAbout() + "', " +
                             "0, " +
-                            doctorInfo.getDoctorState()+ ", " +
-                            doctorInfo.getDoctorType()+ ", " +
-                            "0, 1, 0, '喜高科技', 0 , '喜高科技', " +
+                            doctorInfo.getDoctorState() + ", " +
+                            doctorInfo.getDoctorType() + ", " +
+                            "1, 0, '喜高科技', 0 , '喜高科技', " +
                             "'" + DateTime.now().toString() + "', " +
                             "'" + DateTime.now().toString() + "', " +
                             "1" +
                             ");\n\r";
+                } else {
+                    return "医生信息读取失败,请先创建管理员,再重新生成SQL!";
                 }
+            } else {
+                return "医生信息读取失败,请先创建管理员,再重新生成SQL!";
             }
 
             // 5、读取合作商信息表Partner_Info,生成SQL文
             PartnerInfo partnerInfo = partnerInfoService.getById(partnerDockingInfo.getPartnerId());
-            if (partnerInfo!= null) {
-                createTime = simpleDateFormat.format(partnerInfo.getCreateTime());
-                updateTime = simpleDateFormat.format(partnerInfo.getUpdateTime());
+            if (partnerInfo != null) {
+                createTime = "'" + dateTimeFormat.format(partnerInfo.getCreateTime()) + "'";
+                updateTime = (partnerInfo.getUpdateTime() == null) ? "NULL" : "'" + dateTimeFormat.format(partnerInfo.getUpdateTime()) + "'";
 
                 partnerSQL = "INSERT INTO partner_info VALUES (" +
                         partnerInfo.getId() + ", " +
-                        "'" +partnerInfo.getPartnerName() + "', " +
-                        + partnerInfo.getPartnerType() + ", " +
-                        "'" +partnerInfo.getPartnerAddress() + "', " +
-                        "'" +partnerInfo.getPartnerProvince() + "', " +
-                        "'" +partnerInfo.getPartnerCity() + "', " +
-                        "'" +partnerInfo.getPartnerArea() + "', " +
-                        "'" +partnerInfo.getPartnerLinkMan() + "', " +
-                        "'" +partnerInfo.getPartnerLinkTelephone() + "', " +
-                        "'" +partnerInfo.getPartnerBussinessArea() + "', " +
-                        "'" +partnerInfo.getPartnerIntroduce() + "', " +
-                        "'" +partnerInfo.getPartnerUniqueCode() + "', " +
-                        "0, 1, "+ partnerInfo.getCreateUserId() + ", " +
-                        "'" +partnerInfo.getCreateUserName() + "', " +
-                        "'" +createTime + "', " +
-                        + partnerInfo.getUpdateUserId() + ", " +
-                        "'" +partnerInfo.getUpdateUserName() + "', " +
-                        "'" +updateTime + "'  " +
-                        ");\n\r";
+                        "'" + partnerInfo.getPartnerName() + "', " +
+                        +partnerInfo.getPartnerType() + ", " +
+                        "'" + partnerInfo.getPartnerAddress() + "', " +
+                        "'" + partnerInfo.getPartnerProvince() + "', " +
+                        "'" + partnerInfo.getPartnerCity() + "', " +
+                        "'" + partnerInfo.getPartnerArea() + "', " +
+                        "'" + partnerInfo.getPartnerLinkMan() + "', " +
+                        "'" + partnerInfo.getPartnerLinkTelephone() + "', " +
+                        "'" + partnerInfo.getPartnerBussinessArea() + "', " +
+                        "'" + partnerInfo.getPartnerIntroduce() + "', " +
+                        "'" + partnerInfo.getPartnerUniqueCode() + "', " +
+                        "0, 1, " + partnerInfo.getCreateUserId() + ", " +
+                        "'" + partnerInfo.getCreateUserName() + "', " +
+                        createTime + ", " +
+                        +partnerInfo.getUpdateUserId() + ", " +
+                        "'" + partnerInfo.getUpdateUserName() + "', " +
+                        updateTime +
+                        " );\n\r";
+            } else {
+                return "合作商信息读取失败,请重新生成SQL!";
             }
             // 6、读取服务器信息表Server_Info,生成SQL文
-            if ((partnerDockingInfo.getAccessKey() != null) && (!partnerDockingInfo.getAccessKey().isEmpty())) {
-                createTime = simpleDateFormat.format(partnerDockingInfo.getCreateTime());
-                updateTime = simpleDateFormat.format(partnerDockingInfo.getUpdateTime());
+            createTime = "'"+ dateTimeFormat.format(partnerDockingInfo.getCreateTime())+"'";
+            updateTime = (partnerDockingInfo.getUpdateTime() == null) ? "NULL" : "'"+ dateTimeFormat.format(partnerDockingInfo.getUpdateTime())+"'";
 
-                serverSQL = "INSERT INTO server_info VALUES(" +
-                        partnerDockingInfo.getId() + ", " +
-                        partnerDockingInfo.getPartnerId() + ", " +
-                        partnerDockingInfo.getHospitalId() + ", " +
-                        partnerDockingInfo.getDepartmentId() + ", " +
-                        "NULL, NULL, NULL, NULL, " +
-                        "'" + partnerDockingInfo.getServerMachineCode() + "', " +
-                        "NULL, NULL, " +
-                        "'" + partnerDockingInfo.getAccessKey() + "', " +
-                        "0, 1, " +
-                        partnerDockingInfo.getCreateUserId() + ", " +
-                        "'" + partnerDockingInfo.getCreateUserName() + "', " +
-                        "'" + createTime + "', " +
-                        partnerDockingInfo.getUpdateUserId() + ", " +
-                        "'" + partnerDockingInfo.getUpdateUserName() + "', " +
-                        "'" + updateTime + "', " +
-                        ");\n\r";
+            serverSQL = "INSERT INTO server_info VALUES(" +
+                    partnerDockingInfo.getId() + ", " +
+                    partnerDockingInfo.getPartnerId() + ", " +
+                    partnerDockingInfo.getHospitalId() + ", " +
+                    partnerDockingInfo.getDepartmentId() + ", " +
+                    "NULL, NULL, NULL, NULL, ";
+            // 判断机器码是否为空,拼接不同的字符串。
+            if ((partnerDockingInfo.getServerMachineCode() == null) || (partnerDockingInfo.getServerMachineCode().isEmpty())) {
+                serverSQL += "NULL, ";
+            } else {
+                serverSQL += "'" + partnerDockingInfo.getServerMachineCode() + "', ";
             }
-            // 7、所有SQL文合并入基本的SQL中
-            dbSql += hospitalSQL + departmentSQL + doctorSQL + partnerSQL +serverSQL;
+            serverSQL += "NULL, NULL, " +
+                    "'" + partnerDockingInfo.getAccessKey() + "', " +
+                    "0, 1, " +
+                    partnerDockingInfo.getCreateUserId() + ", " +
+                    "'" + partnerDockingInfo.getCreateUserName() + "', " +
+                    createTime + ", " +
+                    partnerDockingInfo.getUpdateUserId() + ", " +
+                    "'" + partnerDockingInfo.getUpdateUserName() + "', " +
+                    updateTime + " " +
+                    ");\n\r";
 
-        } catch (Exception e){
+            // 7、Todo 订单、订单明细(服务期限和数量)的数据生成
+            // 7.1 订单数据
+            Map<String, Object> orderMap = new HashMap<>();
+            orderMap.put("hospital_id", partnerDockingInfo.getHospitalId());
+            orderMap.put("department_id", partnerDockingInfo.getDepartmentId());
+            orderMap.put("enabled", 1);
+            orderMap.put("is_del", 0);
+            List<ProductOrder> productOrderList = productOrderService.listByMap(orderMap);
+            if ((productOrderList != null) && (productOrderList.size() > 0)) {
+                for (int i = 0; i < productOrderList.size(); i++) {
+                    ProductOrder productOrder = productOrderList.get(i);
+                    createTime = "'"+dateTimeFormat.format(productOrder.getCreateTime()) +"'";
+                    updateTime = (productOrder.getUpdateTime() == null) ? "NULL" : "'"+dateTimeFormat.format(productOrder.getUpdateTime())+"'";
+                    serviceSQL += "INSERT INTO order_record VALUES(" +
+                            productOrder.getId() + ", " +
+                            productOrder.getHospitalId() + ", " +
+                            "'" + productOrder.getHospitalName() + "', " +
+                            productOrder.getDepartmentId() + ", " +
+                            "'" + productOrder.getDepartmentName() + "', " +
+                            "'" + productOrder.getContractNo() + "', " +
+                            "'" + productOrder.getContractTitle() + "', " +
+                            "'" + dateFormat.format(productOrder.getContractBeginTime()) + "', " +
+                            "'" + dateFormat.format(productOrder.getContractEndTime()) + "', " +
+                            "'" + dateTimeFormat.format(productOrder.getContractTime()) + "', " +
+                            productOrder.getIsDel() + ", " +
+                            productOrder.getEnabled() + ", " +
+                            createTime + ", " +
+                            productOrder.getCreateUserId() + ", " +
+                            "'" + productOrder.getCreateUserName() + "', " +
+                            updateTime + ", " +
+                            productOrder.getUpdateUserId() + ", " +
+                            "'" + productOrder.getUpdateUserName() + "' " +
+                            ");\n\r";
+
+                    // 7.2 订单明细数据
+                    orderMap.clear();
+                    orderMap.put("order_id", productOrder.getId());
+                    orderMap.put("enabled", 1);
+                    orderMap.put("is_del", 0);
+                    List<ProductOrderRecord> productOrderRecordList = productOrderRecordService.listByMap(orderMap);
+
+                    if ((productOrderRecordList != null) && (productOrderRecordList.size() > 0)) {
+
+                        for (i = 0; i < productOrderRecordList.size(); i++) {
+                            ProductOrderRecord productOrderRecord = productOrderRecordList.get(i);
+                            createTime = "'"+dateTimeFormat.format(productOrderRecord.getCreateTime())+"'";
+                            updateTime = (productOrderRecord.getUpdateTime() == null) ? "NULL" : "'"+dateTimeFormat.format(productOrderRecord.getUpdateTime())+"'";
+                            serviceSQL += "INSERT INTO order_detail VALUES( " +
+                                    productOrderRecord.getId() + ", " +
+                                    productOrderRecord.getOrderId() + ", " +
+                                    productOrderRecord.getProId() + ", " +
+                                    productOrderRecord.getProType() + ", " +
+                                    "'" + productOrderRecord.getProName() + "', " +
+                                    productOrderRecord.getAilightCount() + ", " +
+                                    productOrderRecord.getRecordCount() + ", " +
+                                    "'" + dateFormat.format(productOrderRecord.getProBegintime()) + "', " +
+                                    "'" + dateFormat.format(productOrderRecord.getProEndtime()) + "', " +
+                                    productOrderRecord.getIsShare() + ", " +
+                                    "0, 0, " +
+                                    // 服务验证字符串【合作商ID、医院ID、科室ID、产品ID、开始日期、结束日期、读片数量、报告数量、已使用读片数量、已使用报告数量】
+                                    "'" + EncryptUtils.encryptAES((partnerDockingInfo.getPartnerId().toString() + "|" +
+                                    partnerDockingInfo.getHospitalId().toString() + "|" +
+                                    partnerDockingInfo.getDepartmentId().toString() + "|" +
+                                    productOrderRecord.getProId().toString() + "|" +
+                                    dateFormat.format(productOrderRecord.getProBegintime()) + "|" +
+                                    dateFormat.format(productOrderRecord.getProEndtime()) + "|" +
+                                    productOrderRecord.getAilightCount().toString() + "|" +
+                                    productOrderRecord.getRecordCount() + "|" +
+                                    "0|0"), SecurityConstants.AES_KEY) + "', " +
+                                    productOrderRecord.getIsDel() + ", " +
+                                    productOrderRecord.getEnabled() + ", " +
+                                    createTime + ", " +
+                                    productOrderRecord.getCreateUserId() + ", " +
+                                    "'" + productOrderRecord.getCreateUserName() + "', " +
+                                    updateTime + ", " +
+                                    productOrderRecord.getUpdateUserId() + ", " +
+                                    "'" + productOrderRecord.getUpdateUserName() + "' " +
+                                    ");\n\r";
+                        }
+                    } else {
+                        return "没有已开通的服务记录,请先充值,再生成SQL文";
+                    }
+                }
+            } else {
+                return "没有已开通的服务记录,请先充值,再生成SQL文";
+            }
+
+
+            // 8、所有SQL文合并入基本的SQL中
+            dbSql += hospitalSQL + departmentSQL + doctorSQL + partnerSQL + serverSQL + serviceSQL;
+
+        } catch (Exception e) {
             e.printStackTrace();
         } finally {
             try {
                 fileImput.close();
-            } catch (IOException e){
+            } catch (IOException e) {
                 e.printStackTrace();
             }
         }
 
 
+        return dbSql;
+    }
 
-
-        return  dbSql;
-    };
+    ;
 }
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql
index 9848bbc..d355d67 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql
@@ -5,9 +5,9 @@
   `Seged` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否分割。0:未分割,1:已分割',
   `AiStatus` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'AI分析结果。0:未分析,-1:无效光片,21:分析完成',
   `CreateTime` timestamp(0) NOT NULL DEFAULT current_timestamp(0) COMMENT '创建时间',
-  `ReturnTime` timestamp(0) NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '结果返回时间',
+  `ReturnTime` timestamp(0)  NULL  COMMENT '结果返回时间',
   `Returned` bit(1) NOT NULL DEFAULT b'0' COMMENT '结果是否返回。0:未返回,1:已返回',
-  `CompleteTime` timestamp(0) NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'AI分析完成时间',
+  `CompleteTime` timestamp(0)  NULL  COMMENT 'AI分析完成时间',
   `RGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
   `RGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
   `RGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
@@ -143,7 +143,7 @@
   `Message` tinyint(4) NOT NULL DEFAULT 0 COMMENT '失败原因',
   `Source` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '来源',
   PRIMARY KEY (`UUID`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'AI骨等级分析记录表' ROW_FORMAT = DYNAMIC;
+)  COMMENT = 'AI骨等级分析记录表' ;
 
 CREATE TABLE `child_info`  (
   `id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '孩子唯一标识',
@@ -165,8 +165,7 @@
   `update_user_id` bigint(20) NULL COMMENT '更新数据的账号的唯一标识',
   `update_user_name` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '更新数据的用户的姓名',
   PRIMARY KEY (`id`),
-  UNIQUE INDEX `pk_id`(`id`) USING BTREE COMMENT '主键唯一索引',
-  INDEX `idx_name_birthday`(`child_name`, `child_birthday`) USING BTREE COMMENT '孩子名字和出生日的普通索引'
+  UNIQUE INDEX `pk_id`(`id`) USING BTREE COMMENT '主键唯一索引'
 ) COMMENT = '孩子档案信息表';
 
 CREATE TABLE `diagnose_record`  (
@@ -310,80 +309,74 @@
   PRIMARY KEY (`id`)
 ) COMMENT = '合作商信息表';
 
-CREATE TABLE `product_order`  (
-  `id` bigint(20) NOT NULL COMMENT '充值记录ID',
+CREATE TABLE `order_detail`  (
+  `id` bigint(20) NOT NULL COMMENT '订单明细ID',
+  `order_id` bigint(20) NOT NULL COMMENT '订单id',
+  `product_id` bigint(20) NOT NULL COMMENT '产品ID',
+  `product_type` tinyint(1) NOT NULL COMMENT '产品类型(0:试用;1:正式)',
+  `product_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品名称',
+  `reading_count` int(6) NOT NULL DEFAULT 0 COMMENT '读片量',
+  `report_count` int(6) NOT NULL COMMENT '报告量',
+  `product_begintime` datetime(0) NULL DEFAULT NULL COMMENT '有效的开始时间',
+  `product_endtime` datetime(0) NULL DEFAULT NULL COMMENT '有效的结束时间',
+  `is_share` bit(1) NOT NULL COMMENT '是否共享 0否 1是',
+  `used_reading_count` int(6) NOT NULL DEFAULT 0 COMMENT '已用读片量',
+  `used_report_count` int(6) NULL DEFAULT 0 COMMENT '已生成报告量',
+  `validate_key` varchar(500) NULL COMMENT '服务验证串',
+  `is_del` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
+  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
+  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
+  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
+  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sumption_other`(`product_id`, `order_id`) USING BTREE
+)  COMMENT = '订单(充值)明细表' ;
+
+CREATE TABLE `doctor_daily_statistics`  (
+  `id` bigint(20) NOT NULL COMMENT 'ID',
+  `hospital_id` bigint(20) NOT NULL COMMENT '医院ID',
+  `department_id` bigint(20) NOT NULL COMMENT '科室ID',
+  `doctor_id` bigint(20) NOT NULL COMMENT '医生ID',
+  `item_code` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '统计项目编码(1201:报告数量;1301:读片数量)',
+  `item_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '统计项目名称',
+  `collect_date` date NOT NULL COMMENT '统计日期',
+  `item_value` bigint(20) NULL DEFAULT NULL COMMENT '统计项目数值',
+  `is_del` bit(1) NULL DEFAULT b'0' COMMENT '是否删除(0:未删除;1:已删除)',
+  `enable` bit(1) NULL DEFAULT b'1' COMMENT '是否启用(0:未启用;1:已启用)',
+  `create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
+  `create_user_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者账号',
+  `create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新者ID',
+  `update_user_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者账号',
+  `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
+  PRIMARY KEY (`id`)
+) COMMENT = '医生日服务统计表';
+
+CREATE TABLE `order_record`  (
+  `id` bigint(20) NOT NULL COMMENT '订单记录ID',
   `hospital_id` bigint(20) NOT NULL COMMENT '医院标识id',
   `hospital_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '医院名称',
   `department_id` bigint(20) NOT NULL COMMENT '科室ID',
   `department_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '科室名称',
-  `contract_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '合同编号',
-  `contract_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '合同名称',
-  `contract_begin_time` datetime(0) NULL DEFAULT NULL COMMENT '合同开始时间',
-  `contract_end_time` datetime(0) NULL DEFAULT NULL COMMENT '合同结束时间',
-  `contract_time` datetime(0) NULL DEFAULT NULL COMMENT '合同签订日期',
+  `contract_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '订单编号',
+  `contract_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '订单名称',
+  `contract_begin_time` datetime(0) NULL DEFAULT NULL COMMENT '订单开始日期',
+  `contract_end_time` datetime(0) NULL DEFAULT NULL COMMENT '订单结束日期',
+  `contract_time` datetime(0) NULL DEFAULT NULL COMMENT '订单签订时间',
   `is_del` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
   `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用',
-  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
   `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
   `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
   `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
   `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '租户字段',
-  `create_user_org_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者的部门',
   PRIMARY KEY (`id`) USING BTREE,
   INDEX `idx_sumption_other`(`hospital_id`, `department_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci COMMENT = '产品的充值记录-订单' ROW_FORMAT = DYNAMIC;
-
-CREATE TABLE `product_order_detail`  (
-  `id` bigint(20) NOT NULL COMMENT '充值订单明细ID',
-  `order_id` bigint(20) NOT NULL COMMENT '对应product_order表中的id',
-  `pro_id` bigint(20) NOT NULL COMMENT '产品/明细ID',
-  `pro_type` tinyint(1) NOT NULL COMMENT '产品类型0试用1正式',
-  `pro_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品/明细名称',
-  `is_share` bit(1) NOT NULL COMMENT '是否共享 0否 1是',
-  `is_del` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
-  `ailight_count` int(6) NOT NULL DEFAULT 0 COMMENT '读片量',
-  `record_count` int(6) NOT NULL COMMENT '报告量',
-  `pro_begintime` datetime(0) NULL DEFAULT NULL COMMENT '有效的开始时间',
-  `pro_endtime` datetime(0) NULL DEFAULT NULL COMMENT '有效的结束时间',
-  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用',
-  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
-  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
-  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
-  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '租户字段',
-  `create_user_org_code` varchar(20) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '创建者的部门',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `idx_sumption_other`(`pro_id`, `order_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci COMMENT = '账户明细' ROW_FORMAT = DYNAMIC;
-
-CREATE TABLE `product_order_record`  (
-  `id` bigint(20) NOT NULL COMMENT '充值订单明细ID',
-  `order_id` bigint(20) NOT NULL COMMENT '对应product_order表中的id',
-  `pro_id` bigint(20) NOT NULL COMMENT '产品/明细ID',
-  `pro_type` tinyint(1) NOT NULL COMMENT '产品类型0试用1正式',
-  `pro_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品/明细名称',
-  `is_share` bit(1) NOT NULL COMMENT '是否共享 0否 1是',
-  `is_del` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
-  `ailight_count` int(6) NOT NULL DEFAULT 0 COMMENT '读片量',
-  `record_count` int(6) NOT NULL COMMENT '报告量',
-  `pro_begintime` datetime(0) NULL DEFAULT NULL COMMENT '有效的开始时间',
-  `pro_endtime` datetime(0) NULL DEFAULT NULL COMMENT '有效的结束时间',
-  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用',
-  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
-  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
-  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
-  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
-  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
-  `tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '租户字段',
-  `create_user_org_code` varchar(20) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '创建者的部门',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `idx_sumption_other`(`pro_id`, `order_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci COMMENT = '产品/明显的充值记录' ROW_FORMAT = DYNAMIC;
+)  COMMENT = '订单(充值)记录' ;
 
 CREATE TABLE `report_content`  (
   `id` bigint(20) NOT NULL COMMENT '唯一ID',
@@ -448,7 +441,7 @@
   PRIMARY KEY (`id`)
 ) COMMENT = '报告内容表';
 
-CREATE TABLE `server_Info`  (
+CREATE TABLE `server_info`  (
   `id` bigint(20) NOT NULL COMMENT 'ID',
   `partner_id` bigint(20) NULL COMMENT '合作商ID',
   `hospital_id` bigint(20) NULL COMMENT '医院ID',
@@ -460,7 +453,7 @@
   `machine_guid` varchar(100) NULL COMMENT '主机GUID',
   `network_card_mac` varchar(100) NULL COMMENT '网卡MAC地址',
   `hard_disk_sn` varchar(100) NULL COMMENT '硬盘序列号',
-  `application_system_unique_code` varchar(50) NULL COMMENT '应用系统唯一标识符',
+  `application_system_unique_code` varchar(500) NULL COMMENT '应用系统唯一标识符',
   `is_del` bit(1) NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
   `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用 ',
   `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
@@ -487,7 +480,7 @@
   `accounts_count` smallint(2) NOT NULL COMMENT '帐号数量 默认6',
   PRIMARY KEY (`id`) USING BTREE,
   INDEX `idx_dep_other`(`department_name`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '科室表' ROW_FORMAT = DYNAMIC;
+) COMMENT = '科室表' ;
 
 CREATE TABLE `sys_doctor`  (
   `id` bigint(20) NOT NULL COMMENT '医生ID',
@@ -496,7 +489,7 @@
   `department_id` bigint(20) NOT NULL COMMENT '科室ID',
   `department_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '科室名称',
   `doctor_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '医生姓名',
-  `doctor_logo` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'image/touxiang.png' COMMENT '医生的头像',
+  `doctor_logo` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医生的头像',
   `doctor_ccie` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医生资质证书',
   `doctor_tel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '医生联系方式',
   `doctor_password` varchar(50) NULL COMMENT '登录密码',
@@ -518,7 +511,7 @@
   `is_admin_user` bit(1) NULL DEFAULT b'0' COMMENT '是否管理帐号 0否1是',
   PRIMARY KEY (`id`) USING BTREE,
   INDEX `idx_doctor_other`(`hospital_id`, `doctor_name`, `doctor_tel`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
+) COMMENT = '医生信息表' ;
 
 CREATE TABLE `sys_hospital`  (
   `id` bigint(20) NOT NULL COMMENT '医院ID',
@@ -551,7 +544,6 @@
   `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
   `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
   `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `idx_hospital_other`(`hospital_name`, `hospital_area`, `is_screen`, `tenant_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '医院基础信息表' ROW_FORMAT = DYNAMIC;
+  PRIMARY KEY (`id`)
+)  COMMENT = '医院基础信息表' ;
 
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
index a19375d..523e0cc 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
@@ -207,4 +207,10 @@
      * rsa公钥
      */
     String RSA_PUBLIC_KEY = "pubkey.txt";
+
+    /**
+     * AES 加解密 Key
+     */
+    String AES_KEY= "Kidgrow@2801";
+
 }
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html
index 11028d9..35d66c0 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html
@@ -96,7 +96,7 @@
         <div class="layui-form-item">
             <label class="layui-form-label" style="width:100px" >服务器机器码</label>
             <div class="layui-input-block"  style="width:250px;">
-                <input name="serverMachineCode" lay-verify="required" required type="text" class="layui-input" maxlength="100" style="width: 200px;"/>
+                <input name="serverMachineCode"  type="text" class="layui-input" maxlength="100" style="width: 200px;"/>
             </div>
         </div>
         <div class="layui-form-item">

--
Gitblit v1.8.0