From eb275c6d06d3c27fd30bbf4975d27c93d7f56eb2 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 10 十二月 2024 18:29:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/system_service/src/main/java/com/doumee/core/utils/Constants.java | 4 server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java | 21 +++ server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java | 2 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 2 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java | 67 +++++++++- server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java | 2 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java | 47 +++++++ server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java | 2 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java | 4 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/LargeScreenDataVO.java | 2 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java | 32 +++-- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 25 +--- server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java | 22 ++ server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java | 12 + server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 63 +++++++--- server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java | 7 16 files changed, 232 insertions(+), 82 deletions(-) diff --git a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java index 274dc49..26224a8 100644 --- a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java +++ b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java @@ -23,6 +23,7 @@ import org.springframework.web.server.ServerWebExchange; import javax.annotation.Resource; +import java.util.Objects; /** * JWT鑾峰彇浠ょ墝鍜屽埛鏂颁护鐗屾帴鍙� @@ -153,12 +154,13 @@ */ @PostMapping("/logout") @ApiOperation("閫�鍑虹櫥闄�") - public ApiResponse<String> logout(@RequestHeader(Constants.HEADER_USER_TOKEN) String oldToken){ + public ApiResponse<String> logout(@RequestHeader(Constants.HEADER_USER_TOKEN) String oldToken,Integer isH5){ try { - jwtTokenUtil.logout(oldToken); - - - + if(Objects.nonNull(isH5)){ + jwtTokenUtil.logoutForH5(oldToken); + }else{ + jwtTokenUtil.logout(oldToken); + } }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ diff --git a/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java index 8e539a4..fff1fdd 100644 --- a/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java +++ b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java @@ -1,10 +1,13 @@ package com.doumee.config.jwt; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.utils.Constants; import com.doumee.core.utils.HttpsUtil; +import com.doumee.dao.system.SystemUserMapper; +import com.doumee.dao.system.model.SystemUser; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import lombok.extern.slf4j.Slf4j; @@ -36,7 +39,8 @@ private JwtProperties jwtProperties; @Autowired private SystemDictDataBiz systemDictDataBiz ; - + @Autowired + private SystemUserMapper systemUserMapper; /** * 鐢熸垚token浠ょ墝 * @@ -136,14 +140,25 @@ // this.hkLoginOut(url+"?token="+loginUserInfo.getHkMenuToken()); HttpsUtil.get(url+"?token="+loginUserInfo.getHkMenuToken(),true); } - redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token);//鍒犻櫎鑰佺殑token - + //鍒犻櫎鑰佺殑token + redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token); } catch (Exception e) { e.printStackTrace(); } } + public void logoutForH5(String token) { + try { + //鐧诲嚭娴峰悍绯荤粺鏁版嵁 + LoginUserInfo loginUserInfo = this.getUserInfoByToken(token); + //鍒犻櫎鑰佺殑token + redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token); + systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda().set(SystemUser::getOpenid,null).eq(SystemUser::getId,loginUserInfo.getId())); + } catch (Exception e) { + e.printStackTrace(); + } + } public void hkLoginOut(String url){ try { // 鍒涘缓HttpClient瀵硅薄 diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java index 2315384..371bfbd 100644 --- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java +++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java @@ -57,6 +57,8 @@ public static final String SIGN_IN_PLACE_LNT ="SIGN_IN_PLACE_LNT" ; public static final String SIGN_IN_PLACE_DISTANCE ="SIGN_IN_PLACE_DISTANCE" ; public static final String SIGN_IN_QRCODE ="SIGN_IN_QRCODE" ; + public static final String SIGN_IN_ATTENTION ="SIGN_IN_ATTENTION" ; + public static final String SIGN_IN_QRCODE_PREFIX ="SIGN_IN_QRCODE_PREFIX" ; //琚嫓璁夸汉淇℃伅鏍¢獙鏂瑰紡锛�0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙锛� @@ -80,6 +82,8 @@ public static final String PLATFORM_EVENT_IMG = "PLATFORM_EVENT_IMG"; public static final String VISIT_NOTICE = "VISIT_NOTICE"; public static final String TIME_OUT_CONFIG = "TIME_OUT_CONFIG"; + public static final String VISIT_REPORT_TIME_OUT_MOBILE = "VISIT_REPORT_TIME_OUT_MOBILE"; + public static final String VISIT_TIME_OUT_MOBILE = "VISIT_TIME_OUT_MOBILE"; //鍋ュ悍璇侀厤缃� public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD"; diff --git a/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java b/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java index 12ea554..efd49bb 100644 --- a/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java +++ b/server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java @@ -41,7 +41,7 @@ String visitAuditFail = "visitAuditFail"; //璁垮鐢宠-瓒呮椂鏈绂�-閫氱煡锛堢粰鐢宠浜猴級锛� String visitTimeOutSignOut = "visitTimeOutSignOut"; - //璁垮鐢宠-鏈绂绘暟閲�-閫氱煡锛堢粰鎸囧畾鎺ユ敹浜猴級 //TODO 鏃犳敹鐭俊浜哄憳 + //璁垮鐢宠-鏈绂绘暟閲�-閫氱煡锛堢粰鎸囧畾鎺ユ敹浜猴級 String visitTimeOutSignOutNum = "visitTimeOutSignOutNum"; } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java index 438cdd3..c15776e 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java @@ -135,20 +135,32 @@ //楠岃瘉浜鸿劯璇勫垎 //浜鸿劯璇勫垎 FacePictureCheckRequest param = new FacePictureCheckRequest(); - String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode() + - systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode(); param.setFacePicUrl(prefixUrl + fileName); BaseResponse<FacePictureCheckResponse> responseBaseResponse = HKService.facePictureCheck(param); if(responseBaseResponse == null || !StringUtils.equals(responseBaseResponse.getCode(), HKConstants.RESPONSE_SUCCEE)){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("code", 0); + context.put("message", "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("errno",0); + writerJson(response, context); + return; } FacePictureCheckResponse facePictureCheckResponse = responseBaseResponse.getData(); if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("code", 0); + context.put("message", "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("errno",0); + writerJson(response, context); + return; } if(!facePictureCheckResponse.getCheckResult()){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), facePictureCheckResponse.getStatusMessage()); + context.put("code", 0); + context.put("message", facePictureCheckResponse.getStatusMessage()); + context.put("errno",0); + writerJson(response, context); + return; } + } context.put("success", true); context.put("code", 200); diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java index 930da3f..c41616f 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java @@ -122,7 +122,7 @@ @ApiOperation("璁垮璁板綍 - 鍒嗛〉鍒楄〃") @PostMapping("/visitPage") public ApiResponse<PageData<Visits>> visitPage (@RequestBody PageWrap<Visits> pageWrap) { - if(Objects.isNull(pageWrap.getModel().getMemberId())){ + if(Objects.isNull(pageWrap.getModel()) || StringUtils.isBlank(pageWrap.getModel().getOpenid())){ pageWrap.getModel().setMemberId(0); } return ApiResponse.success(visitsService.findPage(pageWrap)); diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java index 6852569..c72da7d 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java @@ -57,14 +57,14 @@ @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class), }) @PostMapping(value = "/upload", headers = "content-type=multipart/form-data") - public void uploadMobile(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception { + public void uploadMobile(String folder, HttpServletRequest request, HttpServletResponse response,Integer isFace) throws Exception { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; upload(multipartRequest, response, folder + "/", systemDictDataBiz.queryByCode(Constants.OSS,Constants.BUCKETNAME).getCode(), systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(), systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode(), systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(), - systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode()); + systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode(),isFace); } @@ -73,7 +73,7 @@ @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class), }) @PostMapping(value = "/uploadPicture", headers = "content-type=multipart/form-data") - public void uploadPicture(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception { + public void uploadPicture(String folder, HttpServletRequest request, HttpServletResponse response,Integer isFace) throws Exception { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Iterator<String> fileNames = multipartRequest.getFileNames(); Map<String, Object> context = new HashMap<>(); @@ -91,7 +91,7 @@ systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(), systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode(), systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(), - systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode()); + systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode(),isFace); } @@ -136,19 +136,33 @@ //楠岃瘉浜鸿劯璇勫垎 //浜鸿劯璇勫垎 FacePictureCheckRequest param = new FacePictureCheckRequest(); - String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode() + - systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode(); param.setFacePicUrl(prefixUrl + fileName); BaseResponse<FacePictureCheckResponse> responseBaseResponse = HKService.facePictureCheck(param); if(responseBaseResponse == null || !StringUtils.equals(responseBaseResponse.getCode(), HKConstants.RESPONSE_SUCCEE)){ - throw new BusinessException(com.doumee.core.constants.ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); +// throw new BusinessException(com.doumee.core.constants.ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("code", 0); + context.put("message", "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("errno",0); + writerJson(response, context); + return; } FacePictureCheckResponse facePictureCheckResponse = responseBaseResponse.getData(); if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){ - throw new BusinessException(com.doumee.core.constants.ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); +// throw new BusinessException(com.doumee.core.constants.ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("code", 0); + context.put("message", "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("errno",0); + writerJson(response, context); + return; } if(!facePictureCheckResponse.getCheckResult()){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), facePictureCheckResponse.getStatusMessage()); +// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), facePictureCheckResponse.getStatusMessage()); + context.put("code", 0); + context.put("message", facePictureCheckResponse.getStatusMessage()); + context.put("errno",0); + writerJson(response, context); + return; } } @@ -213,7 +227,7 @@ public void upload(HttpServletRequest request, HttpServletResponse response, String folder, String bucketName, - String access_id, String access_key, String resourcePath, String endpoint) throws Exception { + String access_id, String access_key, String resourcePath, String endpoint,Integer isFace) throws Exception { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); Map<String, Object> context = new HashMap<>(); @@ -253,7 +267,38 @@ ALiYunUtil obs = new ALiYunUtil(endpoint,access_id, access_key); if (obs.uploadOnlineObject(file.getInputStream(),bucketName, key,null)) { // 绉诲姩鎴愬姛,杩斿洖鏂囦欢鍚� - // sendSuccessMessage(response, resourcePath+key); + if(Constants.equalsInteger(isFace,Constants.ZERO)){ + //楠岃瘉浜鸿劯璇勫垎 + //浜鸿劯璇勫垎 + FacePictureCheckRequest param = new FacePictureCheckRequest(); + String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode(); + param.setFacePicUrl(prefixUrl + key); + BaseResponse<FacePictureCheckResponse> responseBaseResponse = HKService.facePictureCheck(param); + if(responseBaseResponse == null || !StringUtils.equals(responseBaseResponse.getCode(), HKConstants.RESPONSE_SUCCEE)){ + context.put("code", 0); + context.put("message", "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("errno",0); + writerJson(response, context); + return; + } + FacePictureCheckResponse facePictureCheckResponse = responseBaseResponse.getData(); + if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){ + context.put("code", 0); + context.put("message", "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); + context.put("errno",0); + writerJson(response, context); + return; + } + if(!facePictureCheckResponse.getCheckResult()){ + context.put("code", 0); + context.put("message", facePictureCheckResponse.getStatusMessage()); + context.put("errno",0); + writerJson(response, context); + return; + } + } + + context.put("success", true); context.put("code", 200); context.put("errno",0); diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java index 23e60ae..c445890 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java @@ -29,7 +29,7 @@ // 瀹℃壒閫氳繃缁欑敵璇蜂汉锛氱敵璇峰凡瀹℃牳閫氳繃 String visitAuditSuccess = "visitAuditSuccess"; // 瀹℃壒椹冲洖缁欑敵璇蜂汉锛氱敵璇峰凡琚┏鍥� - String visitAuditFail = "visitWaitAudit"; + String visitAuditFail = "visitAuditFail"; // 缁欏鎵逛汉锛氱敵璇峰緟鎮ㄥ鎵� String visitWaitAudit = "visitWaitAudit"; } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java index 7fd38e9..4f6a7b5 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java @@ -84,7 +84,8 @@ public void sendVisitTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, Visits visits, String objCode, String token, List<String> openIds){ try{ if(CollectionUtils.isNotEmpty(openIds)){ - WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit) + WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda() + .in(WxNoticeConfig::getObjType,WxPlatConstants.visit,WxPlatConstants.visitReport) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") @@ -102,14 +103,14 @@ Map<String, Object> thing1 = new HashMap<String,Object>(); thing1.put("value", visits.getName()); Map<String, Object> car_number7 = new HashMap<String,Object>(); - car_number7.put("value",StringUtils.isNotBlank(visits.getCarNos())?visits.getCarNos():"-"); + car_number7.put("value",StringUtils.isNotBlank(visits.getCarNos())?visits.getCarNos():"鏃�"); + dataMap.put("car_number7",car_number7); Map<String, Object> character_string6 = new HashMap<String,Object>(); character_string6.put("value","1"); Map<String, Object> thing4 = new HashMap<String,Object>(); thing4.put("value",visits.getReason()); dataMap.put("const9",const9); dataMap.put("thing1",thing1); - dataMap.put("car_number7",car_number7); dataMap.put("character_string6",character_string6); dataMap.put("thing4",thing4); paramMap.put("data", dataMap); diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java index 1d3b91e..0234167 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java @@ -288,6 +288,10 @@ @TableField(exist = false) private String optRemark; + @ApiModelProperty(value = "system openid" , hidden = true) + @TableField(exist = false) + private String systemOpenid; + @ApiModelProperty(value = "鍩硅寮�濮嬫椂闂�") @TableField(exist = false) private Date trainStartTime; diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/LargeScreenDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/LargeScreenDataVO.java index ab4d25c..d2962a5 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/LargeScreenDataVO.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/LargeScreenDataVO.java @@ -25,5 +25,7 @@ @ApiModelProperty(value = "浜岀淮鐮佸��") private String qrCode; + @ApiModelProperty(value = "娉ㄦ剰浜嬮」") + private String attention; } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java index 3502b26..eea3e40 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java @@ -493,7 +493,13 @@ for (int i = 0; i < approveParamList.size(); i++) { ApproveParam approveParam = approveParamList.get(i); List<Integer> ids = this.getApproveUserIds(approveParam,createMember); - List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().in(Member::getId,ids)); + List<Member> memberList = memberMapper.selectJoinList(Member.class, + new MPJLambdaWrapper<Member>() + .selectAll(Member.class) + .selectAs(SystemUser::getOpenid,Member::getSystemOpenid) + .leftJoin(SystemUser.class,SystemUser::getMemberId,Member::getId) + .in(Member::getId,ids) + ); List<String> memberNameList =memberList.stream().map(m->m.getName()).collect(Collectors.toList()); String memberNames = String.join(",",memberNameList); Integer noticeType = Constants.approveTypeToNoticeType(approveTempl.getType()); @@ -600,11 +606,11 @@ null,Arrays.asList(member.getPhone().split(",")) ); //鍏紬鍙烽�氱煡 - if(StringUtils.isNotBlank(member.getOpenid())){ + if(StringUtils.isNotBlank(member.getSystemOpenid())){ wxPlatNotice.sendVisitTemplateNotice( wxNoticeConfigMapper,visitsMapper.selectById(businessId), WxPlatConstants.visitContent.visitWaitAudit, token, - Arrays.asList(member.getOpenid().split(",")) + Arrays.asList(member.getSystemOpenid().split(",")) ); } }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visitReporting)){ @@ -615,11 +621,11 @@ null,Arrays.asList(member.getPhone().split(",")) ); //鍏紬鍙烽�氱煡 - if(StringUtils.isNotBlank(member.getOpenid())){ + if(StringUtils.isNotBlank(member.getSystemOpenid())){ wxPlatNotice.sendVisitTemplateNotice( wxNoticeConfigMapper,visitsMapper.selectById(businessId), WxPlatConstants.visitReportContent.visitReportWaitAudit, token, - Arrays.asList(member.getOpenid().split(",")) + Arrays.asList(member.getSystemOpenid().split(",")) ); } }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.useCar)){ @@ -630,13 +636,13 @@ null,Arrays.asList(member.getPhone().split(",")) ); //鍏紬鍙烽�氱煡 - if(StringUtils.isNotBlank(member.getOpenid())){ + if(StringUtils.isNotBlank(member.getSystemOpenid())){ wxPlatNotice.sendCarUseBookTemplateNotice( wxNoticeConfigMapper, carUseBookMapper.selectById(businessId), WxPlatConstants.carUseBookContent.carUseBookWaitAudit, token, - Arrays.asList(member.getOpenid().split(",")), + Arrays.asList(member.getSystemOpenid().split(",")), Constants.ONE); } } @@ -1623,8 +1629,8 @@ SmsConstants.visitReportingContent.visitReportingAuditFail, approveDTO.getCheckInfo(),null ); - objCode = Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? WxPlatConstants.visitReportContent.visitReportAuditSuccess:WxPlatConstants.visitReportContent.visitReportAuditFail; - + objCode = Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? + WxPlatConstants.visitReportContent.visitReportAuditSuccess:WxPlatConstants.visitReportContent.visitReportAuditFail; }else{ //璁垮鐢宠 //鍙戦�佺煭淇¢�氱煡 @@ -1634,17 +1640,17 @@ SmsConstants.visitContent.visitAuditFail, approveDTO.getCheckInfo(),null ); - objCode = Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? WxPlatConstants.visitContent.visitAuditSuccess:WxPlatConstants.visitContent.visitAuditFail; + objCode = Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? WxPlatConstants.visitContent.visitAuditSuccess: + WxPlatConstants.visitContent.visitAuditFail; } visitsMapper.updateById(visits); //鍙戦�佸井淇″叕浼楀彿 if(StringUtils.isNotBlank(objCode)){ - Member member = memberMapper.selectById(visits.getCreateMemberId()); - if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){ + if(Objects.nonNull(visits) && StringUtils.isNotBlank(visits.getOpenid())){ wxPlatNotice.sendVisitTemplateNotice( wxNoticeConfigMapper,visits, objCode, systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), - Arrays.asList(member.getOpenid().split(",")) + Arrays.asList(visits.getOpenid().split(",")) ); } } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index e2dcb08..ca35e35 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -1718,10 +1718,10 @@ openId = tokenJson.getString("openid"); } WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO(); - wxAuthorizeVO.setOpenid(openId); if(StringUtils.isBlank(openId)){ return wxAuthorizeVO; } + wxAuthorizeVO.setOpenid(openId); if(source==1){ //鏍规嵁openId 鏌ヨ鐢ㄦ埛淇℃伅 Member member = memberJoinMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>() diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java index c184c0e..d1811f2 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java @@ -119,8 +119,6 @@ private EmayService emayService; @Autowired - private RedisTemplate<String, Object> redisTemplate; - @Autowired private PlatformBroadcastLogMapper platformBroadcastLogMapper; @Autowired private PlatformWarnEventServiceImpl platformWarnEventService; @@ -655,11 +653,11 @@ } public void sceneSignIn(SignInDTO signInDTO){ - if( StringUtils.isNotBlank(signInDTO.getQrCodeKey())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - if(!signInDTO.getQrCodeKey().equals(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode())){ + if(!signInDTO.getQrCodeKey().equals( + systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE_PREFIX).getCode() + systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"浜岀淮鐮佸凡杩囨湡,璇峰埛鏂伴噸璇�"); } } @@ -1435,19 +1433,10 @@ return platformJob; } - public PlatformJob getLastWaitJob(String uuid, LoginUserInfo loginUser){ - String u = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.BIGSCREEN_UUID); - if(!StringUtils.equals(u,uuid)){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝浜岀淮鐮佸凡澶辨晥锛�"); - } - PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda() - .eq(PlatformJob::getDrivierPhone,loginUser.getMobile()) - .eq(PlatformJob::getIsdeleted,Constants.ZERO) - .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WART_SIGN_IN.getKey()) - .orderByDesc(PlatformJob::getCreateDate) - .last(" limit 1 ") ); - return platformJob; - } + + /** + * 瀹屾垚浣滀笟 + */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public PlatformJob finishWork(JobOperateDTO jobOperateDTO){ @@ -2121,8 +2110,6 @@ List<PlatformJob> calledList = platformJobList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())).collect(Collectors.toList()); largeScreenDataVO.setWaitWorkList(calledList); } - String u = UUID.randomUUID().toString(); - redisTemplate.opsForValue().set(Constants.RedisKeys.BIGSCREEN_UUID,u,3, TimeUnit.MINUTES); largeScreenDataVO.setQrCode(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode()); return largeScreenDataVO; diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java index bc2311a..ab15d31 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java @@ -387,6 +387,53 @@ } } + public static void sendVisitReportTimeOutSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , + SmsConfigMapper smsConfigMapper, + String objCode, String msg,List<String> mobiles){ + try{ + SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode, + objCode).last(" limit 1 ")); + //寮�鍚煭淇¢�氱煡 + if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ + String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent(); + //瓒呮椂鐗规畩澶勭悊 + if(smsConfig.getCode().equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum)){ + //浠婃棩杩樻湁{鏈绂绘暟閲弣涓瀹㈡姤澶囪溅杈嗘湭绂诲満锛岃鍓嶅線PC绔煡鐪嬭缁嗕俊鎭�� + content = content.replace("{鏈绂绘暟閲弣",msg); + sendBusinessSms(emayService,smsEmailMapper, + mobiles,SmsConstants.visitReport,content,0); + return; + } + } + }catch (Exception e){ + e.printStackTrace(); + } + } + + + public static void sendVisitTimeOutSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , + SmsConfigMapper smsConfigMapper, + String objCode, String msg,List<String> mobiles){ + try{ + SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode, + objCode).last(" limit 1 ")); + //寮�鍚煭淇¢�氱煡 + if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ + String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent(); + //瓒呮椂鐗规畩澶勭悊 + if(smsConfig.getCode().equals(SmsConstants.visitContent.visitTimeOutSignOutNum)){ + //浠婃棩杩樻湁{鏈绂绘暟閲弣涓瀹㈡姤澶囪溅杈嗘湭绂诲満锛岃鍓嶅線PC绔煡鐪嬭缁嗕俊鎭�� + content = content.replace("{鏈绂绘暟閲弣",msg); + sendBusinessSms(emayService,smsEmailMapper, + mobiles,SmsConstants.visit,content,0); + return; + } + } + }catch (Exception e){ + e.printStackTrace(); + } + } + /** * 闅愭偅闅忔墜鎷� * @param systemDictDataBiz diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java index 15ceb11..23c989b 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java @@ -253,25 +253,25 @@ //鍒濆鍖栬瀹俊鎭� initVisitInfo(visits,date); - if(StringUtils.isNotBlank(visits.getFaceImg())&&(Constants.equalsInteger(visits.getType(),Constants.ZERO)|| Constants.equalsInteger(visits.getType(),Constants.TWO))){ - //浜鸿劯璇勫垎 - FacePictureCheckRequest param = new FacePictureCheckRequest(); - String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode() + - systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); - param.setFacePicUrl(prefixUrl + visits.getFaceImg()); - BaseResponse<FacePictureCheckResponse> response = HKService.facePictureCheck(param); - if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); - } - FacePictureCheckResponse facePictureCheckResponse = response.getData(); - if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); - } - if(!facePictureCheckResponse.getCheckResult()){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), facePictureCheckResponse.getStatusMessage()); - } - } - +// if(StringUtils.isNotBlank(visits.getFaceImg())&&(Constants.equalsInteger(visits.getType(),Constants.ZERO)|| Constants.equalsInteger(visits.getType(),Constants.TWO))){ +// //浜鸿劯璇勫垎 +// FacePictureCheckRequest param = new FacePictureCheckRequest(); +// String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode() + +// systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); +// param.setFacePicUrl(prefixUrl + visits.getFaceImg()); +// BaseResponse<FacePictureCheckResponse> response = HKService.facePictureCheck(param); +// if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ +// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); +// } +// FacePictureCheckResponse facePictureCheckResponse = response.getData(); +// if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){ +// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~"); +// } +// if(!facePictureCheckResponse.getCheckResult()){ +// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), facePictureCheckResponse.getStatusMessage()); +// } +// } + visits.setSendTimeOutNotice(Constants.ZERO); visitsMapper.insert(visits); //鍙戣捣ERP瀹℃壒鐢宠 @@ -1740,6 +1740,8 @@ .eq(Visits::getSendTimeOutNotice,Constants.ZERO) .apply(" now() >= DATE_ADD(ENDTIME,INTERVAL -"+times+" MINUTE) ") ); + Integer visitTimeCount = 0; + Integer visitReportTimeCount = 0; for (Visits visits:visitsList) { if(Constants.equalsInteger(visits.getType(),Constants.TWO)){ SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz, @@ -1747,17 +1749,40 @@ SmsConstants.visitReportingContent.visitReportingTimeOutSignOut, null,Arrays.asList(visits.getPhone().split(",")) ); + visitReportTimeCount = visitReportTimeCount + 1; }else{ SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz, emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(), SmsConstants.visitContent.visitTimeOutSignOut, null,Arrays.asList(visits.getPhone().split(",")) ); + visitTimeCount = visitTimeCount + 1 ; } visits.setSendTimeOutNotice(Constants.ONE); visitsMapper.updateById(visits); } + + if(visitTimeCount > 0 ){ + String mobile = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.VISIT_TIME_OUT_MOBILE).getCode(); + if(StringUtils.isNotBlank(mobile)){ + SmsEmailServiceImpl.sendVisitTimeOutSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper, + SmsConstants.visitContent.visitTimeOutSignOutNum, + visitReportTimeCount.toString(),Arrays.asList(mobile.split(",")) + ); + } + } + if(visitReportTimeCount > 0 ){ + String mobile = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.VISIT_REPORT_TIME_OUT_MOBILE).getCode(); + if(StringUtils.isNotBlank(mobile)){ + SmsEmailServiceImpl.sendVisitReportTimeOutSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper, + SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum, + visitReportTimeCount.toString(),Arrays.asList(mobile.split(",")) + ); + } + } -- Gitblit v1.9.3