Merge branch 'main' of http://175.6.124.250:3100/luozhun/policeSecurity
This commit is contained in:
		
						commit
						45a490600f
					
				| 
						 | 
					@ -2,11 +2,8 @@ package com.changhu.common.db;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.lang.Dict;
 | 
					import cn.hutool.core.lang.Dict;
 | 
				
			||||||
import cn.hutool.core.util.ObjectUtil;
 | 
					import cn.hutool.core.util.ObjectUtil;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.IEnum;
 | 
					 | 
				
			||||||
import com.changhu.common.exception.MessageException;
 | 
					import com.changhu.common.exception.MessageException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serializable;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * author: luozhun
 | 
					 * author: luozhun
 | 
				
			||||||
 * desc: BaseEnum
 | 
					 * desc: BaseEnum
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,8 @@
 | 
				
			||||||
package com.changhu.common.db.enums;
 | 
					package com.changhu.common.db.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.lang.Dict;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.IEnum;
 | 
					import com.baomidou.mybatisplus.annotation.IEnum;
 | 
				
			||||||
 | 
					import com.changhu.common.annotation.IsExtData;
 | 
				
			||||||
import com.changhu.common.db.BaseEnum;
 | 
					import com.changhu.common.db.BaseEnum;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
import lombok.Getter;
 | 
					import lombok.Getter;
 | 
				
			||||||
| 
						 | 
					@ -14,10 +16,21 @@ import lombok.Getter;
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
public enum CheckStatus implements BaseEnum<Integer>, IEnum<Integer> {
 | 
					public enum CheckStatus implements BaseEnum<Integer>, IEnum<Integer> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    checked(0, "已审核"),
 | 
					    checked(0, "已审核", "success"),
 | 
				
			||||||
    unChecked(1, "未审核"),
 | 
					    unChecked(1, "未审核", "error"),
 | 
				
			||||||
    ;
 | 
					    ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final Integer value;
 | 
					    private final Integer value;
 | 
				
			||||||
    private final String label;
 | 
					    private final String label;
 | 
				
			||||||
 | 
					    @IsExtData
 | 
				
			||||||
 | 
					    private final String color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Object serializer() {
 | 
				
			||||||
 | 
					        return Dict.of(
 | 
				
			||||||
 | 
					                "value", this.getValue(),
 | 
				
			||||||
 | 
					                "label", this.getLabel(),
 | 
				
			||||||
 | 
					                "extData", Dict.of("color", this.color)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,5 @@
 | 
				
			||||||
package com.changhu.common.db.enums;
 | 
					package com.changhu.common.db.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.lang.Dict;
 | 
					 | 
				
			||||||
import com.changhu.common.db.BaseEnum;
 | 
					import com.changhu.common.db.BaseEnum;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
import lombok.Getter;
 | 
					import lombok.Getter;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.changhu.common.db.enums;
 | 
					package com.changhu.common.db.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.lang.Dict;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.IEnum;
 | 
					import com.baomidou.mybatisplus.annotation.IEnum;
 | 
				
			||||||
import com.changhu.common.annotation.IsExtData;
 | 
					import com.changhu.common.annotation.IsExtData;
 | 
				
			||||||
import com.changhu.common.db.BaseEnum;
 | 
					import com.changhu.common.db.BaseEnum;
 | 
				
			||||||
| 
						 | 
					@ -24,4 +25,12 @@ public enum IsEnable implements BaseEnum<Integer>, IEnum<Integer> {
 | 
				
			||||||
    @IsExtData
 | 
					    @IsExtData
 | 
				
			||||||
    private final String color;
 | 
					    private final String color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Object serializer() {
 | 
				
			||||||
 | 
					        return Dict.of(
 | 
				
			||||||
 | 
					                "value", this.getValue(),
 | 
				
			||||||
 | 
					                "label", this.getLabel(),
 | 
				
			||||||
 | 
					                "extData", Dict.of("color", this.color)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.changhu.common.db.enums;
 | 
					package com.changhu.common.db.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IEnum;
 | 
				
			||||||
import com.changhu.common.db.BaseEnum;
 | 
					import com.changhu.common.db.BaseEnum;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
import lombok.Getter;
 | 
					import lombok.Getter;
 | 
				
			||||||
| 
						 | 
					@ -11,7 +12,7 @@ import lombok.Getter;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Getter
 | 
					@Getter
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
public enum IsOrNot implements BaseEnum<Integer> {
 | 
					public enum IsOrNot implements BaseEnum<Integer>, IEnum<Integer> {
 | 
				
			||||||
    IS(0, "是"),
 | 
					    IS(0, "是"),
 | 
				
			||||||
    NOT(1, "否"),
 | 
					    NOT(1, "否"),
 | 
				
			||||||
    ;
 | 
					    ;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.changhu.common.db.enums;
 | 
					package com.changhu.common.db.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IEnum;
 | 
				
			||||||
import com.changhu.common.db.BaseEnum;
 | 
					import com.changhu.common.db.BaseEnum;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
import lombok.Getter;
 | 
					import lombok.Getter;
 | 
				
			||||||
| 
						 | 
					@ -12,7 +13,7 @@ import lombok.Getter;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Getter
 | 
					@Getter
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
public enum Sex implements BaseEnum<Integer> {
 | 
					public enum Sex implements BaseEnum<Integer>, IEnum<Integer> {
 | 
				
			||||||
    MAN(0, "男"),
 | 
					    MAN(0, "男"),
 | 
				
			||||||
    WOMAN(1, "女"),
 | 
					    WOMAN(1, "女"),
 | 
				
			||||||
    UNKNOWN(2, "隐藏");
 | 
					    UNKNOWN(2, "隐藏");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,10 @@ import lombok.NoArgsConstructor;
 | 
				
			||||||
import org.springframework.lang.NonNull;
 | 
					import org.springframework.lang.NonNull;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serializable;
 | 
					import java.io.Serializable;
 | 
				
			||||||
import java.util.*;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Objects;
 | 
				
			||||||
import java.util.function.Function;
 | 
					import java.util.function.Function;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,6 @@ package com.changhu.common.validator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.lang.Validator;
 | 
					import cn.hutool.core.lang.Validator;
 | 
				
			||||||
import cn.hutool.core.util.StrUtil;
 | 
					import cn.hutool.core.util.StrUtil;
 | 
				
			||||||
import com.changhu.common.utils.ValidatorUtil;
 | 
					 | 
				
			||||||
import com.changhu.common.validator.annotation.IsMobile;
 | 
					import com.changhu.common.validator.annotation.IsMobile;
 | 
				
			||||||
import jakarta.validation.ConstraintValidator;
 | 
					import jakarta.validation.ConstraintValidator;
 | 
				
			||||||
import jakarta.validation.ConstraintValidatorContext;
 | 
					import jakarta.validation.ConstraintValidatorContext;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,12 +8,7 @@ import java.lang.annotation.Documented;
 | 
				
			||||||
import java.lang.annotation.Retention;
 | 
					import java.lang.annotation.Retention;
 | 
				
			||||||
import java.lang.annotation.Target;
 | 
					import java.lang.annotation.Target;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
 | 
					import static java.lang.annotation.ElementType.*;
 | 
				
			||||||
import static java.lang.annotation.ElementType.CONSTRUCTOR;
 | 
					 | 
				
			||||||
import static java.lang.annotation.ElementType.FIELD;
 | 
					 | 
				
			||||||
import static java.lang.annotation.ElementType.METHOD;
 | 
					 | 
				
			||||||
import static java.lang.annotation.ElementType.PARAMETER;
 | 
					 | 
				
			||||||
import static java.lang.annotation.ElementType.TYPE_USE;
 | 
					 | 
				
			||||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
 | 
					import static java.lang.annotation.RetentionPolicy.RUNTIME;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,11 +23,14 @@ public class WebConfig implements WebMvcConfigurer {
 | 
				
			||||||
    private final List<String> whiteList = new ArrayList<>();
 | 
					    private final List<String> whiteList = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public WebConfig() {
 | 
					    public WebConfig() {
 | 
				
			||||||
 | 
					        //todo 要删除的
 | 
				
			||||||
        whiteList.add("/managementSuperUser/**");
 | 
					        whiteList.add("/managementSuperUser/**");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        whiteList.add("/common/**");
 | 
					        whiteList.add("/common/**");
 | 
				
			||||||
        whiteList.add("/test/**");
 | 
					        whiteList.add("/test/**");
 | 
				
			||||||
        whiteList.add("/login");
 | 
					        whiteList.add("/login");
 | 
				
			||||||
        whiteList.add("/logout");
 | 
					        whiteList.add("/logout");
 | 
				
			||||||
 | 
					        whiteList.add("/management/getCheckStatus");
 | 
				
			||||||
        whiteList.add("/favicon.ico");
 | 
					        whiteList.add("/favicon.ico");
 | 
				
			||||||
        //druid console
 | 
					        //druid console
 | 
				
			||||||
        whiteList.add("/druid/**");
 | 
					        whiteList.add("/druid/**");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,6 @@ import io.swagger.v3.oas.annotations.Operation;
 | 
				
			||||||
import io.swagger.v3.oas.annotations.media.Schema;
 | 
					import io.swagger.v3.oas.annotations.media.Schema;
 | 
				
			||||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
					import io.swagger.v3.oas.annotations.tags.Tag;
 | 
				
			||||||
import jakarta.annotation.PostConstruct;
 | 
					import jakarta.annotation.PostConstruct;
 | 
				
			||||||
import jakarta.annotation.Resource;
 | 
					 | 
				
			||||||
import jakarta.validation.Valid;
 | 
					import jakarta.validation.Valid;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,6 @@ package com.changhu.enums.handler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.alibaba.fastjson2.JSONObject;
 | 
					import com.alibaba.fastjson2.JSONObject;
 | 
				
			||||||
import com.changhu.common.pojo.vo.TokenInfo;
 | 
					import com.changhu.common.pojo.vo.TokenInfo;
 | 
				
			||||||
import org.apache.poi.ss.formula.functions.T;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @author 20252
 | 
					 * @author 20252
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.changhu.common.annotation.JsonBody;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.params.IndexCheckPassParams;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.params.IndexCheckStatusParams;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.vo.UnitCheckStatusVo;
 | 
				
			||||||
 | 
					import com.changhu.module.management.service.IndexService;
 | 
				
			||||||
 | 
					import io.swagger.v3.oas.annotations.Operation;
 | 
				
			||||||
 | 
					import io.swagger.v3.oas.annotations.tags.Tag;
 | 
				
			||||||
 | 
					import jakarta.validation.Valid;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.PostMapping;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestBody;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午9:48
 | 
				
			||||||
 | 
					 * @desc IndexController...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Tag(name = "后台-通用接口")
 | 
				
			||||||
 | 
					@JsonBody
 | 
				
			||||||
 | 
					@RequestMapping("/management")
 | 
				
			||||||
 | 
					public class IndexController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private IndexService indexService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Operation(summary = "审核通过")
 | 
				
			||||||
 | 
					    @PostMapping("/checkPass")
 | 
				
			||||||
 | 
					    public void checkPass(@RequestBody @Valid IndexCheckPassParams params) {
 | 
				
			||||||
 | 
					        indexService.checkPass(params);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Operation(summary = "获取审核状态")
 | 
				
			||||||
 | 
					    @PostMapping("/getCheckStatus")
 | 
				
			||||||
 | 
					    public UnitCheckStatusVo getCheckStatus(@RequestBody @Valid IndexCheckStatusParams params) {
 | 
				
			||||||
 | 
					        return indexService.getCheckStatus(params);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,6 @@ package com.changhu.module.management.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
					import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
				
			||||||
import com.changhu.common.annotation.JsonBody;
 | 
					import com.changhu.common.annotation.JsonBody;
 | 
				
			||||||
import com.changhu.common.utils.JavaClassToTsUtil;
 | 
					 | 
				
			||||||
import com.changhu.module.management.pojo.queryParams.PoliceUnitPagerQueryParams;
 | 
					import com.changhu.module.management.pojo.queryParams.PoliceUnitPagerQueryParams;
 | 
				
			||||||
import com.changhu.module.management.pojo.vo.PoliceUnitPagerVo;
 | 
					import com.changhu.module.management.pojo.vo.PoliceUnitPagerVo;
 | 
				
			||||||
import com.changhu.module.management.service.PoliceUnitService;
 | 
					import com.changhu.module.management.service.PoliceUnitService;
 | 
				
			||||||
| 
						 | 
					@ -33,7 +32,4 @@ public class PoliceUnitController {
 | 
				
			||||||
        return policeUnitService.pager(queryParams);
 | 
					        return policeUnitService.pager(queryParams);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void main(String[] args) {
 | 
					 | 
				
			||||||
        System.out.println(JavaClassToTsUtil.parse(PoliceUnitPagerVo.class));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,4 +39,5 @@ public class SecurityUnitController {
 | 
				
			||||||
    public void saveOrUpdate(@RequestBody @Valid SecurityUnitSaveOrUpdateParams params) {
 | 
					    public void saveOrUpdate(@RequestBody @Valid SecurityUnitSaveOrUpdateParams params) {
 | 
				
			||||||
        securityUnitService.saveOrUpdate(params);
 | 
					        securityUnitService.saveOrUpdate(params);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.changhu.module.management.enums.handler.AbstractUnitTypeHandler;
 | 
				
			||||||
 | 
					import com.changhu.module.management.enums.handler.PoliceUnitTypeHandler;
 | 
				
			||||||
 | 
					import com.changhu.module.management.enums.handler.SecurityUnitTypeHandler;
 | 
				
			||||||
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Getter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午9:51
 | 
				
			||||||
 | 
					 * @desc IndexCheckPass...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@AllArgsConstructor
 | 
				
			||||||
 | 
					@Getter
 | 
				
			||||||
 | 
					public enum UnitOptType {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SECURITY_UNIT(new SecurityUnitTypeHandler()),
 | 
				
			||||||
 | 
					    POLICE_UNIT(new PoliceUnitTypeHandler());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final AbstractUnitTypeHandler handler;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.enums.handler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.extra.spring.SpringUtil;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.vo.UnitCheckStatusVo;
 | 
				
			||||||
 | 
					import org.springframework.transaction.PlatformTransactionManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午9:53
 | 
				
			||||||
 | 
					 * @desc AbstractCheckPassHandler...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public abstract class AbstractUnitTypeHandler {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    final PlatformTransactionManager transactionManager = SpringUtil.getBean(PlatformTransactionManager.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 通过
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public abstract void pass(Long checkDataId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取审核状态
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param onlyCode 唯一代码
 | 
				
			||||||
 | 
					     * @return 审核状态
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public abstract UnitCheckStatusVo getCheckStatus(String onlyCode);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,106 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.enums.handler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.util.RandomUtil;
 | 
				
			||||||
 | 
					import cn.hutool.core.util.StrUtil;
 | 
				
			||||||
 | 
					import cn.hutool.extra.spring.SpringUtil;
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.CheckStatus;
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.IsOrNot;
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.Sex;
 | 
				
			||||||
 | 
					import com.changhu.common.enums.ResultCode;
 | 
				
			||||||
 | 
					import com.changhu.common.exception.MessageException;
 | 
				
			||||||
 | 
					import com.changhu.common.utils.UserUtil;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.entity.PoliceUnit;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.vo.UnitCheckStatusVo;
 | 
				
			||||||
 | 
					import com.changhu.module.management.service.ManagementPoliceUnitUserService;
 | 
				
			||||||
 | 
					import com.changhu.module.management.service.PoliceUnitService;
 | 
				
			||||||
 | 
					import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					import org.springframework.transaction.TransactionStatus;
 | 
				
			||||||
 | 
					import org.springframework.transaction.support.DefaultTransactionDefinition;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午11:03
 | 
				
			||||||
 | 
					 * @desc PoliceUnitTypeHandler...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Slf4j
 | 
				
			||||||
 | 
					public class PoliceUnitTypeHandler extends AbstractUnitTypeHandler {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final PoliceUnitService policeUnitService = SpringUtil.getBean(PoliceUnitService.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final ManagementPoliceUnitUserService policeUnitUserService = SpringUtil.getBean(ManagementPoliceUnitUserService.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void pass(Long checkDataId) {
 | 
				
			||||||
 | 
					        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
 | 
				
			||||||
 | 
					        TransactionStatus status = transactionManager.getTransaction(def);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            PoliceUnit policeUnit = policeUnitService.getOptById(checkDataId).orElseThrow(() -> new MessageException(ResultCode.DATA_NOT_FOUND));
 | 
				
			||||||
 | 
					            //更新状态
 | 
				
			||||||
 | 
					            boolean update = policeUnitService.lambdaUpdate()
 | 
				
			||||||
 | 
					                    .set(PoliceUnit::getCheckStatus, CheckStatus.checked)
 | 
				
			||||||
 | 
					                    .eq(BaseEntity::getSnowFlakeId, checkDataId)
 | 
				
			||||||
 | 
					                    .update();
 | 
				
			||||||
 | 
					            if (!update) {
 | 
				
			||||||
 | 
					                throw new MessageException(ResultCode.ERROR);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            //生成管理员账号密码
 | 
				
			||||||
 | 
					            String passWordEncrypt = UserUtil.passWordEncrypt(UserUtil.DEFAULT_PASSWORD);
 | 
				
			||||||
 | 
					            List<String> saltAndPassWord = StrUtil.split(passWordEncrypt, "$$");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ManagementPoliceUnitUser managementPoliceUnitUser = new ManagementPoliceUnitUser();
 | 
				
			||||||
 | 
					            managementPoliceUnitUser.setPoliceUnitId(policeUnit.getSnowFlakeId());
 | 
				
			||||||
 | 
					            managementPoliceUnitUser.setName("超级管理员");
 | 
				
			||||||
 | 
					            managementPoliceUnitUser.setSex(Sex.UNKNOWN);
 | 
				
			||||||
 | 
					            managementPoliceUnitUser.setAccount(RandomUtil.randomString(6));
 | 
				
			||||||
 | 
					            managementPoliceUnitUser.setTelephone("");
 | 
				
			||||||
 | 
					            managementPoliceUnitUser.setSalt(saltAndPassWord.get(0));
 | 
				
			||||||
 | 
					            managementPoliceUnitUser.setPassword(saltAndPassWord.get(1));
 | 
				
			||||||
 | 
					            managementPoliceUnitUser.setIsAdmin(IsOrNot.IS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            boolean save = policeUnitUserService.save(managementPoliceUnitUser);
 | 
				
			||||||
 | 
					            if (!save) {
 | 
				
			||||||
 | 
					                throw new MessageException(ResultCode.ERROR);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //提交事务
 | 
				
			||||||
 | 
					            transactionManager.commit(status);
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            //回滚事务
 | 
				
			||||||
 | 
					            transactionManager.rollback(status);
 | 
				
			||||||
 | 
					            log.error("公安单位审核通过错误:{}", e.getMessage());
 | 
				
			||||||
 | 
					            throw new MessageException(e.getMessage());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public UnitCheckStatusVo getCheckStatus(String onlyCode) {
 | 
				
			||||||
 | 
					        PoliceUnit policeUnit = policeUnitService.lambdaQuery()
 | 
				
			||||||
 | 
					                .eq(PoliceUnit::getCode, onlyCode)
 | 
				
			||||||
 | 
					                .oneOpt()
 | 
				
			||||||
 | 
					                .orElseThrow(() -> new MessageException(ResultCode.DATA_NOT_FOUND));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        UnitCheckStatusVo unitCheckStatusVo = new UnitCheckStatusVo();
 | 
				
			||||||
 | 
					        unitCheckStatusVo.setCheckStatus(policeUnit.getCheckStatus());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (policeUnit.getCheckStatus().equals(CheckStatus.checked)) {
 | 
				
			||||||
 | 
					            ManagementPoliceUnitUser managementPoliceUnitUser = policeUnitUserService.lambdaQuery()
 | 
				
			||||||
 | 
					                    .eq(ManagementPoliceUnitUser::getPoliceUnitId, policeUnit.getSnowFlakeId())
 | 
				
			||||||
 | 
					                    .eq(ManagementPoliceUnitUser::getIsAdmin, IsOrNot.IS)
 | 
				
			||||||
 | 
					                    .oneOpt()
 | 
				
			||||||
 | 
					                    .orElseThrow(() -> new MessageException("超管账号未初始化 请联系管理员"));
 | 
				
			||||||
 | 
					            unitCheckStatusVo.setAccount(managementPoliceUnitUser.getAccount());
 | 
				
			||||||
 | 
					            unitCheckStatusVo.setRemark("恭喜!单位审核通过了,请使用管理员账号前往登录页进行登录.");
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            unitCheckStatusVo.setPassword(null);
 | 
				
			||||||
 | 
					            unitCheckStatusVo.setRemark("单位注册申请正在审核中...");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return unitCheckStatusVo;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,108 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.enums.handler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.util.RandomUtil;
 | 
				
			||||||
 | 
					import cn.hutool.core.util.StrUtil;
 | 
				
			||||||
 | 
					import cn.hutool.extra.spring.SpringUtil;
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.CheckStatus;
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.IsEnable;
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.IsOrNot;
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.Sex;
 | 
				
			||||||
 | 
					import com.changhu.common.enums.ResultCode;
 | 
				
			||||||
 | 
					import com.changhu.common.exception.MessageException;
 | 
				
			||||||
 | 
					import com.changhu.common.utils.UserUtil;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.entity.ManagementSecurityUnitUser;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.entity.SecurityUnit;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.vo.UnitCheckStatusVo;
 | 
				
			||||||
 | 
					import com.changhu.module.management.service.ManagementSecurityUnitUserService;
 | 
				
			||||||
 | 
					import com.changhu.module.management.service.SecurityUnitService;
 | 
				
			||||||
 | 
					import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					import org.springframework.transaction.TransactionStatus;
 | 
				
			||||||
 | 
					import org.springframework.transaction.support.DefaultTransactionDefinition;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午9:55
 | 
				
			||||||
 | 
					 * @desc SecurityCheckPassHandler...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Slf4j
 | 
				
			||||||
 | 
					public class SecurityUnitTypeHandler extends AbstractUnitTypeHandler {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final SecurityUnitService securityUnitService = SpringUtil.getBean(SecurityUnitService.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final ManagementSecurityUnitUserService securityUnitUserService = SpringUtil.getBean(ManagementSecurityUnitUserService.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void pass(Long checkDataId) {
 | 
				
			||||||
 | 
					        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
 | 
				
			||||||
 | 
					        TransactionStatus status = transactionManager.getTransaction(def);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            SecurityUnit securityUnit = securityUnitService.getOptById(checkDataId).orElseThrow(() -> new MessageException(ResultCode.DATA_NOT_FOUND));
 | 
				
			||||||
 | 
					            //更新状态
 | 
				
			||||||
 | 
					            boolean update = securityUnitService.lambdaUpdate()
 | 
				
			||||||
 | 
					                    .set(SecurityUnit::getCheckStatus, CheckStatus.checked)
 | 
				
			||||||
 | 
					                    .eq(BaseEntity::getSnowFlakeId, checkDataId)
 | 
				
			||||||
 | 
					                    .update();
 | 
				
			||||||
 | 
					            if (!update) {
 | 
				
			||||||
 | 
					                throw new MessageException(ResultCode.ERROR);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            //生成简单的超级管理员账号密码
 | 
				
			||||||
 | 
					            String passWordEncrypt = UserUtil.passWordEncrypt(UserUtil.DEFAULT_PASSWORD);
 | 
				
			||||||
 | 
					            List<String> saltAndPassWord = StrUtil.split(passWordEncrypt, "$$");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ManagementSecurityUnitUser managementSecurityUnitUser = new ManagementSecurityUnitUser();
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setSecurityUnitId(securityUnit.getSnowFlakeId());
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setName("超级管理员");
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setSex(Sex.UNKNOWN);
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setAccount(RandomUtil.randomString(6));
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setTelephone("");
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setSalt(saltAndPassWord.get(0));
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setPassword(saltAndPassWord.get(1));
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setIsEnable(IsEnable.TRUE);
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setIsAdmin(IsOrNot.IS);
 | 
				
			||||||
 | 
					            managementSecurityUnitUser.setRemark("单位审核通过 默认分配超管账号");
 | 
				
			||||||
 | 
					            boolean save = securityUnitUserService.save(managementSecurityUnitUser);
 | 
				
			||||||
 | 
					            if (!save) {
 | 
				
			||||||
 | 
					                throw new MessageException(ResultCode.ERROR);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //提交事务
 | 
				
			||||||
 | 
					            transactionManager.commit(status);
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            //回滚事务
 | 
				
			||||||
 | 
					            transactionManager.rollback(status);
 | 
				
			||||||
 | 
					            log.error("保安单位审核通过错误:{}", e.getMessage());
 | 
				
			||||||
 | 
					            throw new MessageException(e.getMessage());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public UnitCheckStatusVo getCheckStatus(String onlyCode) {
 | 
				
			||||||
 | 
					        SecurityUnit securityUnit = securityUnitService.lambdaQuery()
 | 
				
			||||||
 | 
					                .eq(SecurityUnit::getSocialCode, onlyCode)
 | 
				
			||||||
 | 
					                .oneOpt()
 | 
				
			||||||
 | 
					                .orElseThrow(() -> new MessageException(ResultCode.DATA_NOT_FOUND));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        UnitCheckStatusVo unitCheckStatusVo = new UnitCheckStatusVo();
 | 
				
			||||||
 | 
					        unitCheckStatusVo.setCheckStatus(securityUnit.getCheckStatus());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (securityUnit.getCheckStatus().equals(CheckStatus.checked)) {
 | 
				
			||||||
 | 
					            ManagementSecurityUnitUser managementSecurityUnitUser = securityUnitUserService.lambdaQuery()
 | 
				
			||||||
 | 
					                    .eq(ManagementSecurityUnitUser::getSecurityUnitId, securityUnit.getSnowFlakeId())
 | 
				
			||||||
 | 
					                    .eq(ManagementSecurityUnitUser::getIsAdmin, IsOrNot.IS)
 | 
				
			||||||
 | 
					                    .oneOpt()
 | 
				
			||||||
 | 
					                    .orElseThrow(() -> new MessageException("超管账号未初始化 请联系管理员"));
 | 
				
			||||||
 | 
					            unitCheckStatusVo.setAccount(managementSecurityUnitUser.getAccount());
 | 
				
			||||||
 | 
					            unitCheckStatusVo.setRemark("恭喜!单位审核通过了,请使用管理员账号前往登录页进行登录.");
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            unitCheckStatusVo.setPassword(null);
 | 
				
			||||||
 | 
					            unitCheckStatusVo.setRemark("单位注册申请正在审核中...");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return unitCheckStatusVo;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,6 @@ import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 * desc 由groovy脚本自动生成
 | 
					 * desc 由groovy脚本自动生成
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Mapper
 | 
					@Mapper
 | 
				
			||||||
public interface ManagementPoliceUserMapper extends BaseMapper<ManagementPoliceUnitUser> {
 | 
					public interface ManagementPoliceUnitUserMapper extends BaseMapper<ManagementPoliceUnitUser> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,6 @@
 | 
				
			||||||
package com.changhu.module.management.mapper;
 | 
					package com.changhu.module.management.mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
					import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
				
			||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
					import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
				
			||||||
import com.changhu.module.management.pojo.entity.SecurityUnit;
 | 
					import com.changhu.module.management.pojo.entity.SecurityUnit;
 | 
				
			||||||
import com.changhu.module.management.pojo.queryParams.SecurityUnitPagerQueryParams;
 | 
					import com.changhu.module.management.pojo.queryParams.SecurityUnitPagerQueryParams;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,18 +1,18 @@
 | 
				
			||||||
package com.changhu.module.management.pojo.entity;
 | 
					package com.changhu.module.management.pojo.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serial;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import java.io.Serializable;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.changhu.common.db.enums.IsEnable;
 | 
					import com.changhu.common.db.enums.IsEnable;
 | 
				
			||||||
import com.changhu.common.db.enums.IsOrNot;
 | 
					import com.changhu.common.db.enums.IsOrNot;
 | 
				
			||||||
import com.changhu.common.db.enums.Sex;
 | 
					import com.changhu.common.db.enums.Sex;
 | 
				
			||||||
import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
					import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
import lombok.experimental.SuperBuilder;
 | 
					import lombok.experimental.SuperBuilder;
 | 
				
			||||||
import lombok.EqualsAndHashCode;
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import java.io.Serial;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -46,6 +46,11 @@ public class ManagementPoliceUnitUser extends BaseEntity implements Serializable
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private Sex sex;
 | 
					    private Sex sex;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 账号
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String account;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 手机号
 | 
					     * 手机号
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,18 +1,18 @@
 | 
				
			||||||
package com.changhu.module.management.pojo.entity;
 | 
					package com.changhu.module.management.pojo.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serial;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import java.io.Serializable;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.changhu.common.db.enums.IsEnable;
 | 
					import com.changhu.common.db.enums.IsEnable;
 | 
				
			||||||
import com.changhu.common.db.enums.IsOrNot;
 | 
					import com.changhu.common.db.enums.IsOrNot;
 | 
				
			||||||
import com.changhu.common.db.enums.Sex;
 | 
					import com.changhu.common.db.enums.Sex;
 | 
				
			||||||
import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
					import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
import lombok.experimental.SuperBuilder;
 | 
					import lombok.experimental.SuperBuilder;
 | 
				
			||||||
import lombok.EqualsAndHashCode;
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import java.io.Serial;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -46,6 +46,11 @@ public class ManagementSecurityUnitUser extends BaseEntity implements Serializab
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private Sex sex;
 | 
					    private Sex sex;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 账号
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String account;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 手机号
 | 
					     * 手机号
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,17 +1,17 @@
 | 
				
			||||||
package com.changhu.module.management.pojo.entity;
 | 
					package com.changhu.module.management.pojo.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.IsEnable;
 | 
				
			||||||
 | 
					import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.experimental.SuperBuilder;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serial;
 | 
					import java.io.Serial;
 | 
				
			||||||
import java.io.Serializable;
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.changhu.common.db.enums.IsEnable;
 | 
					 | 
				
			||||||
import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
					 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					 | 
				
			||||||
import lombok.experimental.SuperBuilder;
 | 
					 | 
				
			||||||
import lombok.EqualsAndHashCode;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 后台-超级后台 实体类
 | 
					 * 后台-超级后台 实体类
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,20 +1,20 @@
 | 
				
			||||||
package com.changhu.module.management.pojo.entity;
 | 
					package com.changhu.module.management.pojo.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serial;
 | 
					 | 
				
			||||||
import java.io.Serializable;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
 | 
					import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
 | 
				
			||||||
import com.changhu.common.db.enums.CheckStatus;
 | 
					import com.changhu.common.db.enums.CheckStatus;
 | 
				
			||||||
import com.changhu.common.db.enums.IsEnable;
 | 
					import com.changhu.common.db.enums.IsEnable;
 | 
				
			||||||
import com.changhu.module.management.pojo.model.ContactPersonInfo;
 | 
					import com.changhu.module.management.pojo.model.ContactPersonInfo;
 | 
				
			||||||
import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
					import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
import lombok.experimental.SuperBuilder;
 | 
					import lombok.experimental.SuperBuilder;
 | 
				
			||||||
import lombok.EqualsAndHashCode;
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import java.io.Serial;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,20 +1,20 @@
 | 
				
			||||||
package com.changhu.module.management.pojo.entity;
 | 
					package com.changhu.module.management.pojo.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serial;
 | 
					 | 
				
			||||||
import java.io.Serializable;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
 | 
					import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
 | 
				
			||||||
import com.changhu.common.db.enums.CheckStatus;
 | 
					import com.changhu.common.db.enums.CheckStatus;
 | 
				
			||||||
import com.changhu.common.db.enums.IsEnable;
 | 
					import com.changhu.common.db.enums.IsEnable;
 | 
				
			||||||
import com.changhu.module.management.pojo.model.LegalPersonInfo;
 | 
					import com.changhu.module.management.pojo.model.LegalPersonInfo;
 | 
				
			||||||
import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
					import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
import lombok.experimental.SuperBuilder;
 | 
					import lombok.experimental.SuperBuilder;
 | 
				
			||||||
import lombok.EqualsAndHashCode;
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import java.io.Serial;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.pojo.params;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.changhu.module.management.enums.UnitOptType;
 | 
				
			||||||
 | 
					import io.swagger.v3.oas.annotations.media.Schema;
 | 
				
			||||||
 | 
					import jakarta.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午9:59
 | 
				
			||||||
 | 
					 * @desc IndexCheckPassParams...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class IndexCheckPassParams {
 | 
				
			||||||
 | 
					    @Schema(description = "审核数据的id")
 | 
				
			||||||
 | 
					    @NotNull(message = "审核数据的id不能为空")
 | 
				
			||||||
 | 
					    private Long checkDataId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Schema(description = "单位类型")
 | 
				
			||||||
 | 
					    @NotNull(message = "单位类型不能为空")
 | 
				
			||||||
 | 
					    private UnitOptType unitOptType;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.pojo.params;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.changhu.module.management.enums.UnitOptType;
 | 
				
			||||||
 | 
					import io.swagger.v3.oas.annotations.media.Schema;
 | 
				
			||||||
 | 
					import jakarta.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午10:51
 | 
				
			||||||
 | 
					 * @desc IndexCheckStatusParams...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class IndexCheckStatusParams {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Schema(description = "审核数据的唯一标识")
 | 
				
			||||||
 | 
					    @NotNull(message = "唯一标识不能为空")
 | 
				
			||||||
 | 
					    private String onlyCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Schema(description = "单位类型")
 | 
				
			||||||
 | 
					    @NotNull(message = "单位类型不能为空")
 | 
				
			||||||
 | 
					    private UnitOptType unitOptType;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,10 +1,6 @@
 | 
				
			||||||
package com.changhu.module.management.pojo.params;
 | 
					package com.changhu.module.management.pojo.params;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
 | 
					 | 
				
			||||||
import com.changhu.common.db.enums.CheckStatus;
 | 
					 | 
				
			||||||
import com.changhu.common.db.enums.IsEnable;
 | 
					import com.changhu.common.db.enums.IsEnable;
 | 
				
			||||||
import com.changhu.common.validator.annotation.IsMobile;
 | 
					 | 
				
			||||||
import com.changhu.module.management.pojo.model.LegalPersonInfo;
 | 
					import com.changhu.module.management.pojo.model.LegalPersonInfo;
 | 
				
			||||||
import io.swagger.v3.oas.annotations.media.Schema;
 | 
					import io.swagger.v3.oas.annotations.media.Schema;
 | 
				
			||||||
import jakarta.validation.constraints.NotBlank;
 | 
					import jakarta.validation.constraints.NotBlank;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@ import com.changhu.common.db.enums.CheckStatus;
 | 
				
			||||||
import com.changhu.common.db.enums.IsEnable;
 | 
					import com.changhu.common.db.enums.IsEnable;
 | 
				
			||||||
import com.changhu.module.management.pojo.model.ContactPersonInfo;
 | 
					import com.changhu.module.management.pojo.model.ContactPersonInfo;
 | 
				
			||||||
import io.swagger.v3.oas.annotations.media.Schema;
 | 
					import io.swagger.v3.oas.annotations.media.Schema;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					import java.time.LocalDateTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,6 +13,7 @@ import java.time.LocalDateTime;
 | 
				
			||||||
 * @createTime 2024/8/30 下午3:55
 | 
					 * @createTime 2024/8/30 下午3:55
 | 
				
			||||||
 * @desc PoliceUnitPagerVo...
 | 
					 * @desc PoliceUnitPagerVo...
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
public class PoliceUnitPagerVo {
 | 
					public class PoliceUnitPagerVo {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Schema(description = "id")
 | 
					    @Schema(description = "id")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.pojo.vo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.changhu.common.db.enums.CheckStatus;
 | 
				
			||||||
 | 
					import com.changhu.common.utils.UserUtil;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午10:42
 | 
				
			||||||
 | 
					 * @desc SecurityUnitCheckStatusVo...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class UnitCheckStatusVo {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private CheckStatus checkStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private String account;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private String password = UserUtil.DEFAULT_PASSWORD;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.params.IndexCheckPassParams;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.params.IndexCheckStatusParams;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.vo.UnitCheckStatusVo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午9:49
 | 
				
			||||||
 | 
					 * @desc IndexService...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface IndexService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 审核通过
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param params 审核参数
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void checkPass(IndexCheckPassParams params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取审核状态
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param params 参数
 | 
				
			||||||
 | 
					     * @return 结果
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    UnitCheckStatusVo getCheckStatus(IndexCheckStatusParams params);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,6 @@ import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser;
 | 
				
			||||||
 * author: luozhun
 | 
					 * author: luozhun
 | 
				
			||||||
 * desc 由groovy脚本自动生成
 | 
					 * desc 由groovy脚本自动生成
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public interface ManagementPoliceUserService extends IService<ManagementPoliceUnitUser> {
 | 
					public interface ManagementPoliceUnitUserService extends IService<ManagementPoliceUnitUser> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -29,4 +29,5 @@ public interface SecurityUnitService extends IService<SecurityUnit> {
 | 
				
			||||||
     * @param params 参数
 | 
					     * @param params 参数
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void saveOrUpdate(SecurityUnitSaveOrUpdateParams params);
 | 
					    void saveOrUpdate(SecurityUnitSaveOrUpdateParams params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					package com.changhu.module.management.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.params.IndexCheckPassParams;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.params.IndexCheckStatusParams;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.vo.UnitCheckStatusVo;
 | 
				
			||||||
 | 
					import com.changhu.module.management.service.IndexService;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 20252
 | 
				
			||||||
 | 
					 * @createTime 2024/9/2 上午9:49
 | 
				
			||||||
 | 
					 * @desc IndexServiceImpl...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class IndexServiceImpl implements IndexService {
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void checkPass(IndexCheckPassParams params) {
 | 
				
			||||||
 | 
					        params.getUnitOptType()
 | 
				
			||||||
 | 
					                .getHandler()
 | 
				
			||||||
 | 
					                .pass(params.getCheckDataId());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public UnitCheckStatusVo getCheckStatus(IndexCheckStatusParams params) {
 | 
				
			||||||
 | 
					        return params.getUnitOptType()
 | 
				
			||||||
 | 
					                .getHandler()
 | 
				
			||||||
 | 
					                .getCheckStatus(params.getOnlyCode());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
package com.changhu.module.management.service.impl;
 | 
					package com.changhu.module.management.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
					import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
				
			||||||
import com.changhu.module.management.mapper.ManagementPoliceUserMapper;
 | 
					import com.changhu.module.management.mapper.ManagementPoliceUnitUserMapper;
 | 
				
			||||||
import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser;
 | 
					import com.changhu.module.management.pojo.entity.ManagementPoliceUnitUser;
 | 
				
			||||||
import com.changhu.module.management.service.ManagementPoliceUserService;
 | 
					import com.changhu.module.management.service.ManagementPoliceUnitUserService;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,6 @@ import org.springframework.stereotype.Service;
 | 
				
			||||||
 * desc 由groovy脚本自动生成
 | 
					 * desc 由groovy脚本自动生成
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
public class ManagementPoliceUserServiceImpl extends ServiceImpl<ManagementPoliceUserMapper, ManagementPoliceUnitUser> implements ManagementPoliceUserService {
 | 
					public class ManagementPoliceUnitUserServiceImpl extends ServiceImpl<ManagementPoliceUnitUserMapper, ManagementPoliceUnitUser> implements ManagementPoliceUnitUserService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,28 +1,18 @@
 | 
				
			||||||
package com.changhu.module.management.service.impl;
 | 
					package com.changhu.module.management.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.bean.BeanUtil;
 | 
					import cn.hutool.core.bean.BeanUtil;
 | 
				
			||||||
import com.changhu.common.utils.JavaClassToTsUtil;
 | 
					 | 
				
			||||||
import com.changhu.module.management.pojo.model.LegalPersonInfo;
 | 
					 | 
				
			||||||
import com.changhu.module.management.pojo.params.SecurityUnitSaveOrUpdateParams;
 | 
					 | 
				
			||||||
import com.google.common.collect.Lists;
 | 
					 | 
				
			||||||
import com.changhu.common.db.enums.IsEnable;
 | 
					 | 
				
			||||||
import com.changhu.common.db.enums.CheckStatus;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import cn.hutool.core.collection.CollUtil;
 | 
					 | 
				
			||||||
import cn.hutool.core.util.StrUtil;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
					import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
					import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
				
			||||||
 | 
					import com.changhu.common.utils.JavaClassToTsUtil;
 | 
				
			||||||
import com.changhu.module.management.mapper.SecurityUnitMapper;
 | 
					import com.changhu.module.management.mapper.SecurityUnitMapper;
 | 
				
			||||||
import com.changhu.module.management.pojo.entity.SecurityUnit;
 | 
					import com.changhu.module.management.pojo.entity.SecurityUnit;
 | 
				
			||||||
 | 
					import com.changhu.module.management.pojo.params.SecurityUnitSaveOrUpdateParams;
 | 
				
			||||||
import com.changhu.module.management.pojo.queryParams.SecurityUnitPagerQueryParams;
 | 
					import com.changhu.module.management.pojo.queryParams.SecurityUnitPagerQueryParams;
 | 
				
			||||||
import com.changhu.module.management.pojo.vo.SecurityUnitPagerVo;
 | 
					import com.changhu.module.management.pojo.vo.SecurityUnitPagerVo;
 | 
				
			||||||
import com.changhu.module.management.service.SecurityUnitService;
 | 
					import com.changhu.module.management.service.SecurityUnitService;
 | 
				
			||||||
import com.changhu.support.mybatisplus.pojo.params.PageParams;
 | 
					import com.changhu.support.mybatisplus.pojo.params.PageParams;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
import java.util.Optional;
 | 
					import java.util.Optional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -35,27 +25,7 @@ public class SecurityUnitServiceImpl extends ServiceImpl<SecurityUnitMapper, Sec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Page<SecurityUnitPagerVo> pager(PageParams<SecurityUnitPagerQueryParams, SecurityUnitPagerVo> queryParams) {
 | 
					    public Page<SecurityUnitPagerVo> pager(PageParams<SecurityUnitPagerQueryParams, SecurityUnitPagerVo> queryParams) {
 | 
				
			||||||
        Page<SecurityUnitPagerVo> page = queryParams.getPage();
 | 
					        return baseMapper.pager(queryParams.getPage(), queryParams.getParams());
 | 
				
			||||||
        SecurityUnitPagerQueryParams params = queryParams.getParams();
 | 
					 | 
				
			||||||
        LambdaQueryWrapper<SecurityUnit> wrapper = Wrappers.<SecurityUnit>lambdaQuery()
 | 
					 | 
				
			||||||
                .like(StrUtil.isNotEmpty(params.getName()), SecurityUnit::getName, params.getName())
 | 
					 | 
				
			||||||
                .like(StrUtil.isNotEmpty(params.getSocialCode()), SecurityUnit::getSocialCode, params.getSocialCode());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (params.getCheckStatus() != null) {
 | 
					 | 
				
			||||||
            wrapper.eq(SecurityUnit::getCheckStatus, params.getCheckStatus().getValue());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (params.getIsEnable() != null) {
 | 
					 | 
				
			||||||
            wrapper.eq(SecurityUnit::getIsEnable, params.getIsEnable().getValue());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        List<String> administrativeDivisionCodes = params.getAdministrativeDivisionCodes();
 | 
					 | 
				
			||||||
        if (administrativeDivisionCodes != null) {
 | 
					 | 
				
			||||||
            wrapper.eq(!administrativeDivisionCodes.isEmpty(), SecurityUnit::getProvince, administrativeDivisionCodes.get(0));
 | 
					 | 
				
			||||||
            wrapper.eq(administrativeDivisionCodes.size() >= 2, SecurityUnit::getCity, administrativeDivisionCodes.get(1));
 | 
					 | 
				
			||||||
            wrapper.eq(administrativeDivisionCodes.size() >= 3, SecurityUnit::getDistricts, administrativeDivisionCodes.get(2));
 | 
					 | 
				
			||||||
            wrapper.eq(administrativeDivisionCodes.size() >= 4, SecurityUnit::getStreet, administrativeDivisionCodes.get(3));
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return baseMapper.pager(page, params);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +1,16 @@
 | 
				
			||||||
package com.changhu.pojo.entity;
 | 
					package com.changhu.pojo.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.experimental.SuperBuilder;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serial;
 | 
					import java.io.Serial;
 | 
				
			||||||
import java.io.Serializable;
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.changhu.support.mybatisplus.pojo.entity.BaseEntity;
 | 
					 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					 | 
				
			||||||
import lombok.experimental.SuperBuilder;
 | 
					 | 
				
			||||||
import lombok.EqualsAndHashCode;
 | 
					 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 全国行政区划表(2023/12/04) 实体类
 | 
					 * 全国行政区划表(2023/12/04) 实体类
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,10 +2,8 @@ package com.changhu.pojo.params;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.changhu.module.management.pojo.model.LegalPersonInfo;
 | 
					import com.changhu.module.management.pojo.model.LegalPersonInfo;
 | 
				
			||||||
import io.swagger.v3.oas.annotations.media.Schema;
 | 
					import io.swagger.v3.oas.annotations.media.Schema;
 | 
				
			||||||
import jakarta.validation.Valid;
 | 
					 | 
				
			||||||
import jakarta.validation.constraints.NotBlank;
 | 
					import jakarta.validation.constraints.NotBlank;
 | 
				
			||||||
import jakarta.validation.constraints.NotEmpty;
 | 
					import jakarta.validation.constraints.NotEmpty;
 | 
				
			||||||
import jakarta.validation.constraints.NotNull;
 | 
					 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,6 @@ package com.changhu.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.bean.BeanUtil;
 | 
					import cn.hutool.core.bean.BeanUtil;
 | 
				
			||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
					import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.toolkit.Db;
 | 
					 | 
				
			||||||
import com.changhu.common.enums.ResultCode;
 | 
					import com.changhu.common.enums.ResultCode;
 | 
				
			||||||
import com.changhu.common.exception.MessageException;
 | 
					import com.changhu.common.exception.MessageException;
 | 
				
			||||||
import com.changhu.common.pojo.model.JsonResult;
 | 
					import com.changhu.common.pojo.model.JsonResult;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,6 @@
 | 
				
			||||||
package com.changhu.service.impl;
 | 
					package com.changhu.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.changhu.common.pojo.vo.TokenInfo;
 | 
					import com.changhu.common.pojo.vo.TokenInfo;
 | 
				
			||||||
import com.changhu.enums.ClientType;
 | 
					 | 
				
			||||||
import com.changhu.enums.handler.AbstractLoginHandler;
 | 
					 | 
				
			||||||
import com.changhu.pojo.params.LoginParams;
 | 
					import com.changhu.pojo.params.LoginParams;
 | 
				
			||||||
import com.changhu.service.LoginService;
 | 
					import com.changhu.service.LoginService;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,6 @@ import com.changhu.common.annotation.Desensitized;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.reflect.Field;
 | 
					import java.lang.reflect.Field;
 | 
				
			||||||
import java.util.HashMap;
 | 
					 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.concurrent.ConcurrentHashMap;
 | 
					import java.util.concurrent.ConcurrentHashMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,6 @@
 | 
				
			||||||
package com.changhu.support.mybatisplus.pojo.entity;
 | 
					package com.changhu.support.mybatisplus.pojo.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.*;
 | 
					import com.baomidou.mybatisplus.annotation.*;
 | 
				
			||||||
import com.changhu.common.db.enums.DeleteFlag;
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,6 @@
 | 
				
			||||||
package com.changhu.support.ws.manager;
 | 
					package com.changhu.support.ws.manager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.alibaba.fastjson2.JSON;
 | 
					import com.alibaba.fastjson2.JSON;
 | 
				
			||||||
import com.changhu.support.ws.enums.WsMsgType;
 | 
					 | 
				
			||||||
import com.changhu.support.ws.pojo.dto.WsMsgDTO;
 | 
					import com.changhu.support.ws.pojo.dto.WsMsgDTO;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.web.socket.TextMessage;
 | 
					import org.springframework.web.socket.TextMessage;
 | 
				
			||||||
| 
						 | 
					@ -9,7 +8,6 @@ import org.springframework.web.socket.WebSocketSession;
 | 
				
			||||||
import org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator;
 | 
					import org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.Optional;
 | 
					import java.util.Optional;
 | 
				
			||||||
import java.util.concurrent.ConcurrentHashMap;
 | 
					import java.util.concurrent.ConcurrentHashMap;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,8 +9,6 @@ import com.changhu.support.ws.manager.UserConnectWebsocketManager;
 | 
				
			||||||
import com.changhu.support.ws.pojo.dto.WsMsgDTO;
 | 
					import com.changhu.support.ws.pojo.dto.WsMsgDTO;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.jetbrains.annotations.NotNull;
 | 
					import org.jetbrains.annotations.NotNull;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					 | 
				
			||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 | 
					 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
import org.springframework.web.socket.CloseStatus;
 | 
					import org.springframework.web.socket.CloseStatus;
 | 
				
			||||||
import org.springframework.web.socket.TextMessage;
 | 
					import org.springframework.web.socket.TextMessage;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,28 +1,43 @@
 | 
				
			||||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
					<?xml version="1.0" encoding="UTF-8" ?>
 | 
				
			||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 | 
					<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 | 
				
			||||||
<mapper namespace="com.changhu.module.management.mapper.PoliceUnitMapper">
 | 
					<mapper namespace="com.changhu.module.management.mapper.PoliceUnitMapper">
 | 
				
			||||||
    <select id="pager" resultType="com.changhu.module.management.pojo.vo.PoliceUnitPagerVo">
 | 
					    <resultMap id="PoliceUnitPagerVoResultMap" type="com.changhu.module.management.pojo.vo.PoliceUnitPagerVo">
 | 
				
			||||||
        select *
 | 
					        <result
 | 
				
			||||||
        from police_unit
 | 
					                column="contact_person_info"
 | 
				
			||||||
        where delete_flag = 0
 | 
					                typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler"
 | 
				
			||||||
        <if test="params.name!=null and params.name!=''">and name like concat('%',#{params.name},'%')</if>
 | 
					                property="contactPersonInfo"/>
 | 
				
			||||||
        <if test="params.code!=null and params.code!=''">and code like concat('%',#{params.code},'%')</if>
 | 
					    </resultMap>
 | 
				
			||||||
 | 
					    <select id="pager" resultMap="PoliceUnitPagerVoResultMap">
 | 
				
			||||||
 | 
					        select
 | 
				
			||||||
 | 
					            pu.*,
 | 
				
			||||||
 | 
					            ad1.name as provinceName,
 | 
				
			||||||
 | 
					            ad2.name as cityName,
 | 
				
			||||||
 | 
					            ad3.name as districtsName,
 | 
				
			||||||
 | 
					            ad4.name as streetName
 | 
				
			||||||
 | 
					        from police_unit pu
 | 
				
			||||||
 | 
					            left join administrative_division ad1 on pu.province = ad1.code and ad1.delete_flag = 0
 | 
				
			||||||
 | 
					            left join administrative_division ad2 on pu.city = ad2.code and ad2.delete_flag = 0
 | 
				
			||||||
 | 
					            left join administrative_division ad3 on pu.districts = ad3.code and ad3.delete_flag = 0
 | 
				
			||||||
 | 
					            left join administrative_division ad4 on pu.street = ad4.code and ad4.delete_flag = 0
 | 
				
			||||||
 | 
					        where pu.delete_flag = 0
 | 
				
			||||||
 | 
					        <if test="params.name!=null and params.name!=''">and pu.name like concat('%',#{params.name},'%')</if>
 | 
				
			||||||
 | 
					        <if test="params.code!=null and params.code!=''">and pu.code like concat('%',#{params.code},'%')</if>
 | 
				
			||||||
        <if test="params.administrativeDivisionCodes!=null">
 | 
					        <if test="params.administrativeDivisionCodes!=null">
 | 
				
			||||||
            <if test="params.administrativeDivisionCodes.size>=1">
 | 
					            <if test="params.administrativeDivisionCodes.size>=1">
 | 
				
			||||||
                and province = #{params.administrativeDivisionCodes[0]}
 | 
					                and pu.province = #{params.administrativeDivisionCodes[0]}
 | 
				
			||||||
            </if>
 | 
					            </if>
 | 
				
			||||||
            <if test="params.administrativeDivisionCodes.size>=2">
 | 
					            <if test="params.administrativeDivisionCodes.size>=2">
 | 
				
			||||||
                and city = #{params.administrativeDivisionCodes[1]}
 | 
					                and pu.city = #{params.administrativeDivisionCodes[1]}
 | 
				
			||||||
            </if>
 | 
					            </if>
 | 
				
			||||||
            <if test="params.administrativeDivisionCodes.size>=3">
 | 
					            <if test="params.administrativeDivisionCodes.size>=3">
 | 
				
			||||||
                and districts = #{params.administrativeDivisionCodes[2]}
 | 
					                and pu.districts = #{params.administrativeDivisionCodes[2]}
 | 
				
			||||||
            </if>
 | 
					            </if>
 | 
				
			||||||
            <if test="params.administrativeDivisionCodes.size>=4">
 | 
					            <if test="params.administrativeDivisionCodes.size>=4">
 | 
				
			||||||
                and street = #{params.administrativeDivisionCodes[3]}
 | 
					                and pu.street = #{params.administrativeDivisionCodes[3]}
 | 
				
			||||||
            </if>
 | 
					            </if>
 | 
				
			||||||
            order by create_time desc
 | 
					 | 
				
			||||||
        </if>
 | 
					        </if>
 | 
				
			||||||
        <if test="params.isEnable!=null">and is_enable = #{params.isEnable.value}</if>
 | 
					        <if test="params.isEnable!=null">and pu.is_enable = #{params.isEnable.value}</if>
 | 
				
			||||||
        <if test="params.checkStatus!=null">and check_status = #{params.checkStatus.value}</if>
 | 
					        <if test="params.checkStatus!=null">and pu.check_status = #{params.checkStatus.value}</if>
 | 
				
			||||||
 | 
					        order by pu.create_time desc
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
</mapper>
 | 
					</mapper>
 | 
				
			||||||
| 
						 | 
					@ -1,34 +1,50 @@
 | 
				
			||||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
					<?xml version="1.0" encoding="UTF-8" ?>
 | 
				
			||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 | 
					<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 | 
				
			||||||
<mapper namespace="com.changhu.module.management.mapper.SecurityUnitMapper">
 | 
					<mapper namespace="com.changhu.module.management.mapper.SecurityUnitMapper">
 | 
				
			||||||
    <select id="pager" resultType="com.changhu.module.management.pojo.vo.SecurityUnitPagerVo">
 | 
					    <resultMap id="SecurityUnitPagerVoResultMap" type="com.changhu.module.management.pojo.vo.SecurityUnitPagerVo">
 | 
				
			||||||
 | 
					        <result
 | 
				
			||||||
 | 
					                column="legal_person_info"
 | 
				
			||||||
 | 
					                typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler"
 | 
				
			||||||
 | 
					                property="legalPersonInfo"/>
 | 
				
			||||||
 | 
					    </resultMap>
 | 
				
			||||||
 | 
					    <select id="pager" resultMap="SecurityUnitPagerVoResultMap">
 | 
				
			||||||
        select
 | 
					        select
 | 
				
			||||||
        *
 | 
					            su.*,
 | 
				
			||||||
        from security_unit
 | 
					            ad1.name as provinceName,
 | 
				
			||||||
 | 
					            ad2.name as cityName,
 | 
				
			||||||
 | 
					            ad3.name as districtsName,
 | 
				
			||||||
 | 
					            ad4.name as streetName
 | 
				
			||||||
 | 
					        from
 | 
				
			||||||
 | 
					            security_unit su
 | 
				
			||||||
 | 
					            left join administrative_division ad1 on su.province = ad1.code and ad1.delete_flag = 0
 | 
				
			||||||
 | 
					            left join administrative_division ad2 on su.city = ad2.code and ad2.delete_flag = 0
 | 
				
			||||||
 | 
					            left join administrative_division ad3 on su.districts = ad3.code and ad3.delete_flag = 0
 | 
				
			||||||
 | 
					            left join administrative_division ad4 on su.street = ad4.code and ad4.delete_flag = 0
 | 
				
			||||||
        where
 | 
					        where
 | 
				
			||||||
        delete_flag = 0
 | 
					            su.delete_flag = 0
 | 
				
			||||||
            <if test="params.name!=null and params.name!=''">
 | 
					            <if test="params.name!=null and params.name!=''">
 | 
				
			||||||
            and name like concat('%',#{params.name},'%')
 | 
					                and su.name like concat('%',#{params.name},'%')
 | 
				
			||||||
            </if>
 | 
					            </if>
 | 
				
			||||||
            <if test="params.socialCode!=null and params.socialCode!=''">
 | 
					            <if test="params.socialCode!=null and params.socialCode!=''">
 | 
				
			||||||
            and socialCode like concat('%',#{params.socialCode},'%')
 | 
					                and su.socialCode like concat('%',#{params.socialCode},'%')
 | 
				
			||||||
            </if>
 | 
					            </if>
 | 
				
			||||||
            <if test="params.administrativeDivisionCodes!=null">
 | 
					            <if test="params.administrativeDivisionCodes!=null">
 | 
				
			||||||
                <if test="params.administrativeDivisionCodes.size>=1">
 | 
					                <if test="params.administrativeDivisionCodes.size>=1">
 | 
				
			||||||
                and province = #{params.administrativeDivisionCodes[0]}
 | 
					                    and su.province = #{params.administrativeDivisionCodes[0]}
 | 
				
			||||||
                </if>
 | 
					                </if>
 | 
				
			||||||
                <if test="params.administrativeDivisionCodes.size>=2">
 | 
					                <if test="params.administrativeDivisionCodes.size>=2">
 | 
				
			||||||
                and city = #{params.administrativeDivisionCodes[1]}
 | 
					                    and su.city = #{params.administrativeDivisionCodes[1]}
 | 
				
			||||||
                </if>
 | 
					                </if>
 | 
				
			||||||
                <if test="params.administrativeDivisionCodes.size>=3">
 | 
					                <if test="params.administrativeDivisionCodes.size>=3">
 | 
				
			||||||
                and districts = #{params.administrativeDivisionCodes[2]}
 | 
					                    and su.districts = #{params.administrativeDivisionCodes[2]}
 | 
				
			||||||
                </if>
 | 
					                </if>
 | 
				
			||||||
                <if test="params.administrativeDivisionCodes.size>=4">
 | 
					                <if test="params.administrativeDivisionCodes.size>=4">
 | 
				
			||||||
                and street = #{params.administrativeDivisionCodes[3]}
 | 
					                    and su.street = #{params.administrativeDivisionCodes[3]}
 | 
				
			||||||
                </if>
 | 
					                </if>
 | 
				
			||||||
            order by create_time desc
 | 
					                order by su.create_time desc
 | 
				
			||||||
            </if>
 | 
					            </if>
 | 
				
			||||||
        <if test="params.isEnable!=null">and is_enable = #{params.isEnable.value}</if>
 | 
					            <if test="params.isEnable!=null">and su.is_enable = #{params.isEnable.value}</if>
 | 
				
			||||||
        <if test="params.checkStatus!=null">and check_status = #{params.checkStatus.value}</if>
 | 
					            <if test="params.checkStatus!=null">and su.check_status = #{params.checkStatus.value}</if>
 | 
				
			||||||
 | 
					        order by su.create_time desc
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
</mapper>
 | 
					</mapper>
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,11 @@ VITE_DROP_CONSOLE=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# axios
 | 
					# axios
 | 
				
			||||||
VITE_APP_BASE_API=/api
 | 
					VITE_APP_BASE_API=/api
 | 
				
			||||||
VITE_APP_PROXY_URL=http://localhost:8765
 | 
					VITE_APP_PROXY_URL=http://172.10.10.151:8765
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# rsa 公钥
 | 
					# rsa 公钥
 | 
				
			||||||
VITE_APP_RSA_PUBLIC_KEY=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJps/EXxxSpEM1Ix4R0NWIOBciHCr7P7coDT8tNKfelgR7txcJOqHCO/MIWe7T04aHQTcpQxqx9hMca7dbqz8TZpz9jvLzE/6ZonVKxHsoFnNlHMp1/CPAJ9f6D9wYicum2KltJkmQ0g//D9W2zPCYoGOmSRFcZx/KEBa4EM53jQIDAQAB
 | 
					VITE_APP_RSA_PUBLIC_KEY=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJps/EXxxSpEM1Ix4R0NWIOBciHCr7P7coDT8tNKfelgR7txcJOqHCO/MIWe7T04aHQTcpQxqx9hMca7dbqz8TZpz9jvLzE/6ZonVKxHsoFnNlHMp1/CPAJ9f6D9wYicum2KltJkmQ0g//D9W2zPCYoGOmSRFcZx/KEBa4EM53jQIDAQAB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# minio
 | 
				
			||||||
 | 
					VITE_APP_MINIO_URL=http://118.253.177.137:9000
 | 
				
			||||||
 | 
					VITE_APP_MINIO_BUCKET=police-security-dev
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,3 +23,7 @@ dist-ssr
 | 
				
			||||||
*.njsproj
 | 
					*.njsproj
 | 
				
			||||||
*.sln
 | 
					*.sln
 | 
				
			||||||
*.sw?
 | 
					*.sw?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package-lock.json
 | 
				
			||||||
 | 
					yarn.lock
 | 
				
			||||||
 | 
					components.d.ts
 | 
				
			||||||
| 
						 | 
					@ -17,9 +17,12 @@
 | 
				
			||||||
    "pinia-plugin-persistedstate": "^3.2.0",
 | 
					    "pinia-plugin-persistedstate": "^3.2.0",
 | 
				
			||||||
    "sass": "^1.77.8",
 | 
					    "sass": "^1.77.8",
 | 
				
			||||||
    "vue": "^3.4.37",
 | 
					    "vue": "^3.4.37",
 | 
				
			||||||
    "vue-router": "4"
 | 
					    "vue-router": "4",
 | 
				
			||||||
 | 
					    "vue-uuid": "^3.0.0",
 | 
				
			||||||
 | 
					    "lodash-es": "^4.17.21"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@types/lodash-es": "^4.17.8",
 | 
				
			||||||
    "@types/node": "^22.5.1",
 | 
					    "@types/node": "^22.5.1",
 | 
				
			||||||
    "@vitejs/plugin-vue": "^5.1.2",
 | 
					    "@vitejs/plugin-vue": "^5.1.2",
 | 
				
			||||||
    "@vitejs/plugin-vue-jsx": "^4.0.1",
 | 
					    "@vitejs/plugin-vue-jsx": "^4.0.1",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts" setup>
 | 
					<script lang="ts" setup>
 | 
				
			||||||
import {ref} from 'vue'
 | 
					import {ref} from 'vue'
 | 
				
			||||||
import {FormInstance, message, notification} from "ant-design-vue";
 | 
					import {FormInstance, notification} from "ant-design-vue";
 | 
				
			||||||
import {Rule} from "ant-design-vue/es/form";
 | 
					import {Rule} from "ant-design-vue/es/form";
 | 
				
			||||||
import {LoginParams} from "@/types/views/login.ts";
 | 
					import {LoginParams} from "@/types/views/login.ts";
 | 
				
			||||||
import api from "@/axios";
 | 
					import api from "@/axios";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,95 @@
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="simpleUploadDiv">
 | 
				
			||||||
 | 
					    <a-progress v-if="uploading" type="circle" :percent="percent"/>
 | 
				
			||||||
 | 
					    <a-image
 | 
				
			||||||
 | 
					        height="80%"
 | 
				
			||||||
 | 
					        v-else
 | 
				
			||||||
 | 
					        :src="minioBaseUrl+modelValue"
 | 
				
			||||||
 | 
					        alt="avatar"/>
 | 
				
			||||||
 | 
					    <a-button class="btn-success" @click="selectFile">{{ btnLabel }}</a-button>
 | 
				
			||||||
 | 
					    <input id="myFileInput" type="file" style="display: none"/>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import {message} from "ant-design-vue";
 | 
				
			||||||
 | 
					import {onMounted, onUnmounted, ref} from "vue";
 | 
				
			||||||
 | 
					import {generateSimpleObjectName, getResignedObjectUrl} from "@/utils/minioUtil";
 | 
				
			||||||
 | 
					import axios, {CancelTokenSource} from "axios";
 | 
				
			||||||
 | 
					import {convertFileSizeToStr} from "@/utils/index.ts";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const minioBaseUrl = __APP_ENV.VITE_APP_MINIO_URL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const modelValue = defineModel<string>('value')
 | 
				
			||||||
 | 
					const props = withDefaults(defineProps<{
 | 
				
			||||||
 | 
					  parentDir?: string,
 | 
				
			||||||
 | 
					  allowedExtensions?: string[],
 | 
				
			||||||
 | 
					  maxSize?: number,
 | 
				
			||||||
 | 
					  width?: string | number,
 | 
				
			||||||
 | 
					  height?: string | number,
 | 
				
			||||||
 | 
					  btnLabel?: string
 | 
				
			||||||
 | 
					}>(), {
 | 
				
			||||||
 | 
					  parentDir: '',
 | 
				
			||||||
 | 
					  allowedExtensions: () => ['jpg', 'jpeg', 'png', 'gif'],
 | 
				
			||||||
 | 
					  maxSize: 1024 * 1024 * 4,
 | 
				
			||||||
 | 
					  width: '150px',
 | 
				
			||||||
 | 
					  height: '150px',
 | 
				
			||||||
 | 
					  btnLabel: '选择图片'
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uploading = ref(false)
 | 
				
			||||||
 | 
					const percent = ref(0)
 | 
				
			||||||
 | 
					let cancelToken: CancelTokenSource | null = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const selectFile = () => {
 | 
				
			||||||
 | 
					  document.getElementById('myFileInput')?.click()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function inputFileListener(this: HTMLInputElement) {
 | 
				
			||||||
 | 
					  const selectedFile: File = this.files?.[0] as File;
 | 
				
			||||||
 | 
					  const fileExtension = selectedFile.name?.split('.').pop().toLowerCase() as string;
 | 
				
			||||||
 | 
					  if (!props.allowedExtensions.includes(fileExtension)) {
 | 
				
			||||||
 | 
					    return message.error(`错误:不支持的文件格式,目前支持:【${props.allowedExtensions}】`)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const isMax = selectedFile.size > props.maxSize;
 | 
				
			||||||
 | 
					  if (isMax) {
 | 
				
			||||||
 | 
					    return message.error(`文件大小超出限制,最大支持:【${convertFileSizeToStr(props.maxSize)}】`);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cancelToken?.cancel();
 | 
				
			||||||
 | 
					  percent.value = 0;
 | 
				
			||||||
 | 
					  uploading.value = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const objectName = generateSimpleObjectName(selectedFile.name, props.parentDir)
 | 
				
			||||||
 | 
					  const uploadUrl = await getResignedObjectUrl(__APP_ENV.VITE_APP_MINIO_BUCKET, objectName);
 | 
				
			||||||
 | 
					  cancelToken = axios.CancelToken.source()
 | 
				
			||||||
 | 
					  await axios.put(uploadUrl, selectedFile, {
 | 
				
			||||||
 | 
					    cancelToken: cancelToken.token,
 | 
				
			||||||
 | 
					    onUploadProgress: (progressEvent) => {
 | 
				
			||||||
 | 
					      percent.value = (progressEvent.loaded / (progressEvent.total as number) * 100 | 0)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  modelValue.value = '/' + __APP_ENV.VITE_APP_MINIO_BUCKET + objectName;
 | 
				
			||||||
 | 
					  uploading.value = false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					onMounted(() => {
 | 
				
			||||||
 | 
					  document.getElementById('myFileInput')?.addEventListener('change', inputFileListener);
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					onUnmounted(() => {
 | 
				
			||||||
 | 
					  document.getElementById('myFileInput')?.removeEventListener('change', inputFileListener);
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					.simpleUploadDiv {
 | 
				
			||||||
 | 
					  width: v-bind(width);
 | 
				
			||||||
 | 
					  height: v-bind(height);
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  flex-direction: column;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
| 
						 | 
					@ -1,2 +1,2 @@
 | 
				
			||||||
export const CLIENT_TYPE = "MANAGEMENT_SUPER";
 | 
					export const CLIENT_TYPE = "MANAGEMENT_SUPER";
 | 
				
			||||||
export const ROUTER_WHITE_LIST: string[] = ['/login', '/test'];
 | 
					export const ROUTER_WHITE_LIST: string[] = ['/login', '/test','/enterprise'];
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,3 +8,56 @@ interface JsonResult<T> {
 | 
				
			||||||
    message: string;
 | 
					    message: string;
 | 
				
			||||||
    data?: T;
 | 
					    data?: T;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 选择
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class SelectNodeVo<T, E = Record<string, any>> {
 | 
				
			||||||
 | 
					    value: T;
 | 
				
			||||||
 | 
					    label: string;
 | 
				
			||||||
 | 
					    options?: SelectNodeVo<T>[]
 | 
				
			||||||
 | 
					    orderIndex?: number;
 | 
				
			||||||
 | 
					    disabled?: boolean;
 | 
				
			||||||
 | 
					    extData?: E
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 树
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class TreeNodeVo<T, E = Record<string, any>> {
 | 
				
			||||||
 | 
					    value: T;
 | 
				
			||||||
 | 
					    parentValue: T;
 | 
				
			||||||
 | 
					    label: string;
 | 
				
			||||||
 | 
					    orderIndex?: number;
 | 
				
			||||||
 | 
					    children?: TreeNodeVo<T>[]
 | 
				
			||||||
 | 
					    extData?: E;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 栅格布局
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					declare interface Grid {
 | 
				
			||||||
 | 
					    //栅格占据的列数
 | 
				
			||||||
 | 
					    span?: number;
 | 
				
			||||||
 | 
					    //栅格左侧的间隔格数
 | 
				
			||||||
 | 
					    offset?: number;
 | 
				
			||||||
 | 
					    //栅格向右移动格数
 | 
				
			||||||
 | 
					    push?: number;
 | 
				
			||||||
 | 
					    //栅格向左移动格数
 | 
				
			||||||
 | 
					    pull?: number;
 | 
				
			||||||
 | 
					    //<768px 响应式栅格数或者栅格属性对象
 | 
				
			||||||
 | 
					    xs?: number;
 | 
				
			||||||
 | 
					    //≥768px 响应式栅格数或者栅格属性对象
 | 
				
			||||||
 | 
					    sm?: number;
 | 
				
			||||||
 | 
					    //≥992px 响应式栅格数或者栅格属性对象
 | 
				
			||||||
 | 
					    md?: number;
 | 
				
			||||||
 | 
					    //≥1200px 响应式栅格数或者栅格属性对象
 | 
				
			||||||
 | 
					    lg?: number;
 | 
				
			||||||
 | 
					    //≥1920px 响应式栅格数或者栅格属性对象
 | 
				
			||||||
 | 
					    xl?: number;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface BaseEnum<T> {
 | 
				
			||||||
 | 
					    value: T;
 | 
				
			||||||
 | 
					    label: string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ router.beforeEach(async (to, from, next) => {
 | 
				
			||||||
    if (ROUTER_WHITE_LIST.includes(to.path)) {
 | 
					    if (ROUTER_WHITE_LIST.includes(to.path)) {
 | 
				
			||||||
        return next();
 | 
					        return next();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    //不在白名单内需要查看是否携带token 没有token需要返回登录页进行登录
 | 
					    // 不在白名单内需要查看是否携带token 没有token需要返回登录页进行登录
 | 
				
			||||||
    if (!userStore.getTokenInfo?.value) {
 | 
					    if (!userStore.getTokenInfo?.value) {
 | 
				
			||||||
        await message.warn('未找到token,请重新登陆!')
 | 
					        await message.warn('未找到token,请重新登陆!')
 | 
				
			||||||
        return next('/login');
 | 
					        return next('/login');
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,14 @@
 | 
				
			||||||
import {RouteRecordRaw} from "vue-router";
 | 
					import {RouteRecordRaw} from "vue-router";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const staticRouter: RouteRecordRaw[] = [
 | 
					export const staticRouter: RouteRecordRaw[] = [
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        path: '/enterprise',
 | 
				
			||||||
 | 
					        name: 'enterprise',
 | 
				
			||||||
 | 
					        meta: {
 | 
				
			||||||
 | 
					            title: '企业入驻',
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        component: () => import("@/views/enterprise.vue"),
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        path: '/login',
 | 
					        path: '/login',
 | 
				
			||||||
        name: 'login',
 | 
					        name: 'login',
 | 
				
			||||||
| 
						 | 
					@ -11,6 +19,13 @@ export const staticRouter: RouteRecordRaw[] = [
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
        path: "/",
 | 
					        path: "/",
 | 
				
			||||||
        redirect: '/index',
 | 
					        redirect: '/index',
 | 
				
			||||||
 | 
					    }, {
 | 
				
			||||||
 | 
					        path: '/test',
 | 
				
			||||||
 | 
					        name: 'test',
 | 
				
			||||||
 | 
					        meta: {
 | 
				
			||||||
 | 
					            title: '测试',
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        component: () => import("@/views/test.vue"),
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
        path: '/layout',
 | 
					        path: '/layout',
 | 
				
			||||||
        name: 'layout',
 | 
					        name: 'layout',
 | 
				
			||||||
| 
						 | 
					@ -29,5 +44,5 @@ export const staticRouter: RouteRecordRaw[] = [
 | 
				
			||||||
                component: () => import('@/views/index.vue')
 | 
					                component: () => import('@/views/index.vue')
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    }
 | 
					    },
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					import {ceil, divide} from "lodash-es";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 将文件大小转为字符串格式
 | 
				
			||||||
 | 
					 * @param fileSizeInBytes
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const convertFileSizeToStr = (fileSizeInBytes: number): string => {
 | 
				
			||||||
 | 
					    if (fileSizeInBytes < 1024) {
 | 
				
			||||||
 | 
					        return fileSizeInBytes + "B";
 | 
				
			||||||
 | 
					    } else if (fileSizeInBytes < 1024 * 1024) {
 | 
				
			||||||
 | 
					        return (ceil(divide(fileSizeInBytes, 1024), 2)) + "KB";
 | 
				
			||||||
 | 
					    } else if (fileSizeInBytes < 1024 * 1024 * 1024) {
 | 
				
			||||||
 | 
					        return (ceil(divide(fileSizeInBytes, (1024 * 1024)), 2)) + "MB";
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        return (ceil(divide(fileSizeInBytes, (1024 * 1024 * 1024)), 2)) + "GB";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,26 @@
 | 
				
			||||||
 | 
					import api from "@/axios";
 | 
				
			||||||
 | 
					import dayjs from "dayjs";
 | 
				
			||||||
 | 
					import {uuid} from "vue-uuid";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 生成一个简单的对象文件地址
 | 
				
			||||||
 | 
					 * @param fileName 原始文件名
 | 
				
			||||||
 | 
					 * @param parentDir 上级目录
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const generateSimpleObjectName = (fileName: string, parentDir?: String): string => {
 | 
				
			||||||
 | 
					    let objectName = parentDir + dayjs().format('/YYYY/MM/DD/') + uuid.v4().replace(/-/g, '');
 | 
				
			||||||
 | 
					    if (fileName && fileName.length > 0) {
 | 
				
			||||||
 | 
					        objectName += fileName.substring(fileName.lastIndexOf('.'))
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return objectName;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 获取生成预签名的 URL
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const getResignedObjectUrl = async (bucketName: string, objectName: string): Promise<string> => {
 | 
				
			||||||
 | 
					    return (await api.get<string>('/common/getResignedObjectUrl', {
 | 
				
			||||||
 | 
					        bucketName,
 | 
				
			||||||
 | 
					        objectName
 | 
				
			||||||
 | 
					    })).data as string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,182 @@
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <div class="enterprise">
 | 
				
			||||||
 | 
					      <div class="enterpriseIndex">
 | 
				
			||||||
 | 
					        <div class="enterpriseItem">
 | 
				
			||||||
 | 
					          <a-tabs v-model:activeKey="activeKey" :tabBarGutter="300" centered >
 | 
				
			||||||
 | 
					            <a-tab-pane key="1" tab="企业入驻">
 | 
				
			||||||
 | 
					              <a-form
 | 
				
			||||||
 | 
					                  ref="formDateRef"
 | 
				
			||||||
 | 
					                  :rules="rules"
 | 
				
			||||||
 | 
					                  :label-col="labelCol"
 | 
				
			||||||
 | 
					                  :wrapper-col="wrapperCol"
 | 
				
			||||||
 | 
					                  layout="horizontal"
 | 
				
			||||||
 | 
					                  :model="formDate"
 | 
				
			||||||
 | 
					                  @finish="onFinish"
 | 
				
			||||||
 | 
					              >
 | 
				
			||||||
 | 
					                <a-form-item label="名称" name="name">
 | 
				
			||||||
 | 
					                  <a-input v-model:value="formDate.name" />
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					                <a-form-item label="统一社会编码" name="socialCode">
 | 
				
			||||||
 | 
					                  <a-input v-model:value="formDate.socialCode"/>
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					                <a-form-item label="公司性质" name="nature">
 | 
				
			||||||
 | 
					                  <a-input v-model:value="formDate.nature"/>
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					                <a-form-item label="行政区划" >
 | 
				
			||||||
 | 
					                  <a-cascader v-model:value="formDate.administrativeDivisionCodes" :show-search="{ filter }" :options="administrativeDivisionTree" @change="searchAdministrativeDivisionTree" />
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					                <a-form-item label="营业执照" name="businessLicense">
 | 
				
			||||||
 | 
					                  <SingleImageFileUpload v-model:value="formDate.businessLicense"></SingleImageFileUpload>
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					                <a-form-item label="法人名字">
 | 
				
			||||||
 | 
					                  <a-input v-model:value="formDate.legalPersonInfo" />
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					                <a-form-item label="法人手机号码">
 | 
				
			||||||
 | 
					                  <a-input v-model:value="formDate.telephone" />
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					                <a-form-item label="详细地址" >
 | 
				
			||||||
 | 
					                  <a-input v-model:value="formDate.address" />
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <a-form-item :wrapper-col="{ offset: 8, span: 16 }">
 | 
				
			||||||
 | 
					                  <a-button type="primary" html-type="submit" style="width: 100px">确认</a-button>
 | 
				
			||||||
 | 
					                </a-form-item>
 | 
				
			||||||
 | 
					              </a-form>
 | 
				
			||||||
 | 
					            </a-tab-pane>
 | 
				
			||||||
 | 
					            <a-tab-pane key="2" tab="查询企业状态" >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            </a-tab-pane>
 | 
				
			||||||
 | 
					          </a-tabs>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import {ref, onMounted} from 'vue';
 | 
				
			||||||
 | 
					import type { Rule } from 'ant-design-vue/es/form';
 | 
				
			||||||
 | 
					import type { ShowSearchType } from 'ant-design-vue/es/cascader';
 | 
				
			||||||
 | 
					import api from "@/axios";
 | 
				
			||||||
 | 
					import { message } from 'ant-design-vue';
 | 
				
			||||||
 | 
					import SingleImageFileUpload from "@/components/upload/SingleImageFileUpload.vue";
 | 
				
			||||||
 | 
					const activeKey = ref('1');
 | 
				
			||||||
 | 
					const labelCol = { style: { width: '120px' } };
 | 
				
			||||||
 | 
					const wrapperCol = { span: 14 };
 | 
				
			||||||
 | 
					const administrativeDivisionTree = ref<TreeNodeVo<string>[]>([])
 | 
				
			||||||
 | 
					const formDateRef = ref();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface formDatePort {
 | 
				
			||||||
 | 
					  name:string,
 | 
				
			||||||
 | 
					  socialCode:string,
 | 
				
			||||||
 | 
					  businessLicense:string,
 | 
				
			||||||
 | 
					  legalPersonInfo:string,
 | 
				
			||||||
 | 
					  telephone:string,
 | 
				
			||||||
 | 
					  administrativeDivisionCodes:Record<string, any>,
 | 
				
			||||||
 | 
					  address:string,
 | 
				
			||||||
 | 
					  nature:string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const formDate = ref<formDatePort>({
 | 
				
			||||||
 | 
					  name:'',
 | 
				
			||||||
 | 
					  socialCode:'',
 | 
				
			||||||
 | 
					  businessLicense:'',
 | 
				
			||||||
 | 
					  legalPersonInfo:'',
 | 
				
			||||||
 | 
					  telephone:'',
 | 
				
			||||||
 | 
					  administrativeDivisionCodes:[''],
 | 
				
			||||||
 | 
					  address:'',
 | 
				
			||||||
 | 
					  nature:''
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const rules: Record<string, Rule[]> = {
 | 
				
			||||||
 | 
					  name: [
 | 
				
			||||||
 | 
					    { required: true, message: '请输入姓名', trigger: 'change' },
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  socialCode:[
 | 
				
			||||||
 | 
					    { required: true, message: '请输入社会编码', trigger: 'change' },
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  nature:[
 | 
				
			||||||
 | 
					    { required: true, message: '请填写公司性质', trigger: 'change' },
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  businessLicense:[
 | 
				
			||||||
 | 
					    { required: true, message: '请上传营业执照', trigger: 'change' },
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  administrativeDivisionCodes:[
 | 
				
			||||||
 | 
					    { required: true, message: '请选择行政区划', trigger: 'change' },
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 调用行政区划 1
 | 
				
			||||||
 | 
					const DivisionTree = async ()=>{
 | 
				
			||||||
 | 
					  const resp =  await api.get<TreeNodeVo<string>[]>('/common/administrativeDivisionTree')
 | 
				
			||||||
 | 
					  administrativeDivisionTree.value = resp.data as TreeNodeVo<string>[]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 可以进行搜索行政区划  2
 | 
				
			||||||
 | 
					const filter: ShowSearchType['filter'] = (inputValue, path) => {
 | 
				
			||||||
 | 
					  return path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 搜索完成时回调
 | 
				
			||||||
 | 
					const  searchAdministrativeDivisionTree = (e:Array<string>)=>{
 | 
				
			||||||
 | 
					  formDate.value.administrativeDivisionCodes = e
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 注册企业入驻
 | 
				
			||||||
 | 
					const onFinish = async ()=>{
 | 
				
			||||||
 | 
					  //校验表单
 | 
				
			||||||
 | 
					  await formDateRef.value.validate()
 | 
				
			||||||
 | 
					  const legalPersonInfo = {
 | 
				
			||||||
 | 
					    name:formDate.value.legalPersonInfo,
 | 
				
			||||||
 | 
					    telephone:formDate.value.telephone
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const securityUnitRegisterParams = {
 | 
				
			||||||
 | 
					    name:formDate.value.name,
 | 
				
			||||||
 | 
					    socialCode:formDate.value.socialCode,
 | 
				
			||||||
 | 
					    businessLicense:formDate.value.businessLicense,
 | 
				
			||||||
 | 
					    legalPersonInfo:legalPersonInfo,
 | 
				
			||||||
 | 
					    nature:formDate.value.nature,
 | 
				
			||||||
 | 
					    administrativeDivisionCodes:formDate.value.administrativeDivisionCodes,
 | 
				
			||||||
 | 
					    address:formDate.value.address
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const resp = await  api.post('/common/securityUnitRegister',securityUnitRegisterParams)
 | 
				
			||||||
 | 
					  console.log(resp)
 | 
				
			||||||
 | 
					  await message.loading('正在注册中...')
 | 
				
			||||||
 | 
					  message.success('企业入驻成功')
 | 
				
			||||||
 | 
					  await formDateRef.value.resetFields()  //成功之后进行移除表单
 | 
				
			||||||
 | 
					  formDate.value = {
 | 
				
			||||||
 | 
					    name:'',
 | 
				
			||||||
 | 
					    socialCode:'',
 | 
				
			||||||
 | 
					    businessLicense:'',
 | 
				
			||||||
 | 
					    legalPersonInfo:'',
 | 
				
			||||||
 | 
					    telephone:'',
 | 
				
			||||||
 | 
					    administrativeDivisionCodes:[''],
 | 
				
			||||||
 | 
					    address:'',
 | 
				
			||||||
 | 
					    nature:''
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					onMounted( async ()=>{
 | 
				
			||||||
 | 
					  await  DivisionTree()
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					.enterprise{
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  justify-content: center; /* 水平居中 */
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  text-align: center;
 | 
				
			||||||
 | 
					  height: 100vh;
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  .enterpriseIndex{
 | 
				
			||||||
 | 
					     border: 1px solid #cccccc;
 | 
				
			||||||
 | 
					     height: 90vh;
 | 
				
			||||||
 | 
					     width: 800px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <div>
 | 
				
			||||||
 | 
					       <SingleImageFileUpload v-model:value="url"></SingleImageFileUpload>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import SingleImageFileUpload from "@/components/upload/SingleImageFileUpload.vue";
 | 
				
			||||||
 | 
					import {ref} from "vue";
 | 
				
			||||||
 | 
					const url = ref<string>('')
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
| 
						 | 
					@ -11,6 +11,10 @@ interface ImportMetaEnv {
 | 
				
			||||||
    readonly VITE_APP_BASE_API: string;
 | 
					    readonly VITE_APP_BASE_API: string;
 | 
				
			||||||
    readonly VITE_APP_PROXY_URL: string;
 | 
					    readonly VITE_APP_PROXY_URL: string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // minio
 | 
				
			||||||
 | 
					    readonly VITE_APP_MINIO_URL: string
 | 
				
			||||||
 | 
					    readonly VITE_APP_MINIO_BUCKET: string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // RSA公钥
 | 
					    // RSA公钥
 | 
				
			||||||
    readonly VITE_APP_RSA_PUBLIC_KEY: string;
 | 
					    readonly VITE_APP_RSA_PUBLIC_KEY: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,7 @@
 | 
				
			||||||
    "jsx": "preserve",
 | 
					    "jsx": "preserve",
 | 
				
			||||||
    "jsxImportSource": "vue",
 | 
					    "jsxImportSource": "vue",
 | 
				
			||||||
    /* Linting */
 | 
					    /* Linting */
 | 
				
			||||||
    "strict": true,
 | 
					    "strict": false,
 | 
				
			||||||
    "noUnusedLocals": true,
 | 
					    "noUnusedLocals": true,
 | 
				
			||||||
    "noUnusedParameters": true,
 | 
					    "noUnusedParameters": true,
 | 
				
			||||||
    "noFallthroughCasesInSwitch": true,
 | 
					    "noFallthroughCasesInSwitch": true,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@
 | 
				
			||||||
    "moduleDetection": "force",
 | 
					    "moduleDetection": "force",
 | 
				
			||||||
    "noEmit": true,
 | 
					    "noEmit": true,
 | 
				
			||||||
    /* Linting */
 | 
					    /* Linting */
 | 
				
			||||||
    "strict": true,
 | 
					    "strict": false,
 | 
				
			||||||
    "noUnusedLocals": true,
 | 
					    "noUnusedLocals": true,
 | 
				
			||||||
    "noUnusedParameters": true,
 | 
					    "noUnusedParameters": true,
 | 
				
			||||||
    "noFallthroughCasesInSwitch": true
 | 
					    "noFallthroughCasesInSwitch": true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@
 | 
				
			||||||
  </TableProMax>
 | 
					  </TableProMax>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="tsx">
 | 
				
			||||||
import TableProMax from "@/components/table/TableProMax.vue";
 | 
					import TableProMax from "@/components/table/TableProMax.vue";
 | 
				
			||||||
import {ref} from "vue";
 | 
					import {ref} from "vue";
 | 
				
			||||||
import {ComponentExposed} from "vue-component-type-helpers";
 | 
					import {ComponentExposed} from "vue-component-type-helpers";
 | 
				
			||||||
| 
						 | 
					@ -17,6 +17,7 @@ import {TableProMaxProps} from "@/types/components/table";
 | 
				
			||||||
import {PoliceUnitPagerQueryParams, PoliceUnitPagerVo} from "@/types/views/unitManage/policeUnit.ts";
 | 
					import {PoliceUnitPagerQueryParams, PoliceUnitPagerVo} from "@/types/views/unitManage/policeUnit.ts";
 | 
				
			||||||
import api from "@/axios";
 | 
					import api from "@/axios";
 | 
				
			||||||
import {enumSelectNodes} from "@/config/dict.ts";
 | 
					import {enumSelectNodes} from "@/config/dict.ts";
 | 
				
			||||||
 | 
					import {message} from "ant-design-vue";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type TableProps = TableProMaxProps<PoliceUnitPagerVo, PoliceUnitPagerQueryParams>
 | 
					type TableProps = TableProMaxProps<PoliceUnitPagerVo, PoliceUnitPagerQueryParams>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,21 +31,48 @@ const columns: TableProps['columns'] = [
 | 
				
			||||||
    dataIndex: 'code',
 | 
					    dataIndex: 'code',
 | 
				
			||||||
    title: '代码'
 | 
					    title: '代码'
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'legalPersonInfo',
 | 
					    dataIndex: 'contactPersonInfo',
 | 
				
			||||||
    title: '联系人'
 | 
					    title: '联系人',
 | 
				
			||||||
 | 
					    customRender({record}) {
 | 
				
			||||||
 | 
					      return record.contactPersonInfo?.name + "/" + record.contactPersonInfo?.telephone
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'provinceName',
 | 
					    dataIndex: 'provinceName',
 | 
				
			||||||
    title: '行政区划',
 | 
					    title: '行政区划',
 | 
				
			||||||
    customRender: ({record}) => [record.provinceName, record.cityName, record.districtsName, record.streetName].filter(Boolean).join('/')
 | 
					    customRender: ({record}) => [record.provinceName, record.cityName, record.districtsName, record.streetName].filter(Boolean).join('/')
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'isEnable',
 | 
					    dataIndex: 'isEnable',
 | 
				
			||||||
    title: '是否启用'
 | 
					    title: '是否启用',
 | 
				
			||||||
 | 
					    customRender: ({text}) => <a-tag color={text?.extData?.color}>{text?.label}</a-tag>,
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'checkStatus',
 | 
					    dataIndex: 'checkStatus',
 | 
				
			||||||
    title: '审核状态'
 | 
					    title: '审核状态',
 | 
				
			||||||
 | 
					    customRender: ({text}) => <a-tag color={text?.extData?.color}>{text?.label}</a-tag>,
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'createTime',
 | 
					    dataIndex: 'createTime',
 | 
				
			||||||
    title: '创建时间'
 | 
					    title: '创建时间'
 | 
				
			||||||
 | 
					  }, {
 | 
				
			||||||
 | 
					    dataIndex: 'opt',
 | 
				
			||||||
 | 
					    title: '操作',
 | 
				
			||||||
 | 
					    customRender({record}) {
 | 
				
			||||||
 | 
					      return <a-space>
 | 
				
			||||||
 | 
					        {record.checkStatus.value === 1 && <a-popconfirm
 | 
				
			||||||
 | 
					            title="确认审核通过嘛?"
 | 
				
			||||||
 | 
					            onConfirm={async () => {
 | 
				
			||||||
 | 
					              const resp = await api.post('/management/checkPass', {
 | 
				
			||||||
 | 
					                checkDataId: record.snowFlakeId,
 | 
				
			||||||
 | 
					                unitOptType: 'POLICE_UNIT'
 | 
				
			||||||
 | 
					              })
 | 
				
			||||||
 | 
					              message.success(resp.message)
 | 
				
			||||||
 | 
					              await tableRef.value?.requestGetTableData()
 | 
				
			||||||
 | 
					            }}>
 | 
				
			||||||
 | 
					          <a-button type="primary">审核通过
 | 
				
			||||||
 | 
					          </a-button>
 | 
				
			||||||
 | 
					        </a-popconfirm>
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        {record.isEnable.value === 0 ? <a-button danger>禁用</a-button> : <a-button>启用</a-button>}
 | 
				
			||||||
 | 
					      </a-space>
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
const searchFormOptions: TableProps["searchFormOptions"] = {
 | 
					const searchFormOptions: TableProps["searchFormOptions"] = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,12 +4,13 @@
 | 
				
			||||||
      :request-api="reqApi"
 | 
					      :request-api="reqApi"
 | 
				
			||||||
      :columns="columns"
 | 
					      :columns="columns"
 | 
				
			||||||
      :searchFormOptions="searchFormOptions"
 | 
					      :searchFormOptions="searchFormOptions"
 | 
				
			||||||
 | 
					      :scroll="{x}"
 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  </TableProMax>
 | 
					  </TableProMax>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="tsx">
 | 
				
			||||||
import TableProMax from "@/components/table/TableProMax.vue";
 | 
					import TableProMax from "@/components/table/TableProMax.vue";
 | 
				
			||||||
import {TableProMaxProps} from "@/types/components/table";
 | 
					import {TableProMaxProps} from "@/types/components/table";
 | 
				
			||||||
import {SecurityUnitPagerQueryParams, SecurityUnitPagerVo} from "@/types/views/unitManage/securityUnit.ts";
 | 
					import {SecurityUnitPagerQueryParams, SecurityUnitPagerVo} from "@/types/views/unitManage/securityUnit.ts";
 | 
				
			||||||
| 
						 | 
					@ -17,6 +18,7 @@ import api from "@/axios";
 | 
				
			||||||
import {ref} from "vue";
 | 
					import {ref} from "vue";
 | 
				
			||||||
import {ComponentExposed} from "vue-component-type-helpers";
 | 
					import {ComponentExposed} from "vue-component-type-helpers";
 | 
				
			||||||
import {enumSelectNodes} from "@/config/dict.ts";
 | 
					import {enumSelectNodes} from "@/config/dict.ts";
 | 
				
			||||||
 | 
					import {message} from "ant-design-vue";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type TableProps = TableProMaxProps<SecurityUnitPagerVo, SecurityUnitPagerQueryParams>
 | 
					type TableProps = TableProMaxProps<SecurityUnitPagerVo, SecurityUnitPagerQueryParams>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,34 +27,80 @@ const reqApi: TableProps['requestApi'] = (params) => api.post('/securityUnit/pag
 | 
				
			||||||
const columns: TableProps['columns'] = [
 | 
					const columns: TableProps['columns'] = [
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    dataIndex: 'name',
 | 
					    dataIndex: 'name',
 | 
				
			||||||
    title: '名称'
 | 
					    title: '名称',
 | 
				
			||||||
 | 
					    width: 200,
 | 
				
			||||||
 | 
					    ellipsis: true
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'socialCode',
 | 
					    dataIndex: 'socialCode',
 | 
				
			||||||
    title: '社会编码'
 | 
					    title: '社会编码',
 | 
				
			||||||
 | 
					    width: 200,
 | 
				
			||||||
 | 
					    ellipsis: true
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'businessLicense',
 | 
					    dataIndex: 'businessLicense',
 | 
				
			||||||
    title: '印业执照'
 | 
					    title: '营业执照',
 | 
				
			||||||
 | 
					    width: 150,
 | 
				
			||||||
 | 
					    customRender({text}) {
 | 
				
			||||||
 | 
					      return <a-image width={100} height={100} src={__APP_ENV.VITE_APP_MINIO_URL + text}></a-image>
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'legalPersonInfo',
 | 
					    dataIndex: 'legalPersonInfo',
 | 
				
			||||||
    title: '法人信息'
 | 
					    title: '法人信息',
 | 
				
			||||||
 | 
					    width: 200,
 | 
				
			||||||
 | 
					    customRender({record}) {
 | 
				
			||||||
 | 
					      return record.legalPersonInfo?.name + "/" + record.legalPersonInfo?.telephone
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'provinceName',
 | 
					    dataIndex: 'provinceName',
 | 
				
			||||||
    title: '行政区划',
 | 
					    title: '行政区划',
 | 
				
			||||||
    customRender: ({record}) => [record.provinceName, record.cityName, record.districtsName, record.streetName].filter(Boolean).join('/')
 | 
					    customRender: ({record}) => [record.provinceName, record.cityName, record.districtsName, record.streetName].filter(Boolean).join('/'),
 | 
				
			||||||
 | 
					    width: 200,
 | 
				
			||||||
 | 
					    ellipsis: true
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'nature',
 | 
					    dataIndex: 'nature',
 | 
				
			||||||
    title: '性质'
 | 
					    title: '性质',
 | 
				
			||||||
 | 
					    width: 200
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'isEnable',
 | 
					    dataIndex: 'isEnable',
 | 
				
			||||||
    title: '是否启用'
 | 
					    title: '是否启用',
 | 
				
			||||||
 | 
					    customRender: ({text}) => <a-tag color={text?.extData?.color}>{text?.label}</a-tag>,
 | 
				
			||||||
 | 
					    width: 150
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'checkStatus',
 | 
					    dataIndex: 'checkStatus',
 | 
				
			||||||
    title: '审核状态'
 | 
					    title: '审核状态',
 | 
				
			||||||
 | 
					    customRender: ({text}) => <a-tag color={text?.extData?.color}>{text?.label}</a-tag>,
 | 
				
			||||||
 | 
					    width: 150
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    dataIndex: 'createTime',
 | 
					    dataIndex: 'createTime',
 | 
				
			||||||
    title: '创建时间'
 | 
					    title: '创建时间',
 | 
				
			||||||
 | 
					    width: 150,
 | 
				
			||||||
 | 
					    ellipsis: true,
 | 
				
			||||||
 | 
					  }, {
 | 
				
			||||||
 | 
					    dataIndex: 'opt',
 | 
				
			||||||
 | 
					    title: '操作',
 | 
				
			||||||
 | 
					    fixed: "right",
 | 
				
			||||||
 | 
					    customRender({record}) {
 | 
				
			||||||
 | 
					      return <a-space>
 | 
				
			||||||
 | 
					        {record.checkStatus.value === 1 && <a-popconfirm
 | 
				
			||||||
 | 
					            title="确认审核通过嘛?"
 | 
				
			||||||
 | 
					            onConfirm={async () => {
 | 
				
			||||||
 | 
					              const resp = await api.post('/management/checkPass', {
 | 
				
			||||||
 | 
					                checkDataId: record.snowFlakeId,
 | 
				
			||||||
 | 
					                unitOptType: 'SECURITY_UNIT'
 | 
				
			||||||
 | 
					              })
 | 
				
			||||||
 | 
					              message.success(resp.message)
 | 
				
			||||||
 | 
					              await tableRef.value?.requestGetTableData()
 | 
				
			||||||
 | 
					            }}>
 | 
				
			||||||
 | 
					          <a-button type="primary">审核通过
 | 
				
			||||||
 | 
					          </a-button>
 | 
				
			||||||
 | 
					        </a-popconfirm>
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        {record.isEnable.value === 0 ? <a-button danger>禁用</a-button> : <a-button>启用</a-button>}
 | 
				
			||||||
 | 
					      </a-space>
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    width: 200
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					const x: number = columns.reduce((a, b) => a + (b.width as number), 0)
 | 
				
			||||||
const searchFormOptions: TableProps["searchFormOptions"] = {
 | 
					const searchFormOptions: TableProps["searchFormOptions"] = {
 | 
				
			||||||
  name: {
 | 
					  name: {
 | 
				
			||||||
    type: 'input',
 | 
					    type: 'input',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,3 +18,9 @@ interface ImportMetaEnv {
 | 
				
			||||||
    // RSA公钥
 | 
					    // RSA公钥
 | 
				
			||||||
    readonly VITE_APP_RSA_PUBLIC_KEY: string;
 | 
					    readonly VITE_APP_RSA_PUBLIC_KEY: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare module '*.vue' {
 | 
				
			||||||
 | 
					    import {DefineComponent} from "vue"
 | 
				
			||||||
 | 
					    const component: DefineComponent<{}, {}, any>
 | 
				
			||||||
 | 
					    export default component
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue