Pu Zhibing
21 小时以前 d0d6f8f40e5d9762d940b47c566da1876361020e
修改三方
3个文件已删除
30个文件已修改
1 文件已重命名
23个文件已添加
2764 ■■■■ 已修改文件
management/guns-admin/lib/ncoss-java-sdk-1.0.5.jar 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/pom.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TVersionManagementController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UediterController.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/AddAdminLogUtil.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GaoDe/MapConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GaoDeMapUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/HuaWeiSMSUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/JpushUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RongCloudUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WoUtil.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/HWSMSUtil.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java 259 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/LoginWeChatXiao.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/resources/application-dev.yml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/resources/application-produce.yml 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/resources/application-test.yml 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/resources/application.yml 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/resources/redis.properties 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/404.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/common/_container.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/login.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderCrossCity/tOrderCrossCity_detail.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderCrossCity/tOrderCrossCity_track.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_orderDetail.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_trajectory.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_trajectory.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/pom.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/guns-admin/lib/ncoss-java-sdk-1.0.5.jar
Binary files differ
management/guns-admin/pom.xml
@@ -72,11 +72,9 @@
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- 导入Excel数据依赖 start -->
@@ -233,6 +231,13 @@
            <artifactId>hutool-all</artifactId>
            <version>5.7.7</version>
        </dependency>
        <dependency>
            <groupId>com.ncoss</groupId>
            <artifactId>ncoss-java-sdk</artifactId>
            <version>1.0.5</version>
            <scope>system</scope>
            <systemPath>${pom.basedir}/lib/ncoss-java-sdk-1.0.5.jar</systemPath>
        </dependency>
    </dependencies>
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TVersionManagementController.java
@@ -2,14 +2,18 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.heredata.hos.model.bucket.Bucket;
import com.stylefeng.guns.config.properties.GunsProperties;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.controller.util.UUIDUtil;
import com.stylefeng.guns.modular.system.util.OssUploadUtil;
import com.stylefeng.guns.modular.system.util.huawei.OBSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongConfig;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.ui.Model;
@@ -42,6 +46,9 @@
    @Autowired
    private ITVersionManagementService tVersionManagementService;
    @Autowired
    private QianYunTongConfig qianYunTongConfig;
    /**
     * 跳转到版本管理首页
@@ -119,30 +126,35 @@
    @RequestMapping("/saveApk")
    public Map<String, Object> saveApk(@RequestPart("myfile") MultipartFile myfile, HttpServletRequest request){
        Map<String, Object> m = new HashMap<>();
        /*try {
            String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename());
        QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
            try {
                String fileSavePath = gunsProperties.getFileUploadPath()+"apk\\";
                file.transferTo(new File(fileSavePath + pictureName));
            String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(myfile.getOriginalFilename());
            String bucketName = qianYunTongConfig1.getBucketName();
            Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
            if (null == grjyTest) {
                //创建桶
                Boolean bucket = NCOSSUtil.createBucket(bucketName);
                if (!bucket) {
                    throw new RuntimeException("创建存储桶失败");
                }
                //设置桶策略
                String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
                Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
                if (!bucketPolicy) {
                    throw new RuntimeException("设置桶策略失败");
                }
            }
            //上传对象
            String key = "apk/" + pictureName;
            String object = NCOSSUtil.putObject(bucketName, key, myfile.getInputStream());
            if (null == object) {
                throw new RuntimeException("上传图片失败");
            }
            m.put("imgUrl", "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key);
            } catch (Exception e) {
                e.printStackTrace();
            }
            m.put("imgUrl", gunsProperties.getPictureServerAddress()+"apk/"+pictureName);
        } catch (Exception e) {
            e.printStackTrace();
        }*/
        try {
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            MultipartFile file = (MultipartFile) myfile;
            InputStream inputStream = file.getInputStream();
            String name = file.getOriginalFilename();
            name = UUIDUtil.getRandomCode() + name.substring(name.lastIndexOf("."));
            String pictureName = OBSUtil.putObjectToBucket(inputStream, name);
//            String pictureName = OssUploadUtil.ossUpload(request, file);
            m.put("imgUrl", pictureName);
        }catch (Exception e){
            e.printStackTrace();
        }
        return m;
    }
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UediterController.java
@@ -3,9 +3,14 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.heredata.hos.model.bucket.Bucket;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.controller.util.UUIDUtil;
import com.stylefeng.guns.modular.system.util.OssUploadUtil ;
import com.stylefeng.guns.modular.system.util.huawei.OBSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -15,13 +20,15 @@
import com.alibaba.fastjson.JSON;
import java.io.InputStream;
import java.util.UUID;
@Controller
public class UediterController {
    /*@RequestMapping("/config")
    public String getConfigInfo(HttpServletRequest request,HttpServletResponse response){
        return "redirect:/static/js/ueditor/jsp/jsp/config.json";
    }*/
    @Autowired
    private QianYunTongConfig qianYunTongConfig;
    public final static String UEDITOR_CONFIG = "{\n" +
            "    \"imageActionName\": \"uploadimage\",\n" +
            "    \"imageFieldName\": \"upfile\",\n" +
@@ -104,15 +111,32 @@
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            MultipartFile picture = multipartRequest.getFile("upfile");
            String callback = request.getParameter("callback");
            String pictureName = "";
            QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
            try {
                //文件上传,具体根据实际替换
                InputStream inputStream = picture.getInputStream();
                String name = picture.getOriginalFilename();
                name = UUIDUtil.getRandomCode() + name.substring(name.lastIndexOf("."));
                pictureName = OBSUtil.putObjectToBucket(inputStream, name);
//                pictureName = OssUploadUtil.ossUpload(request, picture);
                String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
                String bucketName = qianYunTongConfig1.getBucketName();
                Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
                if (null == grjyTest) {
                    //创建桶
                    Boolean bucket = NCOSSUtil.createBucket(bucketName);
                    if (!bucket) {
                        throw new RuntimeException("创建存储桶失败");
                    }
                    //设置桶策略
                    String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
                    Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
                    if (!bucketPolicy) {
                        throw new RuntimeException("设置桶策略失败");
                    }
                }
                //上传对象
                String key = "imgs/management/" + pictureName;
                String object = NCOSSUtil.putObject(bucketName, key, picture.getInputStream());
                if (null == object) {
                    throw new RuntimeException("上传图片失败");
                }
 
                pictureName = "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key;
                String result = "{'original': '" + picture.getOriginalFilename() + "', 'state': 'SUCCESS', 'url': '" + pictureName + "'}";
                if (callback == null) {
                    return JSON.parseObject(result);
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.heredata.hos.model.bucket.Bucket;
import com.stylefeng.guns.config.properties.GunsProperties;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.base.tips.Tip;
@@ -33,6 +34,8 @@
import com.stylefeng.guns.modular.system.transfer.UserDto;
import com.stylefeng.guns.modular.system.util.OssUploadUtil;
import com.stylefeng.guns.modular.system.util.huawei.OBSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongConfig;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -74,6 +77,9 @@
    private ITAgentService agentService;
    @Autowired
    private ITBranchOfficeService branchOfficeService;
    @Autowired
    private QianYunTongConfig qianYunTongConfig;
    /**
@@ -423,21 +429,31 @@
    @RequestMapping("/saveApk")
    public String saveApk(@RequestPart("myfile") MultipartFile file, HttpServletRequest request){
        Map<String, Object> m = new HashMap<>();
        QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
        try {
            String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename());
            try {
                String fileSavePath = gunsProperties.getFileUploadPath()+"apk\\";
                InputStream inputStream = file.getInputStream();
                String name1 = file.getOriginalFilename();
                name1 = UUIDUtil.getRandomCode() + name1.substring(name1.lastIndexOf("."));
                String s = OBSUtil.putObjectToBucket(inputStream, name1);
//                String s = OssUploadUtil.ossUpload(request, file);
                // file.transferTo(new File(fileSavePath + pictureName));
                return s;
            } catch (Exception e) {
                e.printStackTrace();
            String bucketName = qianYunTongConfig1.getBucketName();
            Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
            if (null == grjyTest) {
                //创建桶
                Boolean bucket = NCOSSUtil.createBucket(bucketName);
                if (!bucket) {
                    throw new RuntimeException("创建存储桶失败");
            }
            m.put("imgUrl", gunsProperties.getFileUploadPath()+"apk/"+pictureName);
                //设置桶策略
                String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
                Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
                if (!bucketPolicy) {
                    throw new RuntimeException("设置桶策略失败");
                }
            }
            //上传对象
            String key = "apk/" + pictureName;
            String object = NCOSSUtil.putObject(bucketName, key, file.getInputStream());
            if (null == object) {
                throw new RuntimeException("上传图片失败");
            }
            m.put("imgUrl", "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key);
        } catch (Exception e) {
            e.printStackTrace();
        }
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java
@@ -1,12 +1,17 @@
package com.stylefeng.guns.modular.system.controller.util;
import com.heredata.hos.model.bucket.Bucket;
import com.stylefeng.guns.config.properties.GunsProperties;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
import com.stylefeng.guns.core.exception.GunsException;
import com.stylefeng.guns.core.util.ObsUploadUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.util.OssUploadUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.huawei.OBSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +40,9 @@
    @Autowired
    private GunsProperties gunsProperties;
    @Autowired
    private QianYunTongConfig qianYunTongConfig;
    /**
     * 上传图片(上传到项目的webapp/static/img)
@@ -67,11 +75,34 @@
            String ossUpload = null;
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            MultipartFile file = (MultipartFile) multipartRequest.getFile("myfile");
            QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
            if (file.getSize() != 0) {
                InputStream inputStream = file.getInputStream();
                String name = file.getOriginalFilename();
                name = UUIDUtil.getRandomCode() + name.substring(name.lastIndexOf("."));
                ossUpload = OBSUtil.putObjectToBucket(inputStream, name);
                String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename());
                String bucketName = qianYunTongConfig1.getBucketName();
                Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
                if (null == grjyTest) {
                    //创建桶
                    Boolean bucket = NCOSSUtil.createBucket(bucketName);
                    if (!bucket) {
                        throw new RuntimeException("创建存储桶失败");
                    }
                    //设置桶策略
                    String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
                    Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
                    if (!bucketPolicy) {
                        throw new RuntimeException("设置桶策略失败");
                    }
                }
                //上传对象
                String key = "imgs/management/" + pictureName;
                String object = NCOSSUtil.putObject(bucketName, key, file.getInputStream());
                if (null == object) {
                    throw new RuntimeException("上传图片失败");
                }
                ossUpload = "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key;
//                ossUpload = OssUploadUtil.ossUpload(request, file);
//                ossUpload = ObsUploadUtil.obsUpload(super.getHttpServletRequest(), file);
                m.put("imgUrl", ossUpload);
@@ -86,25 +117,37 @@
    @ResponseBody
    public String image(@RequestPart("file") MultipartFile picture, HttpServletRequest request) {
        try {
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            MultipartFile file = (MultipartFile) picture;
            String name = file.getOriginalFilename();
            String s = name.substring(name.lastIndexOf(".") + 1).toLowerCase();
            if(!s.equals("jpg") && !s.equals("png") && !s.equals("jpeg")){
            String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
            QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
            String bucketName = qianYunTongConfig1.getBucketName();
            System.err.println("bucketName:"+bucketName);
            Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
            if (null == grjyTest) {
                //创建桶
                Boolean bucket = NCOSSUtil.createBucket(bucketName);
                if (!bucket) {
                return null;
            }
            long size = file.getSize();
            if(size > 524288000L){//500M限制
                return "请上传500M以内的文件";
                //设置桶策略
                String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
                Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
                if (!bucketPolicy) {
                    return null;
            }
            InputStream inputStream = file.getInputStream();
            String name1 = file.getOriginalFilename();
            name1 = UUIDUtil.getRandomCode() + name1.substring(name1.lastIndexOf("."));
//            String pictureName = OBSUtil.putObjectToBucket(inputStream, name1);
            String pictureName = OssUploadUtil.ossUpload(request, file);
//            String pictureName = ObsUploadUtil.obsUpload(super.getHttpServletRequest(), picture);
            }
            //上传对象
            String key = "imgs/management/" + pictureName;
            String object = NCOSSUtil.putObject(bucketName, key, picture.getInputStream());
            if (null == object) {
                return null;
            }
            pictureName = "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key;
            System.out.println("mediaResp");
            return pictureName;
        } catch (IOException e1) {
        } catch (Exception e1) {
            e1.printStackTrace();
            return null;
        }
    }
@@ -138,29 +181,34 @@
     */
    @RequestMapping("/imageUp")
    public String imageUp(@RequestPart("upfile") MultipartFile picture, HttpServletRequest request) {
        long size = picture.getSize();
        if(size > 524288000L){//500M限制
            return "请上传500M以内的文件";
        }
        String callback = request.getParameter("callback");
        String pictureName = UUID.randomUUID().toString() + ".jpg";
        try {
            // 上传文件目录
            //String fileSavePath = gunsProperties.getFileUploadPath();
            //picture.transferTo(new File(fileSavePath + pictureName));
            // 文件全路径
            //pictureName = gunsProperties.getPictureServerAddress() + pictureName;
//           pictureName = ObsUploadUtil.obsUpload(super.getHttpServletRequest(), picture);
            String name = picture.getOriginalFilename();
            String s = name.substring(name.lastIndexOf(".") + 1).toLowerCase();
            if(!s.equals("jpg") && !s.equals("png") && !s.equals("jpeg")){
                return null;
            String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
            QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
            String bucketName = qianYunTongConfig1.getBucketName();
            Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
            if (null == grjyTest) {
                //创建桶
                Boolean bucket = NCOSSUtil.createBucket(bucketName);
                if (!bucket) {
                    throw new RuntimeException("创建存储桶失败");
            }
            InputStream inputStream = picture.getInputStream();
            String name1 = picture.getOriginalFilename();
            name1 = UUIDUtil.getRandomCode() + name1.substring(name1.lastIndexOf("."));
            pictureName = OBSUtil.putObjectToBucket(inputStream, name1);
                //设置桶策略
                String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
                Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
                if (!bucketPolicy) {
                    throw new RuntimeException("设置桶策略失败");
                }
            }
            //上传对象
            String key = "imgs/management/" + pictureName;
            String object = NCOSSUtil.putObject(bucketName, key, picture.getInputStream());
            if (null == object) {
                throw new RuntimeException("上传图片失败");
            }
            pictureName = "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key;
//            pictureName = OssUploadUtil.ossUpload(super.getHttpServletRequest(), picture);
            String result = "{'original': '" + picture.getOriginalFilename() + "', 'state': 'SUCCESS', 'url': '" + pictureName + "'}";
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/AddAdminLogUtil.java
File was deleted
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -34,7 +34,7 @@
    @Autowired
    private IGDInterfaceService gdInterfaceService;
    private String key = "5053ca611c0106e01a665ce7ab84ff26";
    private String key = "ea7326a77175aba0e9435859b17bca36";
    private JSONArray jsonArray = new JSONArray();
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
@@ -20,7 +20,7 @@
@Component
public class GDMapGeocodingUtil {
    private String key = "5053ca611c0106e01a665ce7ab84ff26";
    private String key = "ea7326a77175aba0e9435859b17bca36";
    @Autowired
    private RestTemplate restTemplate;
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GaoDe/MapConfig.java
@@ -10,5 +10,5 @@
    /**
     * 高德key
     */
    String key = "5053ca611c0106e01a665ce7ab84ff26";
    String key = "ea7326a77175aba0e9435859b17bca36";
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GaoDeMapUtil.java
@@ -35,7 +35,7 @@
        try {
            // 拼接请求高德的url
            String url = "http://restapi.amap.com/v3/geocode/geo?address=" + address + "&output=JSON&key=" + "5053ca611c0106e01a665ce7ab84ff26";
            String url = "http://restapi.amap.com/v3/geocode/geo?address=" + address + "&output=JSON&key=" + "ea7326a77175aba0e9435859b17bca36";
            // 请求高德接口
            String result = sendHttpGet(url);
            JSONObject resultJOSN = JSONObject.parseObject(result);
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/HuaWeiSMSUtil.java
@@ -38,14 +38,14 @@
    public static void sendSms(String code,String phone,String sender,String templateId) throws Exception{
        //必填,请参考"开发准备"获取如下数据,替换为实际值
        String url = "https://rtcsms.cn-north-1.myhuaweicloud.com:10743/sms/batchSendSms/v1"; //APP接入地址+接口访问URI
        String appKey = "qnay92s7V0K7719H10m7X4yo3fl3"; //APP_Key
        String appSecret = "6nSHQzZ3o18JeW6UtS448BbblOa0"; //APP_Secret
        String appKey = "111"; //APP_Key
        String appSecret = "111"; //APP_Secret
//        String sender = "10690400999303617"; //国内短信签名通道号或国际/港澳台短信通道号
//        String templateId = "d8f8f781b6e04c848f8148f4d6604bcd"; //模板ID
        //条件必填,国内短信关注,当templateId指定的模板类型为通用模板时生效且必填,必须是已审核通过的,与模板类型一致的签名名称
        //国际/港澳台短信不用关注该参数
        String signature = "超级过客"; //签名名称
        String signature = "111"; //签名名称
        //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔
        String receiver = "+86"+phone; //短信接收人号码
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/JpushUtil.java
@@ -39,12 +39,12 @@
    /**
     * AppKey
     */
    private static String masterSecret = "e4f6f435faefad29db6ba9b2";
    private static String masterSecret = "111";
    /**
     * Master Secret
     */
    private static String appKey = "93204c35ded9ba377a14af19";
    private static String appKey = "111";
    private static String pushUrl = "https://api.jpush.cn/v3/push";   
    private static boolean apns_production = true;    
    private static int time_to_live = 86400;  
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
@@ -16,9 +16,9 @@
public class OssUploadUtil {
    //OSS图片访问域名
    public static String oss_domain = "https://newok.oss-cn-shenzhen.aliyuncs.com/";
    public static String accessKeyId = "LTAI5tLPQCnW4CWk9hd1uxSM";
    public static String accessKeySecret = "Efm7ZgHQ0136Dyf8a7KxnmfQtchEt7";
    public static String bucketName="newok";
    public static String accessKeyId = "111";
    public static String accessKeySecret = "1111";
    public static String bucketName="111";
    public static String endpoint = "oss-cn-shenzhen.aliyuncs.com";
    
    public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret);
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java
@@ -1,8 +1,7 @@
package com.stylefeng.guns.modular.system.util;
public class PushURL {
//    public static String zull_user_url = "http://192.168.110.64:3002";
    public static String zull_user_url = "https://okyueche.com:443";
    public static String zull_user_url = "http://127.0.0.1:443";
    public static String order_push_url =  zull_user_url + "/driver/base/order/pushOrderInfo";
    public static String driver_auth_url =  zull_user_url + "/driver/base/driver/sendsms";
    public static String withdraw_auth_url =  zull_user_url + "/driver/base/withdrawal/withdrawalAudit";
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -1,5 +1,8 @@
package com.stylefeng.guns.modular.system.util;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.stylefeng.guns.modular.system.warpper.PushOrderInfoWarpper;
@@ -25,8 +28,7 @@
    Logger logger = LoggerFactory.getLogger("ServiceLog");
    @Autowired
    private RestTemplate internalRestTemplate;
    private final String socket_uri = "http://192.168.110.85:6000";
@@ -43,20 +45,23 @@
        msg.put("data", new Object());
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
            }
        }
    }
@@ -74,20 +79,23 @@
        msg.put("data", new Object());
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
            }
        }
    }
@@ -112,20 +120,23 @@
        msg.put("data", map);
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
            }
        }
    }
@@ -145,20 +156,23 @@
        msg.put("data", pushOrderInfoWarpper);
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
            }
        }
    }
@@ -185,20 +199,23 @@
        msg.put("data", map);
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
            }
        }
    }
@@ -224,20 +241,23 @@
        msg.put("data", map);
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
            }
        }
    }
@@ -259,20 +279,23 @@
        msg.put("data", map);
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
            }
        }
    }
@@ -297,20 +320,23 @@
        msg.put("data", map);
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
            }
        }
    }
@@ -333,20 +359,23 @@
        msg.put("data", map);
        //调用推送
        HttpHeaders headers = new HttpHeaders();
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
        params.add("msg", msg.toJSONString());
        params.add("id", id.toString());
        params.add("type", type.toString());
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
        String s = internalRestTemplate.postForObject("http://127.0.0.1:3002/netty/sendMsgToClient",requestEntity , String.class);
        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
        Map<String, Object> params = new HashMap<>();
        params.put("msg", msg.toJSONString());
        params.put("id", id.toString());
        params.put("type", type.toString());
        post.form(params);
        HttpResponse execute = post.execute();
        if (200 != execute.getStatus()) {
            System.err.println("推送异常");
        }else{
            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
        if(jsonObject1.getIntValue("code") != 200){
            logger.debug(jsonObject1.getString("msg"));
            System.err.println(jsonObject1.getString("msg"));
        }
    }
}
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
@@ -1,15 +1,11 @@
package com.stylefeng.guns.modular.system.util;
import com.stylefeng.guns.core.util.ToolUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.Pipeline;
import java.io.IOException;
import java.util.*;
import javax.annotation.Resource;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
@@ -18,10 +14,9 @@
@Component
public class RedisUtil {
    @Autowired
    private JedisPool jedisPool;
    @Resource
    private RedisTemplate<String, Object> redisTemplate;
    private Timer timer;
    /**
@@ -30,11 +25,7 @@
     * @param value
     */
    public void setStrValue(String key, String value){
        if(ToolUtil.isNotEmpty(key) && ToolUtil.isNotEmpty(value)){
            Jedis resource = jedisPool.getResource();
            String set = resource.set(key, value);
            closeJedis(resource);
        }
        redisTemplate.opsForValue().set(key, value);
    }
@@ -45,11 +36,7 @@
     * @param time 秒
     */
    public void setStrValue(String key, String value, int time){
        if(ToolUtil.isNotEmpty(key) && ToolUtil.isNotEmpty(value)){
            Jedis resource = jedisPool.getResource();
            String setex = resource.setex(key, time, value);
            closeJedis(resource);
        }
        redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
    }
@@ -59,47 +46,10 @@
     * @return
     */
    public String getValue(String key){
        if(ToolUtil.isNotEmpty(key)){
            Jedis resource = jedisPool.getResource();
            String data = resource.get(key);
            closeJedis(resource);
            return data;
        }
        return null;
        return (String) redisTemplate.opsForValue().get(key);
    }
    /**
     * 批量获取
     * @param kes
     * @return
     */
    public List<Object> getValues(List<String> kes){
        if(null != kes){
            Jedis resource = jedisPool.getResource();
            Pipeline pipelined = resource.pipelined();
            for(String key : kes){
                pipelined.get(key);
            }
            List<Object> list = pipelined.syncAndReturnAll();
            closeJedis(resource);
            pipelined.clear();
            try {
                pipelined.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            List<Object> data = new ArrayList<>();
            for(Object o : list){
                if(null != o){
                    data.add(o);
                }
            }
            return data;
        }
        return null;
    }
    /**
@@ -107,41 +57,7 @@
     * @param key
     */
    public void remove(String key){
        if(ToolUtil.isNotEmpty(key)){
            Jedis resource = jedisPool.getResource();
            Long del = resource.del(key);
            closeJedis(resource);
        }
    }
    /**
     * 向集合key添加数据
     * @param key
     * @param members
     */
    public void addSetValue(String key, String...members){
        if(ToolUtil.isNotEmpty(key) && ToolUtil.isNotEmpty(members)){
            Jedis resource = jedisPool.getResource();
            Long sadd = resource.sadd(key, members);
            resource.close();
        }
    }
    /**
     * 返回Set集合数据
     * @param key
     * @return
     */
    public Set<String> getSetAllValue(String key){
        Set<String> smembers = new HashSet<>();
        if(ToolUtil.isNotEmpty(key)){
            Jedis resource = jedisPool.getResource();
            smembers = resource.smembers(key);
            resource.close();
        }
        return smembers;
        redisTemplate.delete(key);
    }
@@ -151,22 +67,7 @@
     * @param members
     */
    public void delSetValue(String key, String...members){
        if(ToolUtil.isNotEmpty(key) && ToolUtil.isNotEmpty(members)){
            Jedis resource = jedisPool.getResource();
            Long sadd = resource.srem(key, members);
            resource.close();
        }
    }
    /**
     * 删除资源
     * @param jedis
     */
    public void closeJedis(Jedis jedis){
        if(null != jedis){
            jedis.close();
        }
        redisTemplate.opsForSet().remove(key, members);
    }
@@ -174,31 +75,11 @@
     * redis加锁
     * @param key
     * @param value
     * @param time
     * @return
     */
    public boolean lock(String key, String value, int time){
        if(!StringUtils.isEmpty(key)){
    public boolean lock(String key, String value){
            key += "_lock";
            Jedis resource = jedisPool.getResource();
            String set = resource.set(key, value, "nx", "ex", time);
            if("OK".equals(set)){
                String finalKey = key;
                timer = new Timer();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        System.err.println("定时任务启动");
                        Jedis resource = jedisPool.getResource();
                        resource.setex(finalKey, time, value);
                        resource.close();
                    }
                }, 1000, 500);
            }
            resource.close();
            return "OK".equals(set) ? true : false;
        }
        return false;
        return redisTemplate.opsForValue().setIfAbsent(key, value);
    }
    /**
@@ -241,7 +122,7 @@
     */
    public boolean lock(int time){
        String uuid = UUID.randomUUID().toString();
        return lock("redis", uuid, time);
        return lock("redis", uuid);
    }
@@ -251,15 +132,7 @@
     * @return
     */
    public boolean unlock(String key){
        if(!StringUtils.isEmpty(key)){
            key += "_lock";
            Jedis resource = jedisPool.getResource();
            timer.cancel();//取消定时任务
            Long del = resource.del(key);
            resource.close();
            return del != 0 ? true : false;
        }
        return false;
        return redisTemplate.delete(key);
    }
    /**
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RongCloudUtil.java
@@ -22,8 +22,8 @@
 * 融云
 */
public class RongCloudUtil {
    private static String appKey = "25wehl3u20ddw";
    private static String appSecret = "gG3IjHADkAK";
    private static String appKey = "111";
    private static String appSecret = "111";
           
    private static RongCloud rongCloud = RongCloud.getInstance(appKey, appSecret);
    /**
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WoUtil.java
File was deleted
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/HWSMSUtil.java
File was renamed from management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/SMSUtil.java
@@ -16,7 +16,7 @@
 * @author zhibing.pu
 * @date 2023/3/15 11:23
 */
public class SMSUtil {
public class HWSMSUtil {
    //无需修改,用于格式化鉴权头域,给"X-WSSE"参数赋值
    private static final String WSSE_HEADER_FORMAT = "UsernameToken Username=\"%s\",PasswordDigest=\"%s\",Nonce=\"%s\",Created=\"%s\"";
    //无需修改,用于格式化鉴权头域,给"Authorization"参数赋值
@@ -32,14 +32,14 @@
    public static void send(String phones, String templateId, String templateParas) throws Exception {
        //必填,请参考"开发准备"获取如下数据,替换为实际值
        String url = "https://smsapi.cn-south-1.myhuaweicloud.com:443/sms/batchSendSms/v1"; //APP接入地址(在控制台"应用管理"页面获取)+接口访问URI
        String appKey = "9I0xrhdGXthf1fv9nn8G3glZ6Zng"; //APP_Key
        String appSecret = "U7WxwX2LVk2YD6KAHxjc9tdnXoM9"; //APP_Secret
        String sender = "8823031523874"; //国内短信签名通道号或国际/港澳台短信通道号
        String appKey = "111"; //APP_Key
        String appSecret = "11"; //APP_Secret
        String sender = "111"; //国内短信签名通道号或国际/港澳台短信通道号
//        String templateId = "8ff55eac1d0b478ab3c06c3c6a492300"; //模板ID
        //条件必填,国内短信关注,当templateId指定的模板类型为通用模板时生效且必填,必须是已审核通过的,与模板类型一致的签名名称
        //国际/港澳台短信不用关注该参数
        String signature = "超省新代驾"; //签名名称
        String signature = "111"; //签名名称
        //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔
//        String receiver = "+86151****6789,+86152****7890"; //短信接收人号码
@@ -242,7 +242,7 @@
    public static void main(String[] ages){
        try {
            SMSUtil.send("15828353127", "1d0f0cbe5b214b0d8efa891730eb532a", "[\"" + 123456 + "\"]");
            HWSMSUtil.send("15828353127", "1d0f0cbe5b214b0d8efa891730eb532a", "[\"" + 123456 + "\"]");
        } catch (Exception e) {
            e.printStackTrace();
        }
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java
@@ -14,9 +14,9 @@
public class OBSUtil {
    public static String endPoint = "https://obs.cn-south-1.myhuaweicloud.com";
    public static String ak = "N52IGR6DHOC3JAZFHZIW";
    public static String sk = "jq7Q7jnFS4Gxamwh3naN2sbNKwQQ7cZISPVumGBS";
    public static String bucketname = "csxdj";
    public static String ak = "111";
    public static String sk = "111";
    public static String bucketname = "111";
    /**
     * 上传文件
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java
New file
@@ -0,0 +1,243 @@
package com.stylefeng.guns.modular.system.util.qianyuntong;
import com.heredata.hos.HOS;
import com.heredata.hos.HOSClientBuilder;
import com.heredata.hos.model.CreateBucketRequest;
import com.heredata.hos.model.HOSObject;
import com.heredata.hos.model.PutObjectRequest;
import com.heredata.hos.model.PutObjectResult;
import com.heredata.hos.model.bucket.Bucket;
import com.heredata.model.VoidResult;
import com.stylefeng.guns.modular.system.util.SpringContextsUtil;
import lombok.extern.slf4j.Slf4j;
import java.io.InputStream;
/**
 * OSS 工具类
 * @author zhibing.pu
 * @Date 2025/6/23 17:50
 */
@Slf4j
public class NCOSSUtil {
    private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();;
    /**
     * 创建桶
     * @param bucketName
     * @return
     */
    public static Boolean createBucket(String bucketName) {
        /**
         * endPoint:HOS的基础路径(公共前缀)
         * account:账户的ID
         * accessKey:向UAAS服务请求到的access_key
         * secretKey:向UAAS服务请求到的secret_key
         */
        HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
        try {
            // 创建请求对象,并且设置创建桶名为"example"的桶
            CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
            VoidResult result = hos.createBucket(createBucketRequest);
            if (result.getResponse().isSuccessful()) {
                log.info("创建桶成功:" + bucketName);
                return true;
            }
        } catch (Exception e){
            log.info("创建桶失败:" + bucketName);
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 查询桶详情
     * @param bucketName
     * @return
     */
    public static Bucket getBucketInfo(String bucketName) {
        /**
         * endPoint:HOS的基础路径(公共前缀)
         * account:账户的ID
         * accessKey:向UAAS服务请求到的access_key
         * secretKey:向UAAS服务请求到的secret_key
         */
        HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
        try {
            // 查询桶名为"example"的详情
            Bucket bucket = hos.getBucketInfo(bucketName);
            return bucket;
        } catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 删除桶
     * @param bucketName
     * @return
     */
    public static Boolean deleteBucket(String bucketName) {
        /**
         * endPoint:HOS的基础路径(公共前缀)
         * account:账户的ID
         * accessKey:向UAAS服务请求到的access_key
         * secretKey:向UAAS服务请求到的secret_key
         */
        HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
        try {
            VoidResult result = hos.deleteBucket(bucketName);
            if (result.getResponse().isSuccessful()) {
                log.info("删除桶成功:" + bucketName);
                return true;
            }
        } catch (Exception e){
            log.info("删除桶成功:" + bucketName);
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 设置桶策略
     * @param bucketName    桶名
     * @param policyText    策略规则字符串
     * {
     *   // 策略配置的版本号,由用户定义
     *   "Version": "2012-10-17",
     *   //  策略规则配置,可指定多条策略规则
     *   "Statement": [{
     *     // 策略规则ID,可用户指定,如不指定则服务自动生成一条
     *     "Sid": "sid",
     *     // 策略规则指定的HOS API接口标识,可参照下表填写
     *     "Action": [
     *       "action"
     *     ],
     *     // 策略规则效果,具体表现为允许或拒绝,有效值为Allow(允许),Deny(拒绝);
     *     "Effect": "Allow",
     *     // 策略规则指定的资源参照下面resource配置
     *     "Resource": "resource",
     *     // 策略规则指定的授权人 参照下面Principal配置
     *     "Principal": {
     *       "HWS": [
     *         "account_id:root"
     *       ]
     *     }
     *   }
     *   ]
     * }
     * @return
     */
    public static Boolean setBucketPolicy(String bucketName, String policyText) {
        /**
         * endPoint:HOS的基础路径(公共前缀)
         * account:账户的ID
         * accessKey:向UAAS服务请求到的access_key
         * secretKey:向UAAS服务请求到的secret_key
         */
        HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
        // 桶策略字符串
        try {
            VoidResult result = hos.setBucketPolicy(bucketName, policyText);
            if (result.getResponse().isSuccessful()) {
                log.info("设置桶策略成功:" + bucketName);
                return true;
            }
        } catch (Exception e) {
            log.info("设置桶策略失败:" + bucketName);
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 上传对象
     * @param bucketName    桶名称
     * @param key           存储文件名
     * @param inputStream      上传文件流
     * @return  对象唯一标识
     */
    public static String putObject(String bucketName, String key, InputStream inputStream) {
        /**
         * endPoint:HOS的基础路径(公共前缀)
         * account:账户的ID
         * accessKey:向UAAS服务请求到的access_key
         * secretKey:向UAAS服务请求到的secret_key
         */
        HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
        try {
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key , inputStream);
            PutObjectResult example = hos.putObject(putObjectRequest);
            if (example.getResponse().isSuccessful()) {
                log.info("上传对象成功:" + bucketName + "--->" + key);
                return example.getETag();
            }
        } catch (Exception e) {
            log.info("上传对象成功:" + bucketName);
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 查询对象
     * @param bucketName    桶名称
     * @param key           存储文件名
     * @return
     */
    public static HOSObject getObject(String bucketName, String key) {
        /**
         * endPoint:HOS的基础路径(公共前缀)
         * account:账户的ID
         * accessKey:向UAAS服务请求到的access_key
         * secretKey:向UAAS服务请求到的secret_key
         */
        HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
        try {
            HOSObject example = hos.getObject(bucketName, key);
            if (example.getResponse().isSuccessful()) {
                log.info("查询对象成功:" + bucketName + "--->" + key);
                return example;
            }
        } catch (Exception e) {
            log.info("查询对象失败:" + bucketName);
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 删除对象
     * @param bucketName     桶名称
     * @param key          存储文件名
     * @return
     */
    public static Boolean deleteObject(String bucketName, String key) {
        /**
         * endPoint:HOS的基础路径(公共前缀)
         * account:账户的ID
         * accessKey:向UAAS服务请求到的access_key
         * secretKey:向UAAS服务请求到的secret_key
         */
        HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
        try {
            VoidResult example = hos.deleteObject(bucketName, key);
            if (example.getResponse().isSuccessful()) {
                log.info("删除对象成功:" + bucketName + "--->" + key);
                return true;
            }
        } catch (Exception e) {
            log.info("删除对象失败:" + bucketName + "--->" + key);
            e.printStackTrace();
        }
        return false;
    }
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java
New file
@@ -0,0 +1,203 @@
package com.stylefeng.guns.modular.system.util.qianyuntong;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
 * @author zhibing.pu
 * @Date 2025/7/8 11:31
 */
@Component
public class QianYunTongConfig {
    @Value("${spring.profiles.active}")
    private String activeProfile;
    /**
     * appkey
     */
    private String appkey;
    /**
     * 私钥地址
     */
    private String privateKeyPath;
    /**
     * 消费者账号
     */
    private String userName;
    /**
     * 状态
     * 1:生产环境
     * 2:测试环境
     */
    private String status;
    /**
     * API地址
     */
    private String apiUrl;
    /**
     * 桶名
     */
    private String bucketName;
    /**
     * 小程序appId
     */
    private String appId;
    /**
     * HOS的基础路径(公共前缀)
     */
    private String endPoint;
    /**
     * 账户的ID
     */
    private String account;
    /**
     * 向UAAS服务请求到的access_key
     */
    private String accessKey;
    /**
     * 向UAAS服务请求到的secret_key
     */
    private String secretKey;
    public String getActiveProfile() {
        return activeProfile;
    }
    public void setActiveProfile(String activeProfile) {
        this.activeProfile = activeProfile;
    }
    public String getAppkey() {
        return appkey;
    }
    public void setAppkey(String appkey) {
        this.appkey = appkey;
    }
    public String getPrivateKeyPath() {
        return privateKeyPath;
    }
    public void setPrivateKeyPath(String privateKeyPath) {
        this.privateKeyPath = privateKeyPath;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public String getApiUrl() {
        return apiUrl;
    }
    public void setApiUrl(String apiUrl) {
        this.apiUrl = apiUrl;
    }
    public String getBucketName() {
        return bucketName;
    }
    public void setBucketName(String bucketName) {
        this.bucketName = bucketName;
    }
    public String getAppId() {
        return appId;
    }
    public void setAppId(String appId) {
        this.appId = appId;
    }
    public String getEndPoint() {
        return endPoint;
    }
    public void setEndPoint(String endPoint) {
        this.endPoint = endPoint;
    }
    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public String getAccessKey() {
        return accessKey;
    }
    public void setAccessKey(String accessKey) {
        this.accessKey = accessKey;
    }
    public String getSecretKey() {
        return secretKey;
    }
    public void setSecretKey(String secretKey) {
        this.secretKey = secretKey;
    }
    public QianYunTongConfig getQianYunTongConfig() {
        if("dev".equals(activeProfile)){
            this.appkey = "10001104";
            this.privateKeyPath = "C:\\Users\\Admin\\Desktop\\qyt\\private_key_test.pem";
            this.userName = "xiaofei";
            this.status = "1";
            this.setApiUrl("https://test-zhongtai.stqcloud.com:10070");
            this.setBucketName("bucuTest0625");
            this.setAppId("wxcc3c9058e2b294db");
            this.setEndPoint("http://119.4.112.68:27741/v1");
            this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
            this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
            this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
        }
        if("test".equals(activeProfile)){
            this.setAppkey("10001104");
            this.setPrivateKeyPath("/etraffic/server/private_key_test.pem");
            this.setUserName("xiaofei");
            this.setStatus("1");
            this.setApiUrl("https://test-zhongtai.stqcloud.com:10070");
            this.setBucketName("bucuTest0625");
            this.setAppId("wxcc3c9058e2b294db");
            this.setEndPoint("http://119.4.112.68:27741/v1");
            this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
            this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
            this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
        }
        if("prod".equals(activeProfile)){
            this.setAppkey("10001104");
            this.setPrivateKeyPath("/root/server/app/key/private_key.pem");
            this.setUserName("xiwang");
            this.setStatus("1");
            this.setApiUrl("http://jjzhongtai.stqcloud.com:10010");
            this.setBucketName("qyt20250702");
            this.setAppId("wxcc3c9058e2b294db");
            this.setEndPoint("http://119.4.112.68:27741/v1");
            this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
            this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
            this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
        }
        return this;
    }
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java
New file
@@ -0,0 +1,40 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/6 18:12
 */
@Data
public class CheckEnterExist {
    /**
     * 企业ID
     */
    private String id;
    /**
     * 是否在公有云注册,1:已注册;0:未注册
     */
    private String isReg;
    /**
     * 创建者手机号
     */
    private String mobile;
    /**
     * 创建时间
     */
    private String createTime;
    /**
     * 法人姓名
     */
    private String larName;
    /**
     * 企业编码
     */
    private String enterCode;
    /**
     * 认证状态
     * 0:已认证;1:未认证,初始状态;2:认证不通过;3:认证中
     */
    private Integer auth;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java
New file
@@ -0,0 +1,46 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/9 19:43
 */
@Data
public class CreateEnterprise {
    /**
     * 企业ID
     */
    private String id;
    /**
     * 开通易信状态
     * 0:成功 1:失败
     */
    private String callYixinApi;
    /**
     * 开通办公门户状态
     * 0:成功 1:失败
     */
    private String callItdSaveCompany;
    /**
     * 开通企业官网状态
     * 0:成功 1:失败
     */
    private String callItdDredgeWebsite;
    /**
     * 电话号码
     */
    private String phone;
    /**
     * 企业idcode
     */
    private String idCode;
    /**
     * 企业节点ID
     */
    private String noteId;
    /**
     * 是否新注册企业
     */
    private String isNew;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java
New file
@@ -0,0 +1,118 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/9 18:20
 */
@Data
public class CreateEnterpriseRequest {
    /**
     * 企业名称
     */
    private String name;
    /**
     * 企业简称/昵称
     */
    private String nickName;
    /**
     * 行业编码
     */
    private String industry_code;
    /**
     * 手机号码
     */
    private String mobile;
    /**
     * 区域编码
     */
    private String area;
    /**
     * 企业地址
     */
    private String address;
    /**
     * 二级域名
     */
    private String secondRealmName;
    /**
     * 企业密码
     */
    private String password;
    /**
     * 一级行业分类描述
     */
    private String industry_level1;
    /**
     * 二级行业分类描述
     */
    private String industry_level2;
    /**
     * 企业来源编码
     */
    private String sourceCode;
    /**
     * 企业分类编码
     */
    private String typeCode;
    /**
     * 代理商id
     */
    private String elecsId;
    /**
     * 是否发送短信
     * 0:不发送,1:发送
     */
    private String smsFlag;
    /**
     * 是否激活
     * 1:激活;0:未激活
     */
    private String mobileFlag;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 邮箱是否激活
     * 1:激活;0:未激活
     */
    private String emailFlag;
    /**
     * 是否同步通讯录
     */
    private String contact_source;
    /**
     * 所属行业通用编码
     */
    private String trade_code;
    /**
     * 营业执照扫描件url
     */
    private String operScanPic;
    /**
     * 运营人员姓名
     */
    private String idcardName;
    /**
     * 运营者身份证号码
     */
    private String idcardNum;
    /**
     * 运营者身份证照片url
     */
    private String idcardPic;
    /**
     * 企业工号
     */
    private String enterID;
    /**
     * 推荐人
     */
    private String recommender;
    /**
     * 创建者姓名
     */
    private String creatorName;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
New file
@@ -0,0 +1,23 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/6 16:39
 */
@Data
public class DeleteStafNodeRequest {
    /**
     * 人员ID
     */
    private Long empId;
    /**
     * 手机号
     */
    private String mobile;
    /**
     * 企业编号
     */
    private String entercode;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java
New file
@@ -0,0 +1,72 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/6 16:32
 */
@Data
public class EditStaffNodeRequest {
    /**
     * 人员ID
     */
    private Long empId;
    /**
     * 操作人手机号
     */
    private String mobile;
    /**
     * 操作人企业ID
     */
    private String entercode;
    /**
     * 企业ID
     */
    private Long enterId;
    /**
     * 人员显示名
     */
    private String empName;
    /**
     * 人员显示名
     */
    private String empNickname;
    /**
     * 手机号
     */
    private String mphone;
    /**
     * 登录账号
     */
    private String loginNo;
    /**
     * 人员性别(男\女)
     */
    private String empSex;
    /**
     * 人员邮箱
     */
    private String email;
    /**
     * 员工所属部门ID多个部门英文; 分割
     */
    private String deptIds;
    /**
     * 员工职务ID
     */
    private Integer positionId;
    /**
     * 员工职务名称,如不知道ID可以直接传入名称
     */
    private String positionName;
    /**
     * 高管模式 1 是 0 不是
     */
    private Integer superLevel;
    /**
     * 隐藏号码 1 是 0 不是
     */
    private Integer hideMobile;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java
New file
@@ -0,0 +1,259 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/6 17:14
 */
@Data
public class EnterpriseInfo {
    /**
     * 企业ID
     */
    private String id;
    /**
     * 企业编号
     */
    private String enter_code;
    /**
     * 企业名称
     */
    private String enter_name;
    /**
     * 是否是全员号码可见,0:是,1:否
     */
    private String visible;
    /**
     * 认证状态,0:已认证;1:未认证,初始状态;2:认证不通过;3:认证中
     */
    private String auth;
    /**
     * 认证时间
     */
    private String auth_time;
    /**
     * 认证注释
     */
    private String authRemark;
    /**
     * 运营者姓名(委托人)
     */
    private String idcard_name;
    /**
     * 运营者证件号
     */
    private String idcard_num;
    /**
     * 运营者证件扫描件URL
     */
    private String idcard_pic;
    /**
     * 统一社会信用代码
     */
    private String uscc;
    /**
     * 法人姓名
     */
    private String larName;
    /**
     * 法人电话
     */
    private String larPhone;
    /**
     * 法人身份证
     */
    private String larIdCard;
    /**
     * 法人身份证扫描件URL
     */
    private String larIdCardPic;
    /**
     * 发票名称
     */
    private String invoiceName;
    /**
     * 纳税人识别号(发票)
     */
    private String invoiceTIN;
    /**
     * 开户行名称(发票)
     */
    private String invoiceBankersName;
    /**
     * 开户行账号(发票)
     */
    private String invoiceBankersAccount;
    /**
     * 资质机构名称
     */
    private String qualificationOrgName;
    /**
     * 资质注册号/登记号
     */
    private String qualificationRegNum;
    /**
     * 资质有效开始时间
     */
    private String qualificationStartTime;
    /**
     * 资质有效结束时间
     */
    private String qualificationEndTime;
    /**
     * 资格证书扫描件URL
     */
    private String qualificationCertUrl;
    /**
     * 省份编码
     */
    private String provinceCode;
    /**
     * 地市编码
     */
    private String cityCode;
    /**
     * 区县编码
     */
    private String areaCode;
    /**
     * 乡镇编码
     */
    private String townshipCode;
    /**
     * 企业创建时间
     */
    private String enter_createdate;
    /**
     * 地址
     */
    private String address;
    /**
     * 营业期开始时间,格式:yyyy-MM-dd HH:mm:ss
     */
    private String businessTermStartTime;
    /**
     * 营业期结束时间,格式:yyyy-MM-dd HH:mm:ss
     */
    private String businessTermEndTime;
    /**
     * 企业规模
     */
    private String enterScale;
    /**
     * 创建者职位
     */
    private String creatorPosition;
    /**
     * 企业备注/介绍
     */
    private String enterRemark;
    /**
     * 企业logo
     */
    private String enterLogo;
    /**
     * 企业邮箱
     */
    private String enterEmail;
    /**
     * 企业联系电话rg_company_info.enter_tel
     */
    private String enterTel;
    /**
     * 一级行业分类编码
     */
    private String industryStr;
    /**
     * 二级行业分类编码
     */
    private String industryStr2;
    /**
     * 企业联系人姓名
     */
    private String enterLinkman;
    /**
     * 营业执照扫描件ur
     */
    private String operScanPic;
    /**
     * 身份证有效期
     */
    private String larIdCardValidity;
    /**
     * 经营地址
     */
    private String operationAddress;
    /**
     * 法人身份证背面照片
     */
    private String larIdCardPicBack;
    /**
     * 法人身份证手持
     */
    private String larIdCardPicHold;
    /**
     * 开户许可证
     */
    private String accountOpeningPermit;
    /**
     * 自定义的,例如:企业类型
     */
    private String tag1;
    /**
     * 自定义的,例如:行业类型
     */
    private String tag2;
    /**
     * 企业扩展信息
     */
    private String iformContentId;
    /**
     * 国家统计局网站提供的行政地区编码
     */
    private String area;
    /**
     * 行业编码
     */
    private String industryCode;
    /**
     * 企业创建人姓名
     */
    private String creatorName;
    /**
     * 企业创建人手机号
     */
    private String creatorMobile;
    /**
     * 管理员邮箱
     */
    private String email;
    /**
     * 企业简称
     */
    private String enterAbbreviation;
    /**
     * 营业期限
     */
    private String businessTermLong;
    /**
     * 一级行业名称
     */
    private String industryL1Name;
    /**
     * 二级行业名称
     */
    private String industryL2Name;
    /**
     * 企业介绍(全文本)
     */
    private String enterIntro;
    /**
     * 法人身份证正面照片
     */
    private String larIdCardPicFront;
    /**
     * 企业主税机关
     */
    private String enterTaxAuthority;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
New file
@@ -0,0 +1,23 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/6 16:42
 */
@Data
public class GetStaffNodeRequest {
    /**
     * 人员ID
     */
    private Long empId;
    /**
     * 操作人手机号
     */
    private String mobile;
    /**
     * 操作人企业ID
     */
    private String entercode;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/LoginWeChatXiao.java
New file
@@ -0,0 +1,39 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/16 23:50
 */
@Data
public class LoginWeChatXiao {
    /**
     * token
     */
    private String token;
    /**
     * 用户UUID
     */
    private String userUUID;
    /**
     * 用户手机号
     */
    private String mobile;
    /**
     * 企业名称,无企业时为空
     */
    private String enterName;
    /**
     * 企业编码
     */
    private String enterCode;
    /**
     * 企业认证状态
     */
    private String enterAuth;
    /**
     * 是否是管理员,是:1;否:0
     */
    private String isAdmin;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java
New file
@@ -0,0 +1,75 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/9 18:13
 */
@Data
public class ModifyEnterpriseInfoRequest {
    /**
     * 企业编码
     */
    private String enter_code;
    /**
     * 操作人员手机号
     */
    private String operator;
    /**
     * 企业名称
     */
    private String enter_name;
    /**
     * 企业简称
     */
    private String enter_nickname;
    /**
     * 企业地址
     */
    private String enter_address;
    /**
     * 企业邮箱
     */
    private String enter_email;
    /**
     * 联系人姓名
     */
    private String contact_name;
    /**
     * 联系人手机号
     */
    private String contact_mobile;
    /**
     * 营业执照扫描件URL
     */
    private String operscanpic;
    /**
     * 营业期开始时间
     */
    private String businessTermStartTime;
    /**
     * 营业期结束时间
     */
    private String businessTermEndTime;
    /**
     * 区域编码
     */
    private String area;
    /**
     * 二级域名
     */
    private String second_realms;
    /**
     * 企业来源编码
     */
    private String source_code;
    /**
     * 店铺所属行业编码
     */
    private String trade_code;
    /**
     * 企业分类编码
     */
    private String type_code;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java
New file
@@ -0,0 +1,25 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data; /**
 * @author zhibing.pu
 * @Date 2025/6/10 10:42
 */
@Data
public class ModifyPwdRequest {
    /**
     * 手机号码
     */
    private String mobile;
    /**
     * 旧密码
     */
    private String oldPwd;
    /**
     * 新密码
     */
    private String newPwd;
    /**
     * 验证码
     */
    private String code;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java
New file
@@ -0,0 +1,44 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * 用户信息
 * @author zhibing.pu
 * @Date 2025/6/6 15:11
 */
@Data
public class QYTUserInfo {
    /**
     * 员工名称
     */
    private String empName;
    /**
     * 企业编号
     */
    private String enterNum;
    /**
     * 节点路径
     */
    private String nodePath;
    /**
     * 员工昵称
     */
    private String nickName;
    /**
     * 员工编号
     */
    private Long empId;
    /**
     * 手机号码
     */
    private String mphone;
    /**
     * 员工在企业内部的编号
     */
    private String loginNo;
    /**
     * 部门ID
     */
    private Long deptId;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java
New file
@@ -0,0 +1,26 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data; /**
 * @author zhibing.pu
 * @Date 2025/6/10 11:34
 */
@Data
public class RegisterViaMobile {
    /**
     * 响应码
     * 0:成功;1:失败;2:手机号非法;3:验证码已过期;4:验证码错误;5、用户已存在;9:弱密码
     */
    private String status;
    /**
     * 响应描述
     */
    private String desc;
    /**
     * web登录密码
     */
    private String password;
    /**
     * 用户UUID
     */
    private String onconUUID;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java
New file
@@ -0,0 +1,46 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/6 16:59
 */
@Data
public class RegisterViaMobileRequest {
    /**
     * 手机号码
     */
    private String mobile;
    /**
     * 客户端appid
     */
    private String appId;
    /**
     * 用户密码
     */
    private String password;
    /**
     * 短信验证码
     */
    private String verify_code;
    /**
     * 验证码类型
     * 0:短信发送的验证码;1:一键获取手机号返回注册验证码;2、验证码验证成功后生成的Ticket
     */
    private String verify_code_type;
    /**
     * 加密类型
     * 第三方系统可以填写空
     */
    private String encryptType;
    /**
     * 用户类型
     * 0:普通用户
     */
    private String user_type;
    /**
     * 昵称
     */
    private String nickname;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java
New file
@@ -0,0 +1,27 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/10 10:42
 */
@Data
public class ResetPwdRequest {
    /**
     * 手机号码
     */
    private String mobile;
    /**
     * 密码
     */
    private String password;
    /**
     * 验证码
     */
    private String code;
    /**
     * 客户端appid
     */
    private String appid;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java
New file
@@ -0,0 +1,31 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @date 2025/6/14 14:10
 */
@Data
public class SaveStaffNode {
    /**
     * 人员ID
     */
    private Long empId;
    /**
     * 员工名称
     */
    private String empName;
    /**
     * 员工昵称
     */
    private String empNickname;
    /**
     * 手机号
     */
    private String mphone;
    /**
     * 登录账号
     */
    private String loginNo;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java
New file
@@ -0,0 +1,63 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/6 16:22
 */
@Data
public class SaveStaffNodeRequest {
    /**
     * 操作人手机号
     */
    private String mobile;
    /**
     * 操作人企业ID
     */
    private String entercode;
    /**
     * 人员名称
     */
    private String empName;
    /**
     * 人员显示名
     */
    private String empNickname;
    /**
     * 人员账号
     */
    private String loginNo;
    /**
     * 人员性别
     */
    private String empSex;
    /**
     * 人员手机号
     */
    private String mphone;
    /**
     * 人员邮箱
     */
    private String email;
    /**
     * 员工所属部分ID
     */
    private Integer deptId;
    /**
     * 员工职务ID
     */
    private Integer positionId;
    /**
     * 员工职务名称
     */
    private String positionName;
    /**
     * 高管模式 1 是 0 不是
     */
    private Integer superLevel;
    /**
     * 隐藏号码 1 是 0 不是
     */
    private Integer hideMobile;
}
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java
New file
@@ -0,0 +1,91 @@
package com.stylefeng.guns.modular.system.util.qianyuntong.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2025/6/6 16:44
 */
@Data
public class StaffNodeInfo {
    /**
     * 人员ID
     */
    private Long empId;
    /**
     * 主要号码
     */
    private String mainMphone;
    /**
     * 备注
     */
    private String remark;
    /**
     * 企业ID
     */
    private String enterNum;
    /**
     * 加密企业名称
     */
    private String empNameEncode;
    /**
     * 人员名称
     */
    private String empName;
    /**
     * 人员显示名
     */
    private String empNickname;
    /**
     * 人员账号
     */
    private String loginNo;
    /**
     * 人员性别(男\女)
     */
    private String empSex;
    /**
     * 人员手机号
     */
    private String mphone;
    /**
     * 人员邮箱加密
     */
    private String mainEmailEncode;
    /**
     * 所属企业id
     */
    private Long enterId;
    /**
     * 唯一编号
     */
    private String onconuuid;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 员工所属部门ID多个部门英文; 分割
     */
    private Integer deptId;
    /**
     * 员工职位ID
     */
    private Long positionId;
    /**
     * 员工职位名称
     */
    private String positionName;
    /**
     * 高管模式 1 是 0 不是
     */
    private Integer superLevel;
    /**
     * 隐藏手机号 1 是 0 否
     */
    private Integer hideMobile;
    /**
     * 有效状态(0=否,1=是)
     */
    private String isValid;
}
management/guns-admin/src/main/resources/application-dev.yml
New file
@@ -0,0 +1,93 @@
server:
  port: 8019
guns:
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
#  file-upload-path: C:\Users\hi\Desktop\ #文件上传目录(不配置的话为java.io.tmpdir目录)
#  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
  file-upload-path: C:\Users\Administrator\Desktop\apache-tomcat-8.0.33\webapps\ROOT\upload\ #文件上传目录(不配置的话为java.io.tmpdir目录)
  picture-server-address: http://139.9.249.67:8080/upload/  #图片服务器地址
  rest-url: http://139.9.249.67:8080/rest/    #前端接口调用基础路径
spring:
  profiles:
    active: dev
  mvc:
    static-path-pattern: /static/**
    view:
      prefix: /WEB-INF/view
  devtools:
    restart:
      enabled: false
      additional-paths: src/main/java
      exclude: static/**,WEB-INF/view/**
  servlet:
    multipart:
      max-request-size: 100MB
      max-file-size: 100MB
  redis:
    host: 192.168.110.80
    port: 6379
    password: 123456
mybatis-plus:
  type-aliases-package: com.stylefeng.guns.modular.system.model
  global-config:
    id-type: 0  #0:数据库ID自增   1:用户输入id  2:全局唯一id(IdWorker)  3:全局唯一ID(uuid)
    db-column-underline: false
  configuration:
    configuration.map-underscore-to-camel-case: true #是否开启自动驼峰命名规则(camel case)映射
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #输出Sql,如需打印Sql注释该配置
wx:
  conf:
    appId: wxcc3c9058e2b294db
    secret: 5610fc6126255ca5f7bd9fa4330338b6
gaode:
  map:
    key: ea7326a77175aba0e9435859b17bca36 #高德key
---
spring:
  datasource:
    url: jdbc:mysql://192.168.110.80:3306/qyt_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8
    username: root
    password: 123456
    db-name: qyt_driving #用来搜集数据库的所有表
    filters: wall,mergeStat
  data:
    mongodb:
      uri: mongodb://192.168.110.80:27017/test
---
filePath: /usr/local/server/app/orderPostionFile/ #存储订单轨迹文件路径
---
#支付回调地址
callbackPath: https://chaoshengdaijia.com:8443
---
#  mallbook 调起接口参数配置
mallbook:
  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
  pay_url: https://cloudpay.mallbook.cn/api
  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
  merchant_no: 111
  # version 接口版本号
  version: 1.0.0
  # channel_type 渠道类型 HF:汇付
  channel_type: HF
  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
  merchant_private_key: 1111
  # mall_book_public_key mallbook测试环境公钥 不需要替换
  mall_book_public_key: 1111
management/guns-admin/src/main/resources/application-produce.yml
New file
@@ -0,0 +1,111 @@
server:
  port: 8019
guns:
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
#  file-upload-path: C:\Users\hi\Desktop\ #文件上传目录(不配置的话为java.io.tmpdir目录)
#  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
  file-upload-path: C:\Users\Administrator\Desktop\apache-tomcat-8.0.33\webapps\ROOT\upload\ #文件上传目录(不配置的话为java.io.tmpdir目录)
  picture-server-address: http://139.9.249.67:8080/upload/  #图片服务器地址
  rest-url: http://139.9.249.67:8080/rest/    #前端接口调用基础路径
spring:
  profiles:
    active: dev
#    active: produce
  mvc:
    static-path-pattern: /static/**
    view:
      prefix: /WEB-INF/view
  devtools:
    restart:
      enabled: false
      additional-paths: src/main/java
      exclude: static/**,WEB-INF/view/**
  servlet:
    multipart:
      max-request-size: 100MB
      max-file-size: 100MB
  redis:
    host: 192.168.110.80
    port: 6379
    password: 123456
mybatis-plus:
  type-aliases-package: com.stylefeng.guns.modular.system.model
  global-config:
    id-type: 0  #0:数据库ID自增   1:用户输入id  2:全局唯一id(IdWorker)  3:全局唯一ID(uuid)
    db-column-underline: false
  configuration:
    configuration.map-underscore-to-camel-case: true #是否开启自动驼峰命名规则(camel case)映射
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #输出Sql,如需打印Sql注释该配置
wx:
  conf:
    appId: wx8a9af3889395d0e1
    secret: 95a34f114973298cce4297a20bb59bc3
gaode:
  map:
    key: e0370a9a4d10739045fb0b8f4742a67e #高德key
---
spring:
  datasource:
#    url: jdbc:mysql://192.168.110.64:3306/ok_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8
#    username: root
#    password: root
    url: jdbc:mysql://121.31.232.206:3306/ok_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: Xiwang2024!
    db-name: super_save_driving #用来搜集数据库的所有表
    filters: wall,mergeStat
  data:
    mongodb:
      uri: mongodb://121.31.232.206:27017/test
#多数据源情况的配置
guns:
  muti-datasource:
    open: false
    url: jdbc:mysql://120.24.34.190:3306/mask?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: Root2020!
    dataSourceNames:
      - dataSourceGuns
      - dataSourceBiz
---
filePath: /usr/local/server/app/orderPostionFile/ #存储订单轨迹文件路径
#filePath: C:/orderPostionFile/  #存储订单轨迹文件路径
---
#支付回调地址
#正式环境
callbackPath: https://chaoshengdaijia.com:8443
#测试环境
#callbackPath: http://121.37.15.157:8010
---
#  mallbook 调起接口参数配置
mallbook:
  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
  pay_url: https://cloudpay.mallbook.cn/api
  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
  merchant_no: MBH23056
  # version 接口版本号
  version: 1.0.0
  # channel_type 渠道类型 HF:汇付
  channel_type: HF
  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
  merchant_private_key: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALHmyTrxPYcAwABnX+3VW9vxUftm57zBpnbfOT4vizMnKdpfCkIgtdbfdnSCtt637yWM2fxnZfItnhTeQA2lL8f4SXgZt/bVXfmAWi4IxQ+HJy0Qs8nNy2nnjICPBPcpWzHwUxQ/THHqU0a7b9B91J5DFcbQb25BHeRpHwkBw6A/AgMBAAECgYAmcWq2s/7Jt53F+JDAQkTRaHqAyyH0phwkv+QMzhVUfngK2lLLK2pf/nYIg16lDjY9dQx+AJIFHVp1w/kveayzOz3BIqPoznyIVYPolRGZCWPo+2vdp0CIdBh7zahST5g5Gem4cU47wO5hPYs1kXKPG4mUPtaIAMHFxhyLvIagAQJBAOS63AIZrRrldeNCVVNXbpAT52JuWLCgravM9coOh6scmG6UQwxxcott8hneHr9fazk2LHbHMxlG8F+dQPA0+D8CQQDHHJN7Dnske8oJ+1sq4uhQP3HMsmNIgth+ZcaZpiPcxnNKYVGhzAwTVV2ruFJle5ajebo6zfWuqJhtZGRNh1gBAkA/lRoXk1+lfGfa9tOVSVa4wm+t0xLgdqoQefdRZdyc2mQdSSWiTd8Tl0qXmkFd3X6G9uJBWnp/6lJjoektXOwtAkBsZTQsw99qJzIAaSRinpDWTxPG2j6OlR0DAqkxsG7JnAfbsEteh9TzGYAbIgdJVBTX/kbSCJn9ca85rnOkeVABAkAUbDfU3Z702z20NtwAxc1IkrtQ1lKuqSpj9/LuR1/6KRkYQsUWnUiOO9hu5YDWIcflFrnCenF8j8OnvGghltxT
  # mall_book_public_key mallbook测试环境公钥 不需要替换
  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
management/guns-admin/src/main/resources/application-test.yml
New file
@@ -0,0 +1,111 @@
server:
  port: 8019
guns:
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
#  file-upload-path: C:\Users\hi\Desktop\ #文件上传目录(不配置的话为java.io.tmpdir目录)
#  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
  file-upload-path: C:\Users\Administrator\Desktop\apache-tomcat-8.0.33\webapps\ROOT\upload\ #文件上传目录(不配置的话为java.io.tmpdir目录)
  picture-server-address: http://139.9.249.67:8080/upload/  #图片服务器地址
  rest-url: http://139.9.249.67:8080/rest/    #前端接口调用基础路径
spring:
  profiles:
    active: dev
#    active: produce
  mvc:
    static-path-pattern: /static/**
    view:
      prefix: /WEB-INF/view
  devtools:
    restart:
      enabled: false
      additional-paths: src/main/java
      exclude: static/**,WEB-INF/view/**
  servlet:
    multipart:
      max-request-size: 100MB
      max-file-size: 100MB
  redis:
    host: 192.168.110.80
    port: 6379
    password: 123456
mybatis-plus:
  type-aliases-package: com.stylefeng.guns.modular.system.model
  global-config:
    id-type: 0  #0:数据库ID自增   1:用户输入id  2:全局唯一id(IdWorker)  3:全局唯一ID(uuid)
    db-column-underline: false
  configuration:
    configuration.map-underscore-to-camel-case: true #是否开启自动驼峰命名规则(camel case)映射
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #输出Sql,如需打印Sql注释该配置
wx:
  conf:
    appId: wx8a9af3889395d0e1
    secret: 95a34f114973298cce4297a20bb59bc3
gaode:
  map:
    key: e0370a9a4d10739045fb0b8f4742a67e #高德key
---
spring:
  datasource:
#    url: jdbc:mysql://192.168.110.64:3306/ok_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8
#    username: root
#    password: root
    url: jdbc:mysql://121.31.232.206:3306/ok_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: Xiwang2024!
    db-name: super_save_driving #用来搜集数据库的所有表
    filters: wall,mergeStat
  data:
    mongodb:
      uri: mongodb://121.31.232.206:27017/test
#多数据源情况的配置
guns:
  muti-datasource:
    open: false
    url: jdbc:mysql://120.24.34.190:3306/mask?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: Root2020!
    dataSourceNames:
      - dataSourceGuns
      - dataSourceBiz
---
filePath: /usr/local/server/app/orderPostionFile/ #存储订单轨迹文件路径
#filePath: C:/orderPostionFile/  #存储订单轨迹文件路径
---
#支付回调地址
#正式环境
callbackPath: https://chaoshengdaijia.com:8443
#测试环境
#callbackPath: http://121.37.15.157:8010
---
#  mallbook 调起接口参数配置
mallbook:
  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
  pay_url: https://cloudpay.mallbook.cn/api
  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
  merchant_no: MBH23056
  # version 接口版本号
  version: 1.0.0
  # channel_type 渠道类型 HF:汇付
  channel_type: HF
  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
  merchant_private_key: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALHmyTrxPYcAwABnX+3VW9vxUftm57zBpnbfOT4vizMnKdpfCkIgtdbfdnSCtt637yWM2fxnZfItnhTeQA2lL8f4SXgZt/bVXfmAWi4IxQ+HJy0Qs8nNy2nnjICPBPcpWzHwUxQ/THHqU0a7b9B91J5DFcbQb25BHeRpHwkBw6A/AgMBAAECgYAmcWq2s/7Jt53F+JDAQkTRaHqAyyH0phwkv+QMzhVUfngK2lLLK2pf/nYIg16lDjY9dQx+AJIFHVp1w/kveayzOz3BIqPoznyIVYPolRGZCWPo+2vdp0CIdBh7zahST5g5Gem4cU47wO5hPYs1kXKPG4mUPtaIAMHFxhyLvIagAQJBAOS63AIZrRrldeNCVVNXbpAT52JuWLCgravM9coOh6scmG6UQwxxcott8hneHr9fazk2LHbHMxlG8F+dQPA0+D8CQQDHHJN7Dnske8oJ+1sq4uhQP3HMsmNIgth+ZcaZpiPcxnNKYVGhzAwTVV2ruFJle5ajebo6zfWuqJhtZGRNh1gBAkA/lRoXk1+lfGfa9tOVSVa4wm+t0xLgdqoQefdRZdyc2mQdSSWiTd8Tl0qXmkFd3X6G9uJBWnp/6lJjoektXOwtAkBsZTQsw99qJzIAaSRinpDWTxPG2j6OlR0DAqkxsG7JnAfbsEteh9TzGYAbIgdJVBTX/kbSCJn9ca85rnOkeVABAkAUbDfU3Z702z20NtwAxc1IkrtQ1lKuqSpj9/LuR1/6KRkYQsUWnUiOO9hu5YDWIcflFrnCenF8j8OnvGghltxT
  # mall_book_public_key mallbook测试环境公钥 不需要替换
  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
management/guns-admin/src/main/resources/application.yml
@@ -1,107 +1,3 @@
server:
  port: 8019
guns:
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
#  file-upload-path: C:\Users\hi\Desktop\ #文件上传目录(不配置的话为java.io.tmpdir目录)
#  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
  file-upload-path: C:\Users\Administrator\Desktop\apache-tomcat-8.0.33\webapps\ROOT\upload\ #文件上传目录(不配置的话为java.io.tmpdir目录)
  picture-server-address: http://139.9.249.67:8080/upload/  #图片服务器地址
  rest-url: http://139.9.249.67:8080/rest/    #前端接口调用基础路径
spring:
  profiles:
    active: dev
#    active: produce
  mvc:
    static-path-pattern: /static/**
    view:
      prefix: /WEB-INF/view
  devtools:
    restart:
      enabled: false
      additional-paths: src/main/java
      exclude: static/**,WEB-INF/view/**
  servlet:
    multipart:
      max-request-size: 100MB
      max-file-size: 100MB
mybatis-plus:
  type-aliases-package: com.stylefeng.guns.modular.system.model
  global-config:
    id-type: 0  #0:数据库ID自增   1:用户输入id  2:全局唯一id(IdWorker)  3:全局唯一ID(uuid)
    db-column-underline: false
  configuration:
    configuration.map-underscore-to-camel-case: true #是否开启自动驼峰命名规则(camel case)映射
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #输出Sql,如需打印Sql注释该配置
wx:
  conf:
    appId: wx8a9af3889395d0e1
    secret: 95a34f114973298cce4297a20bb59bc3
gaode:
  map:
    key: e0370a9a4d10739045fb0b8f4742a67e #高德key
---
spring:
  datasource:
#    url: jdbc:mysql://192.168.110.64:3306/ok_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8
#    username: root
#    password: root
    url: jdbc:mysql://121.31.232.206:3306/ok_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: Xiwang2024!
    db-name: super_save_driving #用来搜集数据库的所有表
    filters: wall,mergeStat
  data:
    mongodb:
      uri: mongodb://121.31.232.206:27017/test
#多数据源情况的配置
guns:
  muti-datasource:
    open: false
    url: jdbc:mysql://120.24.34.190:3306/mask?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: Root2020!
    dataSourceNames:
      - dataSourceGuns
      - dataSourceBiz
---
filePath: /usr/local/server/app/orderPostionFile/ #存储订单轨迹文件路径
#filePath: C:/orderPostionFile/  #存储订单轨迹文件路径
---
#支付回调地址
#正式环境
callbackPath: https://chaoshengdaijia.com:8443
#测试环境
#callbackPath: http://121.37.15.157:8010
---
#  mallbook 调起接口参数配置
mallbook:
  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
  pay_url: https://cloudpay.mallbook.cn/api
  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
  merchant_no: MBH23056
  # version 接口版本号
  version: 1.0.0
  # channel_type 渠道类型 HF:汇付
  channel_type: HF
  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
  merchant_private_key: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALHmyTrxPYcAwABnX+3VW9vxUftm57zBpnbfOT4vizMnKdpfCkIgtdbfdnSCtt637yWM2fxnZfItnhTeQA2lL8f4SXgZt/bVXfmAWi4IxQ+HJy0Qs8nNy2nnjICPBPcpWzHwUxQ/THHqU0a7b9B91J5DFcbQb25BHeRpHwkBw6A/AgMBAAECgYAmcWq2s/7Jt53F+JDAQkTRaHqAyyH0phwkv+QMzhVUfngK2lLLK2pf/nYIg16lDjY9dQx+AJIFHVp1w/kveayzOz3BIqPoznyIVYPolRGZCWPo+2vdp0CIdBh7zahST5g5Gem4cU47wO5hPYs1kXKPG4mUPtaIAMHFxhyLvIagAQJBAOS63AIZrRrldeNCVVNXbpAT52JuWLCgravM9coOh6scmG6UQwxxcott8hneHr9fazk2LHbHMxlG8F+dQPA0+D8CQQDHHJN7Dnske8oJ+1sq4uhQP3HMsmNIgth+ZcaZpiPcxnNKYVGhzAwTVV2ruFJle5ajebo6zfWuqJhtZGRNh1gBAkA/lRoXk1+lfGfa9tOVSVa4wm+t0xLgdqoQefdRZdyc2mQdSSWiTd8Tl0qXmkFd3X6G9uJBWnp/6lJjoektXOwtAkBsZTQsw99qJzIAaSRinpDWTxPG2j6OlR0DAqkxsG7JnAfbsEteh9TzGYAbIgdJVBTX/kbSCJn9ca85rnOkeVABAkAUbDfU3Z702z20NtwAxc1IkrtQ1lKuqSpj9/LuR1/6KRkYQsUWnUiOO9hu5YDWIcflFrnCenF8j8OnvGghltxT
  # mall_book_public_key mallbook测试环境公钥 不需要替换
  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
    active: '@spring.active@'
management/guns-admin/src/main/resources/redis.properties
File was deleted
management/guns-admin/src/main/webapp/WEB-INF/view/404.html
@@ -7,7 +7,7 @@
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>OK代驾 - 404 页面</title>
    <title>黔云通代驾 - 404 页面</title>
    <link rel="shortcut icon" href="${ctxPath}/static/favicon1.ico"> <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
    <link href="${ctxPath}/static/css/font-awesome.css?v=4.4.0" rel="stylesheet">
    <link href="${ctxPath}/static/css/style.css?v=4.1.0" rel="stylesheet">
management/guns-admin/src/main/webapp/WEB-INF/view/common/_container.html
@@ -6,7 +6,7 @@
    <meta name="renderer" content="webkit"/><!-- 让360浏览器默认选择webkit内核 -->
    <!--地图-->
    <script src="https://webapi.amap.com/maps?v=1.4.8&key=5053ca611c0106e01a665ce7ab84ff26"></script>
    <script src="https://webapi.amap.com/maps?v=1.4.8&key=d3bde6afb050067e1a765a8d1d1f4c54"></script>
    <!-- 全局css -->
    <link rel="shortcut icon" href="${ctxPath}/static/favicon1.ico">
management/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html
@@ -4,7 +4,7 @@
            <div class="navbar-header"><a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#"><i class="fa fa-bars"></i> </a>
                <form role="search" class="navbar-form-custom" method="post" action="search_results.html">
                    <div class="form-group">
                        <input type="text" placeholder="OK代驾后台管理系统 …" class="form-control" name="top-search" id="top-search" value="OK代驾后台管理系统" disabled>
                        <input type="text" placeholder="黔云通代驾后台管理系统 …" class="form-control" name="top-search" id="top-search" value="黔云通代驾后台管理系统" disabled>
                    </div>
                </form>
                <h3 style="float: right;line-height: 50px;color: red;">${passwordHint}</h3>
@@ -53,7 +53,7 @@
        <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="${ctxPath}/blackboard?type=${type}" frameborder="0" data-id="${ctxPath}/blackboard" seamless></iframe>
    </div>
    <div class="footer">
        <div class="pull-right">&copy; 2023 <a href="#" onclick="return false" target="_blank">OK代驾</a>
        <div class="pull-right">&copy; 2023 <a href="#" onclick="return false" target="_blank">黔云通代驾</a>
        </div>
    </div>
</div>
management/guns-admin/src/main/webapp/WEB-INF/view/index.html
@@ -4,7 +4,7 @@
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="renderer" content="webkit">
    <title>OK代驾 - 主页</title>
    <title>黔云通代驾 - 主页</title>
    <link rel="shortcut icon" href="${ctxPath}/static/favicon1.ico">
    <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
    <link href="${ctxPath}/static/css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
management/guns-admin/src/main/webapp/WEB-INF/view/login.html
@@ -4,7 +4,7 @@
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>OK代驾 - 登录</title>
    <title>黔云通代驾 - 登录</title>
    <link rel="shortcut icon" href="${ctxPath}/static/favicon1.ico">
    <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
@@ -58,7 +58,7 @@
<img src="${ctxPath}/static/img/login.png" style="width: 300px;height: 400px;z-index: 1000;border-radius: 10px;">
<div  style="position: relative;left: -20px; max-width: 300px;min-height: 300px;background: white;border-radius: 8px;box-sizing: border-box;padding: 0 30px 0 50px;display: flex;align-items: center;justify-content: center;">
    <div style="max-height: 100%">
        <h3 style="color: black;"><img src="${ctxPath}/static/img/logo.png" width="30px" height="30px"/>&nbsp;OK代驾管理后台</h3>
        <h3 style="color: black;"><img src="${ctxPath}/static/img/logo.png" width="30px" height="30px"/>&nbsp;黔云通代驾管理后台</h3>
        <br/>
        <h4 style="color: red;">${tips!}</h4>
        <form class="m-t" role="form" action="${ctxPath}/login" method="post">
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderCrossCity/tOrderCrossCity_detail.html
@@ -100,8 +100,13 @@
    </div>
</div>
<script type="text/javascript">
    window._AMapSecurityConfig = {
        securityJsCode: '44c5ee9ad584605d91ca69bfac32c761',
    }
</script>
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=5053ca611c0106e01a665ce7ab84ff26"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=d3bde6afb050067e1a765a8d1d1f4c54"></script>
<script src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<script src="${ctxPath}/static/modular/system/tOrderCrossCity/tOrderCrossCity_info.js"></script>
@}
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderCrossCity/tOrderCrossCity_track.html
@@ -45,8 +45,13 @@
    </div>
</div>
<script type="text/javascript">
    window._AMapSecurityConfig = {
        securityJsCode: '44c5ee9ad584605d91ca69bfac32c761',
    }
</script>
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=5053ca611c0106e01a665ce7ab84ff26"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=d3bde6afb050067e1a765a8d1d1f4c54"></script>
<script src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<script src="${ctxPath}/static/modular/system/tOrderCrossCity/tOrderCrossCity_info.js"></script>
@}
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_orderDetail.html
@@ -108,8 +108,13 @@
        </div>
    </div>
</div>
<script type="text/javascript">
    window._AMapSecurityConfig = {
        securityJsCode: '44c5ee9ad584605d91ca69bfac32c761',
    }
</script>
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=5053ca611c0106e01a665ce7ab84ff26"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=d3bde6afb050067e1a765a8d1d1f4c54"></script>
<script src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<script src="${ctxPath}/static/modular/system/tOrderPrivateCar/tOrderPrivateCar_info.js"></script>
@}
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderPrivateCar/tOrderPrivateCar_trajectory.html
@@ -45,8 +45,13 @@
    </div>
</div>
<script type="text/javascript">
    window._AMapSecurityConfig = {
        securityJsCode: '44c5ee9ad584605d91ca69bfac32c761',
    }
</script>
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=5053ca611c0106e01a665ce7ab84ff26"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=d3bde6afb050067e1a765a8d1d1f4c54"></script>
<script src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<script src="${ctxPath}/static/modular/system/tOrderPrivateCar/tOrderPrivateCar_info.js"></script>
@}
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_edit.html
@@ -101,8 +101,13 @@
    </div>
</div>
<script type="text/javascript">
    window._AMapSecurityConfig = {
        securityJsCode: '44c5ee9ad584605d91ca69bfac32c761',
    }
</script>
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=5053ca611c0106e01a665ce7ab84ff26"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=d3bde6afb050067e1a765a8d1d1f4c54"></script>
<script src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<script src="${ctxPath}/static/modular/system/tOrderTaxi/tOrderTaxi_info.js"></script>
@}
management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrderTaxi/tOrderTaxi_trajectory.html
@@ -45,8 +45,13 @@
    </div>
</div>
<script type="text/javascript">
    window._AMapSecurityConfig = {
        securityJsCode: '44c5ee9ad584605d91ca69bfac32c761',
    }
</script>
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=5053ca611c0106e01a665ce7ab84ff26"></script>
<script src="https://webapi.amap.com/maps?v=1.4.8&key=d3bde6afb050067e1a765a8d1d1f4c54"></script>
<script src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<script src="${ctxPath}/static/modular/system/tOrderTaxi/tOrderTaxi_info.js"></script>
@}
management/pom.xml
@@ -221,19 +221,13 @@
    <profiles>
        <profile>
            <id>local</id>
            <properties>
                <spring.active>local</spring.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>dev</id>
            <properties>
                <spring.active>dev</spring.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>