liukangdong
2024-11-12 d8abf759fc873b204cfdc3f7c5f7eba11143763b
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加1个文件
已修改13个文件
348 ■■■■ 文件已修改
server/DBbackup.sh 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CategoryCloudController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CategoryService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/EmayService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/DBbackup.sh
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
#!/bin/bash
/usr/local/mysql/bin/mysqldump -h127.0.0.1 -uroot -pAtwl@2024 antaiwuliu > /usr/local/jars/dbbackup/antaiwuliu_$(date +%Y%m%d).sql
# åˆ é™¤7天前的备份数据
find /usr/local/jars/dbbackup -name "antaiwuliu_*.sql" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -137,6 +137,8 @@
    public static final String TMS_ORDER_DETAIL_URL ="TMS_ORDER_DETAIL_URL" ;
    public static final String TMS_LOCK_STATUS_URL ="TMS_LOCK_STATUS_URL" ;
    public static final String TMS_INTERFACE_URL_PREFIX ="TMS_INTERFACE_URL_PREFIX" ;
    public static final String MYSQL_BACKUP_CDOE ="MYSQL_BACKUP_CDOE" ;
    public static final String MYSQL_BACKUP_DIR ="MYSQL_BACKUP_DIR" ;
    public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
    public static  boolean DEALING_HK_SYNCDEVICE = false;
    public static  boolean DEALING_HK_SYNCPLATFORM = false;
server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java
@@ -1,6 +1,8 @@
package com.doumee.api;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Date;
import com.doumee.core.utils.DateUtil;
import com.doumee.service.business.PlatformJobService;
@@ -12,11 +14,15 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.BufferedReader;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * @author æ±Ÿè¹„蹄
@@ -30,6 +36,8 @@
    @Autowired
    private PlatformJobService platformJobService;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @ApiOperation("数据库备份,保留最近7个备份sql")
@@ -37,11 +45,26 @@
    public ApiResponse backupDatabase() {
        try {
            String timestamp = DateUtil.getNowLongTime();
            String path = "/usr/local/jars/db/";
//            String path = "/usr/local/jars/db/";
//            String backupPath = path + timestamp + ".sql";
            String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_DIR).getCode();
            String code = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_CDOE).getCode() ;
            String backupPath = path + timestamp + ".sql";
            // ä½¿ç”¨mysqldump命令进行数据库备份
            Process process = Runtime.getRuntime().exec(new String[]{"mysqldump ", "-u", "root", "-p","Atwl@2024", "antaiwuliu", "-r", backupPath});
            process.waitFor();
            code= code.replace("${param}",backupPath);
            log.error("数据库备份================: " + code);
            ProcessBuilder builder = new ProcessBuilder(code);
            // é‡å®šå‘错误流到标准输出流
            builder.redirectErrorStream(true);
            // stdout
            Process process = builder.start();
            new Thread(new ProcessHandleRunnable(process)).start();
            process.waitFor(); // wait if needed
      /*      // ä½¿ç”¨mysqldump命令进行数据库备份
            Process process = Runtime.getRuntime().exec(code);
            process.getErrorStream();
            process.getInputStream();
            process.waitFor();*/
            // æ£€æŸ¥å¤‡ä»½æ˜¯å¦æˆåŠŸ
            if (new File(backupPath).exists()) {
@@ -53,11 +76,70 @@
            deleteOldFiles(path,7);//保留最近7个文件
        } catch (Exception e) {
            e.printStackTrace();
            log.error("数据库备份失败."+e.getMessage());
        }
        return ApiResponse.failed("数据库备份失败" );
    }
    public void run() {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        String currentDateTime = dateFormat.format(new Date());
        String fileName =  "backup_" + currentDateTime + ".sql";
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection connection = DriverManager.getConnection("localhost:3306/antaiwuliu", "root", "Atwl@2024");
            Statement statement = connection.createStatement();
            String query = "SELECT * INTO OUTFILE '" + fileName + "' FROM your_table";
            statement.execute(query);
            System.out.println("Database backup successful to " + fileName);
            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
         new DatabaseController().run();;
    }
    static class ProcessHandleRunnable implements Runnable {
        private Process process;
        public ProcessHandleRunnable(Process process) {
            this.process = process;
        }
        public void run() {
            BufferedReader br = null;
            InputStreamReader reader = null;
            try {
                System.out.println("start run...");
                reader = new InputStreamReader(process.getInputStream());
                br = new BufferedReader(reader);
                String line = null;
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                }
                System.out.println("stop run...");
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {
                try {
                    if (br != null)
                        br.close();
                    if (reader != null)
                        reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /**
     * @param path
     */
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CategoryCloudController.java
@@ -8,7 +8,9 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Cars;
import com.doumee.dao.business.model.Category;
import com.doumee.dao.business.model.Company;
import com.doumee.service.business.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -88,6 +90,13 @@
    public void exportExcel (@RequestBody PageWrap<Category> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        ExcelExporter.build(Category.class).export(categoryService.findPage(pageWrap).getRecords(), "分类信息表", response);
    }
    @ApiOperation("导出二级分类数据Excel")
    @PostMapping("/exportChildExcel")
    @CloudRequiredPermission("business:category:exportExcel")
    public void exportChildExcel (@RequestBody PageWrap<Category> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
//        pageWrap.getModel().setType(Constants.ONE);
        ExcelExporter.build(Category.class).export(categoryService.findChileList(pageWrap.getModel()), "车辆分类信息表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
@@ -106,4 +115,6 @@
        category.setType(type);
        return ApiResponse.success(categoryService.findList(category));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -137,7 +137,7 @@
        String[] findDeviceAlarmPage= new String[]{"/api/v1/alarm/findDeviceAlarmPage","分页查询设备下的所有报警记录"};//分页查询设备下的所有报警记录
        String[] getTodoListPage= new String[]{"/api/v3/todo/getTodoListPage","分页获取待办列表"};//1.10.1分页获取待办列表
        String[] loginOut= new String[]{"/xauthplus-plugin/logout","退出登录"};//退出登录
        String[] sendSms= new String[]{"/api/smsps/v1/smsService/sms","短信验证码"};//短信验证码
        String[] sendSms= new String[]{"/api/v1/smsService/sms","短信验证码"};//短信验证码
        String[] getMenus= new String[]{"/api/privilegeService/v1/menus/list","获取用户有权限的菜单功能项"};//获取用户有权限的菜单功能项
        String[] rootRegion= new String[]{"/api/resource/v1/regions/root","获取根区域信息接口"};//获取根区域信息接口
        String[] subRegions= new String[]{"/api/resource/v1/regions/subRegions","根据区域编号获取下一级区域列表"};//根据区域编号获取下一级区域列表
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -25,135 +25,150 @@
    @TableId(value = "id",type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
//    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码")
    @ExcelColumn(name="创建人编码")
    //@ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    //@ExcelColumn(name="创建时间")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码")
    @ExcelColumn(name="更新人编码")
    //@ExcelColumn(name="更新人编码")
    private Integer edirot;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    //@ExcelColumn(name="更新时间")
    private Date editDate;
    @ApiModelProperty(value = "授权开始时间")
    @ExcelColumn(name="授权开始时间")
    //@ExcelColumn(name="授权开始时间")
    @ExcelColumn(name="开始时间" ,index = 10,width = 12)
    private Date startTime;
    @ApiModelProperty(value = "授权结束时间")
    @ExcelColumn(name="授权结束时间")
    //@ExcelColumn(name="授权结束时间")
    @ExcelColumn(name="结束时间" ,index = 11,width = 12)
    private Date endTime;
    @ApiModelProperty(value = "最后一次进厂时间")
    @ExcelColumn(name="最后一次进厂时间")
    //@ExcelColumn(name="最后一次进厂时间")
    private Date lastInDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    //@ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "授权时间类型  0长期有效 1自定义 2车主有效期", example = "1")
    @ExcelColumn(name="授权时间类型  0长期有效 1自定义 2车主有效期")
    //@ExcelColumn(name="授权时间类型  0长期有效 1自定义 2车主有效期")
    private Integer authTimeType;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    //@ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "预约标识", example = "1")
    @ExcelColumn(name="预约标识")
    //@ExcelColumn(name="预约标识")
    private String hkId;
    @ApiModelProperty(value = "排序码", example = "1")
    @ExcelColumn(name="排序码")
    //@ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "车牌号")
    @ExcelColumn(name="车牌号")
    @ExcelColumn(name="车牌号" ,index = 1,width = 8)
    private String code;
    @ApiModelProperty(value = "授权停车编码集合(关联parks)", example = "1")
    @ExcelColumn(name="授权停车编码集合(关联parks)")
    //@ExcelColumn(name="授权停车编码集合(关联parks)")
    private String parkId;
    @ApiModelProperty(value = "海康同步状态 0未同步 1已同步", example = "1")
    @ExcelColumn(name="海康同步状态 0未同步 1已同步")
    //@ExcelColumn(name="海康同步状态 0未同步 1已同步")
    private Integer hkStatus;
    @ApiModelProperty(value = "海康最近同步时间")
    @ExcelColumn(name="海康最近同步时间")
    //@ExcelColumn(name="海康最近同步时间")
    private Date hkDate;
    @ApiModelProperty(value = "归属人编码", example = "1")
    @ExcelColumn(name="归属人编码")
    //@ExcelColumn(name="归属人编码")
    private Integer memberId;
    @ApiModelProperty(value = "归属人ERP编码")
    @ExcelColumn(name="归属人ERP编码")
    //@ExcelColumn(name="归属人ERP编码")
    private String memberUserId;
    @ApiModelProperty(value = "关联EPR标识")
    @ExcelColumn(name="关联EPR标识")
    //@ExcelColumn(name="关联EPR标识")
    private String erpId;
    @ApiModelProperty(value = "状态 0禁用 1启用", example = "1")
    @ExcelColumn(name="状态 0禁用 1启用")
    //@ExcelColumn(name="状态 0禁用 1启用")
    private Integer status;
    @ApiModelProperty(value = "状态 0不在园 1在园", example = "1")
    @ExcelColumn(name="状态 0不在园 1在园")
    //@ExcelColumn(name="状态 0不在园 1在园")
    private Integer inStatus;
    @ApiModelProperty(value = "授权状态 0否 1是", example = "1")
    @ExcelColumn(name="授权状态  0否 1是")
    //@ExcelColumn(name="授权状态  0否 1是")
    private Integer authStatus;
    @ApiModelProperty(value = "所属组织主键(关联company)", example = "1")
    @ExcelColumn(name="所属组织主键(关联company)")
    //@ExcelColumn(name="所属组织主键(关联company)")
    private Integer groupId;
    @ApiModelProperty(value = "类型 0安泰公务车 1安泰自有物流车 2其它", example = "1")
    @ExcelColumn(name="类型 0安泰公务车 1安泰自有物流车 2其它")
    @ExcelColumn(name="备注" ,index = 2,width = 8,valueMapping ="0=安泰公务车;1=安泰自有物流车;2=其他" )
    private Integer type;
    @ApiModelProperty(value = "所属分类编码", example = "1")
    @ExcelColumn(name="所属分类编码")
    //@ExcelColumn(name="所属分类编码")
    private Integer cateId;
    @ApiModelProperty(value = "停车场名称集合", example = "1")
    @ExcelColumn(name="停车场名称集合")
    //@ExcelColumn(name="停车场名称集合")
    @TableField(exist = false)
    @ExcelColumn(name="停车场名称集合" ,index = 9,width = 10)
    private String parksName;
    @ApiModelProperty(value = "编辑人姓名", example = "1")
    @ExcelColumn(name="编辑人姓名")
    //@ExcelColumn(name="编辑人姓名")
    @TableField(exist = false)
    private String editorName;
    @ApiModelProperty(value = "用户类型 0劳务访客 1普通访客  2内部人员", example = "1")
    @ExcelColumn(name="用户类型 0劳务访客 1普通访客  2内部人员")
    //@ExcelColumn(name="用户类型 0劳务访客 1普通访客  2内部人员")
    @TableField(exist = false)
    private Integer memberType;
    @ApiModelProperty(value = "姓名", example = "1")
    @ExcelColumn(name="姓名")
    //@ExcelColumn(name="姓名")
    @TableField(exist = false)
    @ExcelColumn(name="车主" ,index = 5,width = 8)
    private String memberName;
    @ApiModelProperty(value = "车主海康编码", example = "1")
    @TableField(exist = false)
    private String memberHkId;
    @ApiModelProperty(value = "手机号", example = "1")
    @ExcelColumn(name="手机号")
    //@ExcelColumn(name="手机号")
    @TableField(exist = false)
    @ExcelColumn(name="手机号" ,index = 6,width = 8)
    private String memberPhone;
    @ApiModelProperty(value = "性别", example = "1")
    //@ExcelColumn(name="手机号")
    @TableField(exist = false)
    @ExcelColumn(name="性别" ,index = 7,width = 5,valueMapping = "0=未知;1=男;2=女")
    private Integer memberSex;
    @ApiModelProperty(value = "身份证号", example = "1")
    //@ExcelColumn(name="手机号")
    @TableField(exist = false)
    @ExcelColumn(name="身份证号" ,index = 8,width = 10)
    private String memberCard;
    @ApiModelProperty(value = "部门", example = "1")
    @ExcelColumn(name="部门")
    //@ExcelColumn(name="部门")
    @TableField(exist = false)
    private String companyName;
    @ApiModelProperty(value = "车主是否删除", example = "1")
@@ -180,6 +195,11 @@
    @TableField(exist = false)
    private String cateName;
    @ApiModelProperty(value = "所属分类", example = "1")
    @TableField(exist = false)
    @ExcelColumn(name="所属分类" ,index = 3,width = 10)
    private String groupCateName;
    @ApiModelProperty(value = "一级分类名称", example = "1")
    @TableField(exist = false)
    private String catePName;
@@ -188,13 +208,14 @@
    private int isnew;
    @ApiModelProperty(value = "车辆部门名称", example = "1")
    @ExcelColumn(name="车辆组织部门名称")
    //@ExcelColumn(name="车辆组织部门名称")
    @TableField(exist = false)
    private String carCompanyName;
    @ApiModelProperty(value = "车辆部门全路径名称", example = "1")
    @ExcelColumn(name="车辆部门全路径名称")
    //@ExcelColumn(name="车辆部门全路径名称")
    @TableField(exist = false)
    @ExcelColumn(name="所属组织" ,index = 4,width = 15)
    private String carCompanyNamePath;
    @ApiModelProperty(value = "车主对象", example = "1")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java
@@ -25,56 +25,64 @@
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    @ExcelColumn(name="主键")
     //@ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码")
    @ExcelColumn(name="创建人编码")
     //@ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
     //@ExcelColumn(name="创建时间")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码")
    @ExcelColumn(name="更新人编码")
     //@ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
     //@ExcelColumn(name="更新时间")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是")
    @ExcelColumn(name="是否删除0否 1是")
     //@ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "名称")
    @ExcelColumn(name="名称")
     @ExcelColumn(name="二级分类名称",index = 2,width = 12)
    private String name;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
     //@ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "状态 0启用 1禁用")
    @ExcelColumn(name="状态 0启用 1禁用")
     //@ExcelColumn(name="状态 0启用 1禁用")
    private Integer status;
    @ApiModelProperty(value = "排序码")
    @ExcelColumn(name="排序码")
     //@ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "图标")
    @ExcelColumn(name="图标")
     //@ExcelColumn(name="图标")
    private String imgurl;
    @ApiModelProperty(value = "类型 0公司类型 1车辆类型")
    @ExcelColumn(name="类型 0公司类型 1车辆类型")
     //@ExcelColumn(name="类型 0公司类型 1车辆类型")
    private Integer type;
    @ApiModelProperty(value = "父级编码(自关联)")
    @ExcelColumn(name="父级编码(自关联)")
     //@ExcelColumn(name="父级编码(自关联)")
    private Integer parentId;
    @ApiModelProperty(value = "父级名称 ")
    @TableField(exist = false)
    @ExcelColumn(name="一级分类名称",index = 1,width = 12)
    private String parentName;
    @ApiModelProperty(value = "组合名称 ")
    @TableField(exist = false)
    @ExcelColumn(name="组合名称",index = 3,width = 20)
    private String groupName;
    @ApiModelProperty(value = "子集分类")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CategoryService.java
@@ -101,4 +101,6 @@
     * @return long
     */
    long count(Category category);
    List<Category> findChileList(Category model);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -370,6 +370,8 @@
        queryWrapper.selectAs(Member::getName,Cars::getMemberName);
        queryWrapper.selectAs(SystemUser::getRealname,Cars::getEditorName);
        queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone);
        queryWrapper.selectAs(Member::getSex,Cars::getMemberSex);
        queryWrapper.selectAs(Member::getIdcardDecode,Cars::getMemberCard);
        queryWrapper.selectAs(Company::getCompanyNamePath,Cars::getCompanyName);
        queryWrapper.selectAs(Category::getParentId,Cars::getCatePId);
        queryWrapper.selectAs(Category::getName,Cars::getCateName);
@@ -386,6 +388,7 @@
                .or().like(Member::getPhone,pageWrap.getModel().getMemberName()));
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getCompanyNamePath,pageWrap.getModel().getCompanyName());
        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getMemberType()),Member::getType,pageWrap.getModel().getMemberType());
        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCateId()),Category::getId,pageWrap.getModel().getCateId());
        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCatePId()),Category::getParentId,pageWrap.getModel().getCatePId());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),Cars::getCode,pageWrap.getModel().getCode());
        queryWrapper.eq(Cars::getIsdeleted,Constants.ZERO);
@@ -417,22 +420,28 @@
                    .in(ParkBook::getCarCode,codes)
                    .eq(ParkBook::getIsdeleted,Constants.ZERO) );
            for(Cars cars :result.getRecords()){
               cars.setParkBookList(getParkbookListByCode(cars.getCode(),parkBooks));
                if(StringUtils.isNotBlank(cars.getCateName())){
                    cars.setGroupCateName(StringUtils.defaultString(cars.getCatePName(),"") + "/" + StringUtils.defaultString(cars.getCateName(),""));
                }
               cars.setParkBookList(getParkbookListByCode(cars,parkBooks));
            }
        }
        return PageData.from(result);
    }
    private List<ParkBook> getParkbookListByCode(String code, List<ParkBook> parkBooks) {
    private List<ParkBook> getParkbookListByCode(Cars car, List<ParkBook> parkBooks) {
        List<ParkBook> list =null;
        String name = "";
        for(ParkBook p : parkBooks){
            if(StringUtils.equals(p.getCarCode(),code)){
            if(StringUtils.equals(p.getCarCode(),car.getCode())){
                if(list == null){
                    list = new ArrayList<>();
                }
                name += p.getParksName();
                list.add(p);
            }
        }
        car.setParksName(name);
        return  list;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -14,11 +14,13 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -155,6 +157,36 @@
        QueryWrapper<Category> wrapper = new QueryWrapper<>(category);
        return categoryMapper.selectCount(wrapper);
    }
    @Override
    public  List<Category> findChileList(Category model) {
        List<Category> list =findList(model);
        List<Category> data = new ArrayList<>();
        if(list!=null){
            for(Category category : list){
                if(category.getParentId()!=null){
                    Category pcate = getParentById(category.getParentId(),list);
                    if(pcate!=null){
                        category.setParentName(StringUtils.defaultString(pcate.getName(),""));
                        category.setName(StringUtils.defaultString(category.getName(),""));
                        category.setGroupName( category.getParentName()+"/"+category.getName());
                        data.add(category);
                    }
                }
            }
        }
        return  data;
    }
    private Category getParentById(Integer parentId, List<Category> list) {
        if(list!=null){
            for(Category category : list){
                if(Constants.equalsInteger(parentId,category.getId())){
                   return  category;
                }
            }
        }
        return  null;
    }
    private void checkUnique(Category category){
        QueryWrapper<Category> wrapper = new QueryWrapper<>();
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
@@ -247,11 +247,11 @@
        MPJLambdaWrapper<ParkBook> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(ParkBook.class);
        queryWrapper.selectAs(Parks::getName,Cars::getParksName);
        queryWrapper.selectAs(Member::getType,Cars::getMemberType);
        queryWrapper.selectAs(Member::getName,Cars::getMemberName);
        queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone);
        queryWrapper.selectAs(Company::getName,Cars::getCompanyName);
        queryWrapper.selectAs(Parks::getName,ParkBook::getParksName);
        queryWrapper.selectAs(Member::getType,ParkBook::getMemberType);
        queryWrapper.selectAs(Member::getName,ParkBook::getMemberName);
        queryWrapper.selectAs(Member::getPhone,ParkBook::getMemberPhone);
        queryWrapper.selectAs(Company::getName,ParkBook::getCompanyName);
        queryWrapper.leftJoin(Parks.class,Parks::getId,ParkBook::getParkId);
        queryWrapper.leftJoin(Member.class,Member::getId,ParkBook::getMemberId);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -46,6 +46,8 @@
    @Autowired
    @Lazy
    private EmayService emayService;
    @Autowired
    private SmsConfigMapper smsConfigMapper;
    @Value("${debug_model}")
    private boolean debugModel;
@@ -96,28 +98,27 @@
        )>=3){
            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,超出发送次数,请稍后重试!");
        }
        String code = Constants.getRandom6Num();
        String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode()+"验证码为:"+code+",此验证码有效为3分钟。请勿泄露";
//        boolean result=   emayService.sendSingleSms(smsEmail.getPhone(),content);
        emayService.sendSmsByHk(smsEmail.getPhone(),content);
//        if(!result){
//            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,短信验证码发送失败,请稍后重试!");
//        }
        smsEmail.setRemark(code);
        smsEmail.setIsdeleted(Constants.ZERO);
        smsEmail.setCreateDate(new Date());
        smsEmail.setStatus(Constants.ZERO);
        smsEmail.setType(Constants.ZERO);
        smsEmail.setTitle("短信验证码");
        smsEmail.setContent(content);
        smsEmail.setObjType(Constants.ZERO+"");
        smsEmailMapper.insert(smsEmail);
        return smsEmail.getId();
        SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getObjType,
                SmsConstants.inventCode).last(" limit 1 "));
        //开启短信通知
        if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
            if(StringUtils.isNotBlank(smsConfig.getContent())){
                String content  = smsConfig.getContent().replace("{验证码}",code);
                emayService.sendSmsByHk(smsEmail.getPhone(),content);
                smsEmail.setRemark(code);
                smsEmail.setIsdeleted(Constants.ZERO);
                smsEmail.setCreateDate(new Date());
                smsEmail.setStatus(Constants.ZERO);
                smsEmail.setType(Constants.ZERO);
                smsEmail.setTitle("短信验证码");
                smsEmail.setContent(content);
                smsEmail.setObjType(Constants.ZERO+"");
                smsEmailMapper.insert(smsEmail);
                return smsEmail.getId();
            }
        }
        return null;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -288,7 +288,7 @@
            Collections.sort(jobList, new Comparator<Platform>() {
                @Override
                public int compare(Platform o1, Platform o2) {
                    return Constants.formatBigdecimal(o2.getWorkCountTime())-Constants.formatBigdecimal(o1.getWorkCountTime());
                    return Constants.formatBigdecimal(o2.getWorkCountTime()).intValue() - Constants.formatBigdecimal(o1.getWorkCountTime()).intValue();
                }
            });
            for(Platform model : jobList){
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/EmayService.java
@@ -113,7 +113,7 @@
        }catch (Exception e){
            e.printStackTrace();
        }
        throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,短信发送失败,请稍后重试!");
    }