Parcourir la source

Merge remote-tracking branch 'origin/branch-nt-1.0.1' into branch-nt-1.0.1

sakuya il y a 3 ans
Parent
commit
1fafdece23

+ 11 - 2
eladmin-system/src/main/java/me/zhengjie/application/admin/controller/AdminOrderController.java

@@ -2,6 +2,7 @@ package me.zhengjie.application.admin.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import me.zhengjie.annotation.rest.AnonymousPostMapping;
@@ -11,13 +12,13 @@ import me.zhengjie.base.AppBaseResponse;
 import me.zhengjie.base.AppResultData;
 import me.zhengjie.base.ResponseDTO;
 import me.zhengjie.base.ResultCode;
-import me.zhengjie.base.util.FileUploadUtil;
-import me.zhengjie.base.util.StatusEnum;
 import me.zhengjie.base.util.TencentServiceUtil;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.Base64;
 import java.util.HashMap;
@@ -224,4 +225,12 @@ public class AdminOrderController {
 	public AppBaseResponse getDocList(@RequestBody NotaryOrderQueryReq req) {
 		return adminOrderService.getDocList(req);
 	}
+
+	@ApiOperation("导出任务数据")
+	@PostMapping(value = "/download")
+	@PreAuthorize("@el.check('timing:list')")
+	public void exportQuartzJob(HttpServletResponse response,@RequestBody NotaryOrderQueryReq criteria) throws IOException {
+		adminOrderService.download(criteria, response);
+	}
+
 }

+ 1 - 23
eladmin-system/src/main/java/me/zhengjie/application/admin/controller/OrderRoomIdController.java

@@ -91,6 +91,7 @@ public class OrderRoomIdController {
 		if (socketObj != null) {
 			String accountId = socketObj.getString("accountId");
 			String businessNo = socketObj.getString("businessNo");
+			//查询所有的绑定关系
 			Set<String> userNames = appRelatePc.getBindNotary(businessNo);
 			for (String userName : userNames) {
 				HashMap<UUID, SocketIOClient> userClient = pcSocketClientCache.getUserClient(userName);
@@ -101,7 +102,6 @@ public class OrderRoomIdController {
 					}
 				}
 			}
-
 			List<JSONObject> bindNotarys = new ArrayList<>();
 			jsonObj = new JSONObject();
 			jsonObj.put("userName", socketObj.getString("accountId"));
@@ -147,37 +147,15 @@ public class OrderRoomIdController {
 		JSONObject jsonObj = JSONObject.parseObject(json);
 		String socketId = jsonObj.getString("socketId");
 		JSONObject socketObj = isPushUserName(socketId);
-
 		if (socketObj == null) {
 			return AppBaseResponse.success();
 		}
-	
 		String businessNo = socketObj.getString("businessNo");
 		log.info("pc端取消公证员绑定人员:{} ",businessNo);
 		appRelatePc.removeNotary(businessNo, socketObj.getString("accountId"));
-//		Set<String> notarys = appRelatePc.getBindNotary(businessNo);
-//		if (CollectionUtils.isEmpty(notarys) || notarys.size() == 1) {
-//			// 直接删除这条数据
-//			appRelatePc.delBusinessNo(businessNo);
-//			// TDOO 发送给app。取消了视频通话
-//			sendAppMsg(businessNo);
-//			return AppBaseResponse.success();
-//		}
-//		notarys.remove(socketObj.getString("accountId"));
-//		// 保存没有取消的时间
-//		appRelatePc.setNoCancelNotary(notarys, businessNo);
 		return AppBaseResponse.success();
 	}
 
-	private void sendAppMsg(String businessNo) {
-		HashMap<UUID, SocketIOClient> appSocketIo = appSocketClientCache.getUserClient(businessNo);
-		if (MapUtils.isNotEmpty(appSocketIo)) {
-			appSocketIo.forEach((uuid, socketIOClient) -> {
-				socketIOClient.sendEvent("cancelEvent", "cancel");
-			});
-		}
-	}
-
 	/**
 	 * 结束视频
 	 *

+ 259 - 230
eladmin-system/src/main/java/me/zhengjie/application/admin/controller/UserController.java

@@ -34,6 +34,8 @@ import me.zhengjie.base.ResultCode;
 import me.zhengjie.base.util.ApplicationContextUtil;
 import me.zhengjie.base.util.BeanCopyUtils;
 import me.zhengjie.base.util.FileUploadUtil;
+import me.zhengjie.base.websocket.AppSocketClientCache;
+import me.zhengjie.base.websocket.PcSocketClientCache;
 import me.zhengjie.config.RsaProperties;
 import me.zhengjie.dao.mybatis.entity.Dept;
 import me.zhengjie.dao.mybatis.entity.FileInfoEntity;
@@ -43,8 +45,11 @@ import me.zhengjie.dao.mybatis.mapper.BankMapper;
 import me.zhengjie.dao.mybatis.mapper.FileInfoMapper;
 import me.zhengjie.dao.mybatis.mapper.NotaryOfficeMapper;
 import me.zhengjie.exception.BadRequestException;
+import me.zhengjie.security.service.dto.OnlineUserDto;
 import me.zhengjie.utils.RsaUtils;
 import me.zhengjie.utils.enums.CodeEnum;
+
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -59,12 +64,16 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import com.corundumstudio.socketio.SocketIOClient;
+
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 /**
@@ -77,250 +86,270 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class UserController {
 
-    private final PasswordEncoder passwordEncoder;
-    private final UserService userService;
-    private final DataService dataService;
-    private final DeptService deptService;
-    private final RoleService roleService;
-    private final VerifyService verificationCodeService;
-    private final FileInfoMapper fileInfoMapper;
-    private final ApplicationContextUtil contextUtil;
-    private final BankMapper bankMapper;
-    private final NotaryOfficeMapper notaryOfficeMapper;
+	private final PasswordEncoder passwordEncoder;
+	private final UserService userService;
+	private final DataService dataService;
+	private final DeptService deptService;
+	private final RoleService roleService;
+	private final VerifyService verificationCodeService;
+	private final FileInfoMapper fileInfoMapper;
+	private final ApplicationContextUtil contextUtil;
+	private final BankMapper bankMapper;
+	private final NotaryOfficeMapper notaryOfficeMapper;
+
+	@ApiOperation("获取用户信息")
+	@GetMapping(value = "/info")
+	public ResponseEntity<Object> getUserInfo() {
+		// 这里需要处理图片显示问题
+		JwtUserDto jwtUserDto = contextUtil.getCurrentUser();
+		// 处理图片的显示,重新查询一下当前的用户的值
+		UserDto nocacheUser = userService.findUserNoCacheId(jwtUserDto.getUser().getId());
+		// 重新设置user
+		if (nocacheUser != null) {
+			// 处理客户经理和公证处才执行这里
+			if (StringUtils.isNotBlank(nocacheUser.getOrgId())) {
+				String[] split = nocacheUser.getOrgId().split("_");
+				if ("bank".equals(split[0])) {
+					nocacheUser.setOrgName(bankMapper.selectById(split[1]).getBankName());
+				} else if ("notary".equals(split[0])) {
+					NotaryOfficeEntity notaryOfficeEntity = notaryOfficeMapper.selectById(split[1]);
+					nocacheUser.setOrgName(notaryOfficeEntity.getName());
+					nocacheUser.setAutoGenerate(notaryOfficeEntity.getAutoGenerate());
+				}
+			}
+
+			FileInfoEntity fileInfo = fileInfoMapper.selectById(nocacheUser.getSignImgId());
+			if (fileInfo != null) {
+				nocacheUser.setSignImgUrl(FileUploadUtil.getFileUrl(fileInfo.getPath()));
+			} else {
+				nocacheUser.setSignImgUrl("");
+			}
+			jwtUserDto.setUser(nocacheUser);
+		}
+		return ResponseEntity.ok(jwtUserDto);
+	}
+
+	@ApiOperation("导出用户数据")
+	@GetMapping(value = "/download")
+	@PreAuthorize("@el.check('user:list')")
+	public void exportUser(HttpServletResponse response, UserQueryCriteria criteria) throws IOException {
+		userService.download(userService.queryAll(criteria), response);
+	}
 
-    @ApiOperation("获取用户信息")
-    @GetMapping(value = "/info")
-    public ResponseEntity<Object> getUserInfo() {
-        // 这里需要处理图片显示问题
-        JwtUserDto jwtUserDto = contextUtil.getCurrentUser();
-        // 处理图片的显示,重新查询一下当前的用户的值
-        UserDto nocacheUser = userService.findUserNoCacheId(jwtUserDto.getUser().getId());
-        // 重新设置user
-        if (nocacheUser != null) {
-        	//处理客户经理和公证处才执行这里
-        	if(StringUtils.isNotBlank(nocacheUser.getOrgId())) {
-        		   String[] split = nocacheUser.getOrgId().split("_");
-                   if ("bank".equals(split[0])) {
-                       nocacheUser.setOrgName(bankMapper.selectById(split[1]).getBankName());
-                   }else if ("notary".equals(split[0]))  {
-                       NotaryOfficeEntity notaryOfficeEntity = notaryOfficeMapper.selectById(split[1]);
-                       nocacheUser.setOrgName(notaryOfficeEntity.getName());
-                       nocacheUser.setAutoGenerate(notaryOfficeEntity.getAutoGenerate());
-                   }
-        	}
-         
-            FileInfoEntity fileInfo = fileInfoMapper.selectById(nocacheUser.getSignImgId());
-            if (fileInfo != null) {
-                nocacheUser.setSignImgUrl(FileUploadUtil.getFileUrl(fileInfo.getPath()));
-            } else {
-                nocacheUser.setSignImgUrl("");
-            }
-            jwtUserDto.setUser(nocacheUser);
-        }
-        return ResponseEntity.ok(jwtUserDto);
-    }
+	@ApiOperation("查询用户")
+	@GetMapping
+	@PreAuthorize("@el.check('user:list')")
+	public ResponseEntity<Object> queryUser(UserReq userReq) {
+		if (!ObjectUtils.isEmpty(userReq.getDeptId())) {
+			userReq.getDeptIds().add(userReq.getDeptId());
+			// 先查找是否存在子节点
+			List<Dept> data = deptService.findByPid(userReq.getDeptId());
+			// 然后把子节点的ID都加入到集合中
+			userReq.getDeptIds().addAll(deptService.getDeptChildren(data));
+		}
+		// 数据权限
+		List<Long> dataScopes = dataService.getDeptIds(userService.findByName(contextUtil.getCurrentUsername()));
+		// getDeptIds() 不为空并且数据权限不为空则取交集
+		Map<String, Object> userList = null;
+		if (!CollectionUtils.isEmpty(userReq.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) {
+			// 取交集
+			userReq.getDeptIds().retainAll(dataScopes);
+			if (!CollectionUtil.isEmpty(userReq.getDeptIds())) {
+				userList = userService.queryAll(userReq);
+			}
+		} else {
+			// 否则取并集
+			userReq.getDeptIds().addAll(dataScopes);
+			userList = userService.queryAll(userReq);
+		}
+		return new ResponseEntity<>(userList, HttpStatus.OK);
+	}
 
-    @ApiOperation("导出用户数据")
-    @GetMapping(value = "/download")
-    @PreAuthorize("@el.check('user:list')")
-    public void exportUser(HttpServletResponse response, UserQueryCriteria criteria) throws IOException {
-        userService.download(userService.queryAll(criteria), response);
-    }
+	@Log("重置密码")
+	@ApiOperation("重置密码")
+	@PostMapping("/reset-password")
+	@PreAuthorize("@el.check('user:reset')")
+	public AppBaseResponse resetPassword(@RequestBody User user) {
+		checkLevel(user);
+		// 默认密码 123456
+		userService.updatePass(user.getUsername(), passwordEncoder.encode("123456"));
+		return AppBaseResponse.success();
+	}
 
-    @ApiOperation("查询用户")
-    @GetMapping
-    @PreAuthorize("@el.check('user:list')")
-    public ResponseEntity<Object> queryUser(UserReq userReq){
-        if (!ObjectUtils.isEmpty(userReq.getDeptId())) {
-            userReq.getDeptIds().add(userReq.getDeptId());
-            // 先查找是否存在子节点
-            List<Dept> data = deptService.findByPid(userReq.getDeptId());
-            // 然后把子节点的ID都加入到集合中
-            userReq.getDeptIds().addAll(deptService.getDeptChildren(data));
-        }
-        // 数据权限
-        List<Long> dataScopes = dataService.getDeptIds(userService.findByName(contextUtil.getCurrentUsername()));
-        // getDeptIds() 不为空并且数据权限不为空则取交集
-        Map<String,Object> userList = null;
-        if (!CollectionUtils.isEmpty(userReq.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)){
-            // 取交集
-            userReq.getDeptIds().retainAll(dataScopes);
-            if(!CollectionUtil.isEmpty(userReq.getDeptIds())){
-                userList = userService.queryAll(userReq);
-            }
-        } else {
-            // 否则取并集
-            userReq.getDeptIds().addAll(dataScopes);
-            userList = userService.queryAll(userReq);
-        }
-        return new ResponseEntity<>(userList,HttpStatus.OK);
-    }
+	@Log("新增用户")
+	@ApiOperation("新增用户")
+	@PostMapping
+	@PreAuthorize("@el.check('user:add')")
+	public AppBaseResponse createUser(@Validated @RequestBody UserEditReqVO userEditReqVO) {
+		User userEntity = BeanCopyUtils.convertObj(userEditReqVO, User.class);
+		checkLevel(userEntity);
+		// 默认密码 123456
+		userEntity.setPassword(passwordEncoder.encode("123456"));
+		return userService.create(userEntity);
+	}
 
-    @Log("重置密码")
-    @ApiOperation("重置密码")
-    @PostMapping("/reset-password")
-    @PreAuthorize("@el.check('user:reset')")
-    public AppBaseResponse resetPassword(@RequestBody User user) {
-        checkLevel(user);
-        // 默认密码 123456
-        userService.updatePass(user.getUsername(), passwordEncoder.encode("123456"));
-        return AppBaseResponse.success();
-    }
+	@Log("修改用户")
+	@ApiOperation("修改用户")
+	@PutMapping
+	@PreAuthorize("@el.check('user:edit')")
+	public ResponseEntity<Object> updateUser(@Validated(User.Update.class) @RequestBody UserEditReqVO userEditReqVO)
+			throws Exception {
+		User userEntity = BeanCopyUtils.convertObj(userEditReqVO, User.class);
+		checkLevel(userEntity);
+		userService.update(userEntity);
+		return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+	}
 
-    @Log("新增用户")
-    @ApiOperation("新增用户")
-    @PostMapping
-    @PreAuthorize("@el.check('user:add')")
-    public AppBaseResponse createUser(@Validated @RequestBody UserEditReqVO userEditReqVO) {
-        User userEntity = BeanCopyUtils.convertObj(userEditReqVO, User.class);
-        checkLevel(userEntity);
-        // 默认密码 123456
-        userEntity.setPassword(passwordEncoder.encode("123456"));
-        return userService.create(userEntity);
-    }
+	@Log("修改用户:个人中心")
+	@ApiOperation("修改用户:个人中心")
+	@PutMapping(value = "center")
+	public ResponseEntity<Object> centerUser(@Validated(User.Update.class) @RequestBody User resources) {
+		if (!resources.getId().equals(contextUtil.getCurrentUserId())) {
+			throw new BadRequestException("不能修改他人资料");
+		}
+		userService.updateCenter(resources);
+		return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+	}
 
-    @Log("修改用户")
-    @ApiOperation("修改用户")
-    @PutMapping
-    @PreAuthorize("@el.check('user:edit')")
-    public ResponseEntity<Object> updateUser(@Validated(User.Update.class) @RequestBody UserEditReqVO userEditReqVO) throws Exception {
-        User userEntity = BeanCopyUtils.convertObj(userEditReqVO, User.class);
-        checkLevel(userEntity);
-        userService.update(userEntity);
-        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-    }
+	@Log("删除用户")
+	@ApiOperation("删除用户")
+	@DeleteMapping
+	@PreAuthorize("@el.check('user:del')")
+	public ResponseEntity<Object> deleteUser(@RequestBody Set<Long> ids) {
+		for (Long id : ids) {
+			Integer currentLevel = Collections.min(roleService.findByUsersId(contextUtil.getCurrentUserId()).stream()
+					.map(RoleSmallDto::getLevel).collect(Collectors.toList()));
+			Integer optLevel = Collections.min(
+					roleService.findByUsersId(id).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
+			if (currentLevel > optLevel) {
+				throw new BadRequestException("角色权限不足,不能删除:" + userService.findById(id).getUsername());
+			}
+		}
+		userService.delete(ids);
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
 
-    @Log("修改用户:个人中心")
-    @ApiOperation("修改用户:个人中心")
-    @PutMapping(value = "center")
-    public ResponseEntity<Object> centerUser(@Validated(User.Update.class) @RequestBody User resources){
-        if(!resources.getId().equals(contextUtil.getCurrentUserId())){
-            throw new BadRequestException("不能修改他人资料");
-        }
-        userService.updateCenter(resources);
-        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-    }
+	@ApiOperation("修改密码")
+	@PostMapping(value = "/updatePass")
+	public AppBaseResponse<?> updateUserPass(@RequestBody UserPassVo passVo) throws Exception {
+		String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getOldPass());
+		String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getNewPass());
+		UserDto user = userService.findByName(contextUtil.getCurrentUsername());
+		if (!passwordEncoder.matches(oldPass, user.getPassword())) {
+			throw new BadRequestException("修改失败,旧密码错误");
+		}
+		if (passwordEncoder.matches(newPass, user.getPassword())) {
+			throw new BadRequestException("新密码不能与旧密码相同");
+		}
+		userService.updatePass(user.getUsername(), passwordEncoder.encode(newPass));
+		return AppBaseResponse.success();
+	}
 
-    @Log("删除用户")
-    @ApiOperation("删除用户")
-    @DeleteMapping
-    @PreAuthorize("@el.check('user:del')")
-    public ResponseEntity<Object> deleteUser(@RequestBody Set<Long> ids){
-        for (Long id : ids) {
-            Integer currentLevel =  Collections.min(roleService.findByUsersId(contextUtil.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
-            Integer optLevel =  Collections.min(roleService.findByUsersId(id).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
-            if (currentLevel > optLevel) {
-                throw new BadRequestException("角色权限不足,不能删除:" + userService.findById(id).getUsername());
-            }
-        }
-        userService.delete(ids);
-        return new ResponseEntity<>(HttpStatus.OK);
-    }
+	@ApiOperation("修改头像")
+	@PostMapping(value = "/updateAvatar")
+	public ResponseEntity<Object> updateUserAvatar(@RequestParam MultipartFile avatar) {
+		return new ResponseEntity<>(userService.updateAvatar(avatar), HttpStatus.OK);
+	}
 
-    @ApiOperation("修改密码")
-    @PostMapping(value = "/updatePass")
-    public AppBaseResponse<?> updateUserPass(@RequestBody UserPassVo passVo) throws Exception {
-        String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getOldPass());
-        String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getNewPass());
-        UserDto user = userService.findByName(contextUtil.getCurrentUsername());
-        if(!passwordEncoder.matches(oldPass, user.getPassword())){
-            throw new BadRequestException("修改失败,旧密码错误");
-        }
-        if(passwordEncoder.matches(newPass, user.getPassword())){
-            throw new BadRequestException("新密码不能与旧密码相同");
-        }
-        userService.updatePass(user.getUsername(),passwordEncoder.encode(newPass));
-        return AppBaseResponse.success();
-    }
+	@Log("修改邮箱")
+	@ApiOperation("修改邮箱")
+	@PostMapping(value = "/updateEmail/{code}")
+	public ResponseEntity<Object> updateUserEmail(@PathVariable String code, @RequestBody User user) throws Exception {
+		String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, user.getPassword());
+		UserDto userDto = userService.findByName(contextUtil.getCurrentUsername());
+		if (!passwordEncoder.matches(password, userDto.getPassword())) {
+			throw new BadRequestException("密码错误");
+		}
+		verificationCodeService.validated(CodeEnum.EMAIL_RESET_EMAIL_CODE.getKey() + user.getEmail(), code);
+		userService.updateEmail(userDto.getUsername(), user.getEmail());
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
 
-    @ApiOperation("修改头像")
-    @PostMapping(value = "/updateAvatar")
-    public ResponseEntity<Object> updateUserAvatar(@RequestParam MultipartFile avatar) {
-        return new ResponseEntity<>(userService.updateAvatar(avatar), HttpStatus.OK);
-    }
+	/**
+	 *
+	 * 发送授权验证信息
+	 * 
+	 * @param userId
+	 * @return
+	 */
+	@Log("发送授权验证信息")
+	@ApiOperation("发送授权验证信息")
+	@GetMapping(value = "/sendAuthMessage")
+	public ResponseEntity<Object> sendAuthMessage(@RequestParam String userId) {
+		userService.sendAuthMessage(userId);
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
 
-    @Log("修改邮箱")
-    @ApiOperation("修改邮箱")
-    @PostMapping(value = "/updateEmail/{code}")
-    public ResponseEntity<Object> updateUserEmail(@PathVariable String code,@RequestBody User user) throws Exception {
-        String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,user.getPassword());
-        UserDto userDto = userService.findByName(contextUtil.getCurrentUsername());
-        if(!passwordEncoder.matches(password, userDto.getPassword())){
-            throw new BadRequestException("密码错误");
-        }
-        verificationCodeService.validated(CodeEnum.EMAIL_RESET_EMAIL_CODE.getKey() + user.getEmail(), code);
-        userService.updateEmail(userDto.getUsername(),user.getEmail());
-        return new ResponseEntity<>(HttpStatus.OK);
-    }
+	/**
+	 * 验证授权验证信息
+	 * 
+	 * @param user
+	 * @return
+	 */
+	@Log("验证授权验证信息")
+	@ApiOperation("验证授权验证信息")
+	@PostMapping(value = "/verifyAuthMessage")
+	public AppBaseResponse verifyAuthMessage(@RequestBody User user) {
+		userService.verifyAuthMessage(user);
+		return AppBaseResponse.success();
+	}
 
-    /**
-     *
-     * 发送授权验证信息
-     * @param userId
-     * @return
-     */
-    @Log("发送授权验证信息")
-    @ApiOperation("发送授权验证信息")
-    @GetMapping(value = "/sendAuthMessage")
-    public ResponseEntity<Object> sendAuthMessage(@RequestParam String userId) {
-        userService.sendAuthMessage(userId);
-        return new ResponseEntity<>(HttpStatus.OK);
-    }
+	/**
+	 * 如果当前用户的角色级别低于创建用户的角色级别,则抛出权限不足的错误
+	 * 
+	 * @param resources /
+	 */
+	private void checkLevel(User resources) {
+		Integer currentLevel = Collections.min(roleService.findByUsersId(contextUtil.getCurrentUserId()).stream()
+				.map(RoleSmallDto::getLevel).collect(Collectors.toList()));
+		Integer optLevel = roleService.findByRoles(resources.getRoles());
+		if (currentLevel > optLevel) {
+			throw new BadRequestException("角色权限不足");
+		}
+	}
 
-    /**
-     * 验证授权验证信息
-     * @param user
-     * @return
-     */
-    @Log("验证授权验证信息")
-    @ApiOperation("验证授权验证信息")
-    @PostMapping(value = "/verifyAuthMessage")
-    public AppBaseResponse verifyAuthMessage(@RequestBody User user){
-        userService.verifyAuthMessage(user);
-        return AppBaseResponse.success();
-    }
+	/**
+	 * 上传签名
+	 * 
+	 * @param user
+	 * @return
+	 */
+	@PostMapping(value = "/uploadSeal")
+	public AppBaseResponse uploadSeal(@RequestBody User user) {
+		return userService.uploadSeal(user);
+	}
 
-    /**
-     * 如果当前用户的角色级别低于创建用户的角色级别,则抛出权限不足的错误
-     * @param resources /
-     */
-    private void checkLevel(User resources) {
-        Integer currentLevel =  Collections.min(roleService.findByUsersId(contextUtil.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
-        Integer optLevel = roleService.findByRoles(resources.getRoles());
-        if (currentLevel > optLevel) {
-            throw new BadRequestException("角色权限不足");
-        }
-    }
+	/**
+	 * 获取签名状态
+	 * 
+	 * @return
+	 */
+	@AnonymousPostMapping("/getAuthStatus")
+	public AppBaseResponse getAuthStatus() {
+		return userService.getAuthStatus();
+	}
 
-    /**
-     * 上传签名
-     * @param user
-     * @return
-     */
-    @PostMapping(value = "/uploadSeal")
-    public AppBaseResponse uploadSeal(@RequestBody User user){
-        return userService.uploadSeal(user);
-    }
+	/**
+	 * 
+	 * 校验登录状态
+	 * 
+	 * @return
+	 */
+	
+	@AnonymousPostMapping("/checkAuth")
+	public AppBaseResponse<?> checkAuth() {
+		Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+		if (authentication == null || authentication instanceof AnonymousAuthenticationToken) {
+			return AppBaseResponse.error(ResultCode.PERMISSION_TOKEN_INVALID);
+		}
+		// 还有一个判断,判断当前是否有websocket
+		Object securityContextUser = authentication.getPrincipal();
+		OnlineUserDto userDto = (OnlineUserDto) securityContextUser;
+		HashMap<UUID, SocketIOClient> map = PcSocketClientCache.socketIOClient(userDto.getUsername());
+		if (MapUtils.isEmpty(map)) {
+			return AppBaseResponse.error(ResultCode.PERMISSION_TOKEN_INVALID);
+		}
+		return AppBaseResponse.success();
+	}
 
-    /**
-     * 获取签名状态
-     * @return
-     */
-    @AnonymousPostMapping("/getAuthStatus")
-    public AppBaseResponse getAuthStatus(){
-        return userService.getAuthStatus();
-    }
-    /**
-     * 校验登录状态
-     * @return
-     */
-    @AnonymousPostMapping("/checkAuth")
-    public AppBaseResponse<?> checkAuth(){
-         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        if (authentication == null || authentication instanceof AnonymousAuthenticationToken) {
-         return	AppBaseResponse.error(ResultCode.PERMISSION_TOKEN_INVALID);
-        }
-        return AppBaseResponse.success();
-    }
-    
 }

+ 8 - 3
eladmin-system/src/main/java/me/zhengjie/application/admin/controller/vo/NotaryOrderQueryRsp.java

@@ -1,13 +1,12 @@
 package me.zhengjie.application.admin.controller.vo;
 
-import java.time.LocalDateTime;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
-
 import groovy.transform.ToString;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.time.LocalDateTime;
+
 /**
  * @author SONG
  * @version 0.1.0
@@ -56,6 +55,12 @@ public class NotaryOrderQueryRsp {
 	private String consultNo;
 	// 创建时间
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	private LocalDateTime issuedTime;
+	// 申请时间
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	private LocalDateTime rejectTime;
+	// 创建时间
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private LocalDateTime createTime;
 	// 申请时间
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

+ 18 - 4
eladmin-system/src/main/java/me/zhengjie/application/admin/job/GenerateNotarizationJob.java

@@ -4,13 +4,14 @@ import cfca.trustsign.common.vo.cs.UploadSignInfoVO;
 import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.RequiredArgsConstructor;
-import me.zhengjie.base.config.AppConfigInfo;
 import me.zhengjie.base.util.CFCACertUtil;
 import me.zhengjie.base.util.FileUploadUtil;
-import me.zhengjie.base.util.StatusEnum.StepStatusEnum;
-import me.zhengjie.dao.mybatis.OrderFileRepository;
 import me.zhengjie.dao.mybatis.ContractOrderRepository;
-import me.zhengjie.dao.mybatis.entity.*;
+import me.zhengjie.dao.mybatis.OrderFileRepository;
+import me.zhengjie.dao.mybatis.entity.ContractOrderEntity;
+import me.zhengjie.dao.mybatis.entity.NotaryOfficeEntity;
+import me.zhengjie.dao.mybatis.entity.OrderFileEntity;
+import me.zhengjie.dao.mybatis.entity.SysUserEntity;
 import me.zhengjie.dao.mybatis.mapper.NotaryOfficeMapper;
 import me.zhengjie.dao.mybatis.mapper.OrderFileMapper;
 import me.zhengjie.dao.mybatis.mapper.SysUserMapper;
@@ -105,6 +106,7 @@ public class GenerateNotarizationJob {
         String path = uplaodPath + "notary-signed-" + orderFile.getBusinessNo() + "/";
         String filePath = cfcaCertUtil.download(path, orderFile.getAxqContractNo());
         saveAuthNorizationUrlById(filePath, orderFile.getId());
+        ModifyComplete(orderFile.getBusinessNo());
     }
 
     /**
@@ -136,4 +138,16 @@ public class GenerateNotarizationJob {
         saveOrderFile.setUpdateTime(new Date());
         orderFileMapper.updateById(saveOrderFile);
     }
+
+
+    /**
+     * 更新已签发时间
+     * @param no
+     */
+    private void ModifyComplete(String no){
+        ContractOrderEntity contractOrderEntity = new ContractOrderEntity();
+        contractOrderEntity.setBusinessNo(no);
+        contractOrderEntity.setIssuedTime(new Date());
+        contractOrderRepository.updateWithBizNo(contractOrderEntity);
+    }
 }

+ 11 - 0
eladmin-system/src/main/java/me/zhengjie/application/admin/service/AdminOrderService.java

@@ -7,6 +7,8 @@ import me.zhengjie.dao.mybatis.entity.FileInfoEntity;
 import me.zhengjie.dao.mybatis.entity.GuaranteeEntity;
 import me.zhengjie.dao.mybatis.entity.MortgageEntity;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -64,4 +66,13 @@ public interface AdminOrderService {
 	OrderDetailDto getOrderDetail(String businessNo);
 	
 	public void updateStatus(NotaryOrderQueryReq req);
+
+    void download(NotaryOrderQueryReq queryReq, HttpServletResponse response) throws IOException;
+//
+//    /**
+//     * 查询全部
+//     * @param criteria 条件
+//     * @return /
+//     */
+//    List<QuartzJob> queryAll(List<String>list);
 }

+ 74 - 45
eladmin-system/src/main/java/me/zhengjie/application/admin/service/impl/AdminOrderServiceImpl.java

@@ -1,41 +1,12 @@
 package me.zhengjie.application.admin.service.impl;
 
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import me.zhengjie.base.util.*;
-import me.zhengjie.dao.mybatis.entity.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
-
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-import me.zhengjie.application.admin.controller.vo.AdminBorrowerVO;
-import me.zhengjie.application.admin.controller.vo.AdminGuaranteeVO;
-import me.zhengjie.application.admin.controller.vo.AdminMortgageVO;
-import me.zhengjie.application.admin.controller.vo.AdminOrderVO;
-import me.zhengjie.application.admin.controller.vo.BankCustomerVo;
-import me.zhengjie.application.admin.controller.vo.FileVo;
-import me.zhengjie.application.admin.controller.vo.NotaryOrderInfoQueryRsp;
-import me.zhengjie.application.admin.controller.vo.NotaryOrderQueryReq;
-import me.zhengjie.application.admin.controller.vo.NotaryOrderQueryRsp;
-import me.zhengjie.application.admin.controller.vo.OrderDetailDto;
-import me.zhengjie.application.admin.controller.vo.PartyEntity;
+import me.zhengjie.application.admin.controller.vo.*;
 import me.zhengjie.application.admin.service.AdminOrderService;
+import me.zhengjie.application.admin.service.DictDetailService;
 import me.zhengjie.application.admin.service.OrderCochainService;
 import me.zhengjie.application.admin.service.SmsTemplateService;
 import me.zhengjie.application.bank.service.BankOrderService;
@@ -44,29 +15,29 @@ import me.zhengjie.base.AppBaseResponse;
 import me.zhengjie.base.AppResultData;
 import me.zhengjie.base.ResultCode;
 import me.zhengjie.base.plus.QueryWrapperUtil;
+import me.zhengjie.base.util.*;
 import me.zhengjie.base.util.StatusEnum.NotaryStatusEnum;
 import me.zhengjie.dao.mybatis.ContractOrderRepository;
 import me.zhengjie.dao.mybatis.ModelRepository;
 import me.zhengjie.dao.mybatis.OrderFileRepository;
-import me.zhengjie.dao.mybatis.mapper.BankMapper;
-import me.zhengjie.dao.mybatis.mapper.BorrowerMapper;
-import me.zhengjie.dao.mybatis.mapper.CityMapper;
-import me.zhengjie.dao.mybatis.mapper.ContractOrderMapper;
-import me.zhengjie.dao.mybatis.mapper.FileInfoMapper;
-import me.zhengjie.dao.mybatis.mapper.GuaranteeMapper;
-import me.zhengjie.dao.mybatis.mapper.ModelMapper;
-import me.zhengjie.dao.mybatis.mapper.MortgageMapper;
-import me.zhengjie.dao.mybatis.mapper.NotarizationNoMapper;
-import me.zhengjie.dao.mybatis.mapper.NotaryOfficeMapper;
-import me.zhengjie.dao.mybatis.mapper.OrderFileMapper;
-import me.zhengjie.dao.mybatis.mapper.ProvinceMapper;
-import me.zhengjie.dao.mybatis.mapper.SysUserMapper;
-import me.zhengjie.dao.mybatis.mapper.UserRepository;
+import me.zhengjie.dao.mybatis.entity.*;
+import me.zhengjie.dao.mybatis.mapper.*;
 import me.zhengjie.domain.model.ModelConstant;
 import me.zhengjie.domain.model.ModelSynthesizerDomain;
 import me.zhengjie.domain.order.OrderBizCodeMessage;
 import me.zhengjie.domain.order.OrderConstant;
 import me.zhengjie.domain.user.UserDomain;
+import me.zhengjie.utils.FileUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -131,6 +102,8 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	SmsTemplateService smsTemplateService;
 	@Autowired
     HtmlConvertToPdf htmlConvertToPdf;
+	@Autowired
+	private DictDetailService dictDetailService;
 
 	@Override
 	public AppBaseResponse<List<NotaryOrderQueryRsp>> query(NotaryOrderQueryReq req) {
@@ -349,6 +322,42 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	
 		
 	}
+
+	@Override
+	public void download(NotaryOrderQueryReq queryAll, HttpServletResponse response) throws IOException {
+		List<ContractOrderEntity> queryList = queryList(queryAll);
+		List<Map<String, Object>> list = new ArrayList<>();
+		if (null!=queryList){
+			List<OrderFileEntity> orderFileEntities = queryOrderFile(queryList);
+			Map<String, String> productIdMap = dictDetailService.getValueByName("product_id");
+			Map<String, String> productTypeMap = dictDetailService.getValueByName("product_type");
+			for (int i = 0; i < queryList.size(); i++) {
+				for (int j = orderFileEntities.size() - 1; j >= 0; j--) {
+					if (queryList.get(i).getBusinessNo().equals(orderFileEntities.get(j).getBusinessNo())){
+						Map<String,Object> map = new LinkedHashMap<>();
+						map.put("受理咨询号",queryList.get(i).getConsultNo());
+						map.put("公证书编号",orderFileEntities.get(j).getDocNo());
+						map.put("产品类型",productIdMap.get(queryList.get(i).getProdId()));
+						map.put("合同名称",productTypeMap.get(queryList.get(i).getContractType()));
+						map.put("合同编号",queryList.get(i).getContractNo());
+						map.put("当事人",queryList.get(i).getName());
+						map.put("当事人手机号",queryList.get(i).getPhone());
+						map.put("当事人证件号",queryList.get(i).getIdCard());
+						map.put("合同金额",queryList.get(i).getContractMoney());
+						map.put("公证员",queryList.get(i).getNotaryUserName());
+						map.put("客户经理",queryList.get(i).getCustomerName());
+						map.put("所属银行",queryList.get(i).getBankName());
+						map.put("共同责任人身份证号码",queryList.get(i).getJointIdCard());
+						map.put("共同责任人姓名",queryList.get(i).getJointName());
+						map.put("签发时间",DateFormatUtils.formatDatetime(queryList.get(i).getIssuedTime()));
+						list.add(map);
+					}
+				}
+			}
+			FileUtil.downloadExcel(list, response);
+		}
+	}
+
 	@Override
 	public AppBaseResponse orderReject(NotaryOrderQueryReq req) {
 		AppBaseResponse response = new AppBaseResponse();
@@ -769,4 +778,24 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		return Arrays.asList(intArray);
 	}
 
+	private List<ContractOrderEntity> queryList(NotaryOrderQueryReq req) {
+//		AppBaseResponse<List<NotaryOrderQueryRsp>> response = new AppBaseResponse<>();
+		QueryWrapper<ContractOrderEntity> qw = getQueryWrapper(req);
+//		if (qw == null) {
+//			response.fail(ResultCode.PERMISSION_UNAUTHENTICATED);
+//			return response;
+//		}
+		List<ContractOrderEntity> list = contractOrderMapper.selectList(qw);
+
+		return list;
+	}
+
+	private List<OrderFileEntity>queryOrderFile(List<ContractOrderEntity> req){
+		List<String>mList=new ArrayList<>();
+		for (int i = 0; i < req.size(); i++) {
+			mList.add(req.get(i).getBusinessNo());
+		}
+		List<OrderFileEntity> orderNoteList = orderFileRepository.getOrderNoteList(mList);
+		return orderNoteList;
+	}
 }

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/application/bank/service/impl/BankOrderServiceImpl.java

@@ -1,6 +1,5 @@
 package me.zhengjie.application.bank.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
@@ -209,6 +208,7 @@ public class BankOrderServiceImpl implements BankOrderService {
             order.setReturnReason(message);
         } else if (OrderConstant.ORDER_STATUS_REJECTED.equals(status)) {
             order.setRejectReason(message);
+            order.setRejectTime(new Date());
         }
         contractOrderRepository.updateWithBizNo(order);
     }

+ 27 - 21
eladmin-system/src/main/java/me/zhengjie/base/websocket/SocketEventListenner.java

@@ -8,6 +8,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -21,6 +22,7 @@ import com.corundumstudio.socketio.annotation.OnEvent;
 
 import lombok.extern.slf4j.Slf4j;
 import me.zhengjie.security.service.OnlineUserService;
+
 /**
  * @author litong
  * @date 2019/11/6 15:59
@@ -49,22 +51,13 @@ public class SocketEventListenner {
 		String pcSname = handshakeData.getSingleUrlParam("pcSname");
 		if (StringUtils.isNotBlank(pcSname)) {
 			client.sendEvent("connectSucc", "success");
-			System.out.println("pc建立连接");
+			log.info("pc建立连接");
 		}
 		String appSname = handshakeData.getSingleUrlParam("appSname");
 		if (StringUtils.isNotBlank(appSname)) {
 			client.sendEvent("connectSucc", "success");
-			System.out.println("app建立连接");
+			log.info("app建立连接");
 		}
-//		String pcSname = handshakeData.getSingleUrlParam("pcSname");
-//		if(StringUtils.isNotBlank(pcSname)) {
-//			client.sendEvent("connectSucc", "success");
-//			System.out.println("pc建立连接");
-//		}
-//		sname = client.getHandshakeData().getSingleUrlParam("sname");
-//		String sname = handshakeData.getSingleUrlParam("pcSname");
-//		UUID sessionId = client.getSessionId();
-//		webSocketClientCache.saveClient(sname, sessionId, client);
 
 	}
 
@@ -90,12 +83,11 @@ public class SocketEventListenner {
 			// 解绑公证处和订单关系
 			appPcBindSocket.delBusinessNo(appSname);
 			log.info("关闭连接 appSname: {}", appSname);
-			// TODO 处理绑定关系
+
 		}
 	}
 
 	// 消息接收入口,当接收到消息后,查找发送目标客户端,并且向该客户端发送消息,且给自己发送消息
-
 	@OnEvent("pcRegisterEvent")
 	public void pcRegisterEvent(SocketIOClient client, AckRequest request, Map<String, String> map) throws Exception {
 		// 在新增之前,先判断当前人是否
@@ -104,7 +96,7 @@ public class SocketEventListenner {
 		String pcSname = map.get("pcSname");
 		// 判断当前公证员是否包含
 		Set<String> usernames = onlineUserService.getAllLoginUserName();
-		// 判断这个人必须登录,才能注入
+		// TODO 判断这个人必须登录,才能注入,这里必须是公证员
 		if (StringUtils.isNotBlank(pcSname) && usernames.contains(pcSname)) {
 			// 如果存在先移除,再新增
 			List<String> list = new ArrayList<String>();
@@ -113,12 +105,12 @@ public class SocketEventListenner {
 			UUID sessionId = client.getSessionId();
 			// 移除用户
 			HashMap<UUID, SocketIOClient> socketIOClient = pcSocketClientCache.getUserClient(pcSname);
-			if (socketIOClient != null) {
+			if (MapUtils.isNotEmpty(socketIOClient)) {
 				Collection<SocketIOClient> collection = socketIOClient.values();
-				for (SocketIOClient ioClient : collection) {
-					log.info("发送退出登录:" + pcSname);
-					ioClient.sendEvent("logoutEvent", "close");
-				}
+//				for (SocketIOClient ioClient : collection) {
+//					log.info("发送退出登录:" + pcSname);
+//					ioClient.sendEvent("logoutEvent", "close");
+//				}
 				for (SocketIOClient ioClient : collection) {
 					ioClient.disconnect();
 				}
@@ -126,7 +118,7 @@ public class SocketEventListenner {
 			}
 
 			pcSocketClientCache.saveClient(pcSname, sessionId, client);
-			log.info("将sname注册到websocket里面:" + pcSname);
+			log.info("将pcSname注册到websocket里面:" + pcSname);
 		} else {
 			// 保存,先判断这里是否存在,如果存在发生close
 			HashMap<UUID, SocketIOClient> socketIOClient = pcSocketClientCache.getUserClient(pcSname);
@@ -144,6 +136,20 @@ public class SocketEventListenner {
 	}
 
 	// 消息接收入口,当接收到消息后,查找发送目标客户端,并且向该客户端发送消息,且给自己发送消息
+	@OnEvent("pcPingEvent")
+	public void pingEvent(SocketIOClient client, AckRequest request, Map<String, String> map) throws Exception {
+		String pcSname = map.get("pcSname");
+		if (StringUtils.isNotBlank(pcSname)) {
+			log.info("当前公证员的心跳检测:" + pcSname);
+			HashMap<UUID, SocketIOClient> socketIOClient = pcSocketClientCache.getUserClient(pcSname);
+			if (MapUtils.isEmpty(socketIOClient)) {
+				client.sendEvent("logoutEvent", "close");
+			}
+		}
+
+	}
+
+	// 消息接收入口,当接收到消息后,查找发送目标客户端,并且向该客户端发送消息,且给自己发送消息
 	@OnEvent("appRegisterEvent")
 	public void appRegisterEvent(SocketIOClient client, AckRequest request, Map<String, String> map) throws Exception {
 		HandshakeData shakeData = client.getHandshakeData();
@@ -167,7 +173,7 @@ public class SocketEventListenner {
 			appSocketClientCache.deleteSname(appSname);
 			appSocketClientCache.saveClient(appSname, sessionId, client);
 			// 发送
-			log.info("将sname注册到websocket里面:" + appSname);
+			log.info("将appSname注册到websocket里面:" + appSname);
 		}
 
 	}

+ 6 - 0
eladmin-system/src/main/java/me/zhengjie/dao/mybatis/entity/ContractOrderEntity.java

@@ -183,4 +183,10 @@ public class ContractOrderEntity implements Serializable {
 
     @TableField("contract_term")
     private String contractTerm;
+
+    @TableField(value = "issued_time", fill = FieldFill.UPDATE)
+    private Date issuedTime;
+
+    @TableField(value = "reject_time", fill = FieldFill.UPDATE)
+    private Date rejectTime;
 }

+ 45 - 26
eladmin-system/src/main/resources/config/application-dev.yml

@@ -1,16 +1,16 @@
 #配置数据源
 server:
-  port: 8000
+  port: 9101
 spring:
   mvc:
     static-path-pattern: /image/**
   resources:
-    static-locations: file:/image/,file:/image/
+    static-locations: file:/nt/image/,file:/nt/image/
   datasource:
     druid:
       db-type: com.alibaba.druid.pool.DruidDataSource
       driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-      url: jdbc:log4jdbc:mysql://${DB_HOST:114.55.230.80}:${DB_PORT:3306}/${DB_NAME:eladmin}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&autoReconnect=true&failOverReadOnly=false
+      url: jdbc:log4jdbc:mysql://${DB_HOST:114.55.230.80}:${DB_PORT:3306}/${DB_NAME:nt-test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&autoReconnect=true&failOverReadOnly=false
       username: ${DB_USER:root}
       password: ${DB_PWD:QopraffaQWPRPPR123}
       # 初始连接数
@@ -56,10 +56,10 @@ spring:
             multi-statement-allow: true
   redis:
     #数据库索引
-    database: 0
-    host: 127.0.0.1
+    database: 1
+    host: 114.55.230.80
     port: 6379
- #   password: 123qysd!@#
+    password: 123qysd!@#
     #连接超时时间
     timeout: 5000
 # 登录相关配置
@@ -124,14 +124,14 @@ mybatis-plus:
     auto-mapping-behavior: full
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
   mapper-locations: classpath*:mapper/*Mapper.xml
-#  type-aliases-package: com.tcpp.FqNotarize.entity
+  #  type-aliases-package: com.tcpp.FqNotarize.entity
   global-config:
     # 逻辑删除配置
     db-config:
       # 删除前
       logic-not-delete-value: 1
       # 删除后
-      logic-delete-value: 0    
+      logic-delete-value: 0
 
 # IP 本地解析
 ip:
@@ -154,36 +154,36 @@ file:
 
 app:
   background:
-    picture: https://flowbb.show.xjrkj.com/image/logo/83d9449f4e02459da1661bafdf08b86a_8.png
+    picture: https://fqgz.flowbb.cn/image/logo/83d9449f4e02459da1661bafdf08b86a_8.png
   image:
-    url: https://flowbb.show.xjrkj.com/image/
+    url: https://fqgz.flowbb.cn:9001/image/
   upload:
-    path: /image/
+    path: /nt/image/
   host:
-    domain: https://flowbb.show.xjrkj.com/
+    domain: https://fqgz.flowbb.cn:9100/
   push:
-    port: 8089
+    port: 8082
   minio:
     accesskey: minioadmin
     secretkey: minioadmin
     url: http://124.222.192.60:9000
-    bucketName: mytest    
-    preview: https://flowbb.show.xjrkj.com
+    bucketName: mytest
+    preview: https://fqgz.flowbb.cn:9001
 tencent:
+  account:
+    secretId: AKIDjNyBC1cy75rPjrlSzUlrfIkxwthIi096
+    secretKey: qdGgstjOq6A0b0FFNJ3tX8appfLq7JRR
   client:
     webankAppId: TIDAdW8e
     secret: 34mhXRkury4DCFZpXCQ9E1fr7KUAPTiXTVac6H6e4pvxYMo5jl1m7sehQUqsmwsQ
     keyLicence: ZNjSJAs5nqb0OJR7SXGj8b8Jr8GZuhkIiLceBA1rp/UZ/X8nHbYzfNGkyhXLuTG82QzHIiNxixrzc7zWFcRyxiIIhglIxi0zZDD9nSQsXrHlMJMC3EUXarN9tp5QX0X2dS38gsi+F1TIigfHqxj39iX43wAO4KOfZekBIPNPA2Vb/AjlWnsTbOZCVwANXXwcKsCYiZJrbQlxGlxF9bfXEuhJgILJGQ2iT74wJ/Qn4qRraiyaYzi0Un44C24Y44pbYX4kEokvVQaPnClnAnMH98l8w0VIxPc2lH5io0ATpoPMoZGWKtICVPzrvpaMwjaPlyBzZ/qWwc5jeS+ySxwJyA==
   bank:
-    webankAppId: TIDAa18H
-    secret: vyzhltzExvtpU3O0wiSveww6DVxQ3EvV5RGdM5U8Jpp2BoL059ahJ4U76jMSvouT
-    keyLicence: Jpzb+BHO3aJ3FSjhsnXS43gHs20FSljKz0lthOlVhURvlePnisObmeO5EJjCXgZeZgo9KpJyADz4dcQREVAzuaxRPmhAx4ljpmZeVizNQWuxzLnDAGy8UgFzpAdCBemWrfTTt9f56JFRLdpmmMweyImHa4rDxLbdqqvXuiQLoaIvthbJLu3LO7mNscNkSn8xdhqqgIjX8DfroC99ykff8f7QTcK38iLjGQeI8sY79YY1a++Op5xpvfYZXm2Wdb6hI+rB+ndkWPNpPyP4f2m3/lkEvEMpoKOldQ7ebJQkTigDMvQ1pdBnYTrVVZKQgJ5nDSSVobYcxN2EZxeco9k/7A==
-  #ttlsig:
-  #  sdkappid: 1400696976
-  #  key: 6de92e8e066c2d28c5260f38a3abeb29840c9b2c6444d25f7b5c85de1c58b23b
+    webankAppId: IDAVZfDX
+    secret: i5Rw30IrvEU5Zm9QWYb0hBNtAzGFFCUlohJu6FI0w254eXd039gVADubvzJRp3qy
+    keyLicence: IHdC/s+4yYQ3Ydkc4S3xKrJmboZSipzQcTeK/SvxwnKiXFzi2Mr9QUX1qa+4mR5OWPHq8M28TCgC4+udPb5QuN41b1ql2W0swQLunEYZqZ/Iet8krdQnE2Kxh9TTU1ZbSL4f6gclIq8oIxjYcpG4K5e3CTqgbE9+DNGINy5DvztjLhz1/IGRy2nbKfhvtzDdq2etcGXVolhbGPmstJ5Krllrm52Rmo1yiEp6IYl9IlaXUzEgKYi/a8PdpoXJtdEF0JXPJSUIwvA5BuFJidJabCKGg2HwS+8Pgq1zB+1KEiQWhu8nNJt5eo8qxBjFkt10MwKY7yIMsvxOpiehLWoFhw==
   ttlsig:
-    sdkappid: 1400574616
-    key: 9ef701536792a0bdacf7dbf902301a1f113d200157e9e6be368b3dadba321800
+    sdkappid: 1400718469
+    key: 4b248dead873140792967469696227c5084429aaaa5a567a4a593402dc28d9b6
 
 xxl:
   job:
@@ -191,13 +191,32 @@ xxl:
     admin:
       addresses: http://114.55.230.80:8080/xxl-job-admin
     executor:
-      appname: eladmin-xxl-job-executor
+      appname: nt-test-xxl-job-executor
       address:
       ip:
-      port: 9999
+      port: 9103
       logpath: /users/songxiaodong/applogs/xxl-job/jobhandler
       logretentiondays: 30
 
 logging:
   config: classpath:logback-spring.xml
-  logdir: ./logs/java-app
+  logdir: ./logs/java-app
+
+axq:
+  proxy:
+    usable: 0
+    host: 114.55.230.80
+    port: 3128
+    user: sakuya
+    password: qwe123!@#90[
+  connect:
+    alias: anxinsign
+    connectTimeout: 30000
+    readTimeout: 30000
+    isSSL: true
+  request:
+    platID: D998E5EBBF4C2D95E05312016B0A7677
+    cfcaURL: https://210.74.42.33:9443/FEP/
+    channel: test
+    jksPath: anxinsign-test.jks
+    jksPWD: 123456

+ 1 - 1
eladmin-system/src/main/resources/config/application-nt.yml

@@ -122,7 +122,7 @@ mybatis-plus:
   configuration:
     map-underscore-to-camel-case: true
     auto-mapping-behavior: full
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
   mapper-locations: classpath*:mapper/*Mapper.xml
 #  type-aliases-package: com.tcpp.FqNotarize.entity
   global-config:

+ 1 - 1
eladmin-system/src/main/resources/config/application.yml

@@ -3,7 +3,7 @@ spring:
   freemarker:
     check-template-location: false
   profiles:
-    active: dev
+    active: nt-test
   jackson:
     time-zone: GMT+8
   data: