From 3bc8c584155ce04d1ba04496a4d94d82174df488 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 10 十二月 2024 15:32:38 +0800
Subject: [PATCH] 最新版本541200007

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java                             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                                 |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserOpenidSaveRequest.java         |   14 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                        |   11 ++-
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java                             |    7 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                 |   18 ++++++
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java                                            |    6 ++
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java                                |   10 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java             |    4 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                     |   12 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java |   43 ++++++++++++++
 11 files changed, 123 insertions(+), 7 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index 26136e1..96c2bc7 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -92,6 +92,12 @@
 
     @ApiModelProperty(value = "寰俊openid", example = "1", hidden = true)
     private String openid;
+    @ApiModelProperty(value = "寰俊openid鎺ㄩ�佹捣搴风姸鎬� 0寰呮帹閫� 1宸叉帹閫� 2缁戝畾澶辫触", example = "1", hidden = true)
+    private Integer openidHkStatus;
+    @ApiModelProperty(value = "寰俊openid鎺ㄩ�佹捣搴峰娉� ", example = "1", hidden = true)
+    private String openidHkInfo;
+    @ApiModelProperty(value = "寰俊openid鎺ㄩ�佹捣搴锋椂闂�", example = "1", hidden = true)
+    private Date openidHkDate;
 
     //2024骞�12鏈�6鏃�11:00:30 绫诲瀷 0鍙告満浜哄憳 1鏅�氳瀹�  2鍐呴儴浜哄憳
     @ApiModelProperty(value = "绫诲瀷 0骞冲彴鐢ㄦ埛 1璁垮", example = "0")
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index 7f344ed..d3c77df 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -187,9 +187,16 @@
             //濡傛灉openId涓嶄负绌�,缁戝畾璇ョ敤鎴穙penid
             systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
                     .set(SystemUser::getOpenid,null)
+                    .set(SystemUser::getOpenidHkDate,null)
+                    .set(SystemUser::getOpenidHkInfo,null)
+                    .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
+                    .eq(SystemUser::getOpenid,openid)
                     .eq(SystemUser::getType,user.getType()));
             systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
                     .set(SystemUser::getOpenid,openid)
+                    .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
+                    .set(SystemUser::getOpenidHkDate,null)
+                    .set(SystemUser::getOpenidHkInfo,null)
                     .eq(SystemUser::getId,user.getId()));
         }
     }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index 04f82da..f9da98c 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -23,6 +23,7 @@
 import com.doumee.dao.business.model.Device;
 import com.doumee.service.business.DeviceService;
 import com.doumee.service.business.impl.hksync.*;
+import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -61,6 +62,8 @@
     private HkSyncPrivilegeServiceImpl hkSyncPrivilegeService;
     @Autowired
     private HkSyncPushServiceImpl hkSyncPushService;
+    @Autowired
+    private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserToHKService;
     @Autowired
     private HkSyncNoticeServiceImpl hkSyncNoticeService;
     @Autowired
@@ -111,6 +114,13 @@
         return ApiResponse.success(result);
     }
     @PreventRepeat
+    @ApiOperation("銆愭捣搴枫�戜繚鎸佹捣搴风敤鎴风粦瀹歰penid")
+    @PostMapping("/saveHkUserOpenid")
+    public ApiResponse syncHkUserOpenid( @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        String result     = hkSyncOrgUserToHKService.syncHkUserOpenid(this.getLoginUser(token).getId());
+        return ApiResponse.success(result);
+    }
+    @PreventRepeat
     @ApiOperation("銆愭捣搴枫�戣幏鍙栫粍浠舵巿鏉冪櫥褰曞湴鍧�鎺ュ彛")
     @PostMapping("/getServiceUrl")
     public ApiResponse getServiceUrl(@RequestBody HKGetServiceLoginUrlRequest param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index 8f197ab..a41b594 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -166,7 +166,8 @@
         String[] findAlarmBaseDataStatistic= new String[]{"/api/v1/alarm/findAlarmBaseDataStatistic","娑堥槻鐪嬫澘-4鎶ヨ淇℃伅缁熻"};//娑堥槻鐪嬫澘-4鎶ヨ淇℃伅缁熻
         String[] findHomeAlarmInfoPage= new String[]{"/api/v1/alarm/findHomeAlarmInfoPage","瀹夐槻鐪嬫澘-- 鍒嗛〉鏌ヨ鏈鐞嗘姤璀︿俊鎭�6"};//瀹夐槻鐪嬫澘-- 鍒嗛〉鏌ヨ鏈鐞嗘姤璀︿俊鎭�6
         String[] minitorDataSearchV1= new String[]{"/api/fem/v1/minitor/data/search","鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁"};//鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁
-        String[] minitorDataSearch= new String[]{"/api/fpms/v2/minitor/data/search"};//鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁
+        String[] minitorDataSearch= new String[]{"/api/fpms/v2/minitor/data/search","鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁"};//鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁
+        String[] userOpenidSave= new String[]{"/api/v1/oa/userOpenId/saveV2","淇濆瓨鐢ㄦ埛鍙妎penId缁戝畾淇℃伅寰俊鍏紬鍙�"};//淇濆瓨鐢ㄦ埛鍙妎penId缁戝畾淇℃伅寰俊鍏紬鍙�
     }
     /**
      * 闄勫綍A.55娑堥槻璁惧绫诲瀷
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index dc5e088..88e2aa9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -833,7 +833,7 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.findAlarmBaseDataStatistic,body);
 	}
 	/**
-	 *瀹夐槻鐪嬫澘-- 鍒嗛〉鏌ヨ鏈鐞嗘姤璀︿俊鎭�6
+	 *瀹夐槻鐪嬫澘-- b
 	 * @param body
 	 * @return
 	 */
@@ -841,6 +841,16 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.findHomeAlarmInfoPage,body);
 	}
 	/**
+	 *淇濆瓨鐢ㄦ埛鍙妎penId缁戝畾淇℃伅寰俊鍏紬鍙�
+	 * @param body
+	 * @return
+	 */
+	public static String userOpenidSave(String body) {
+		Map<String,String> header = new HashMap<>();
+		header.put("userId","admin");
+		return startDoPostStringArtemis(HKConstants.InterfacePath.userOpenidSave,null,header,body);
+	}
+	/**
 	 *鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁
 	 * @param body
 	 * @return
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserOpenidSaveRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserOpenidSaveRequest.java
new file mode 100644
index 0000000..fd6d26d
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserOpenidSaveRequest.java
@@ -0,0 +1,14 @@
+package com.doumee.core.haikang.model.param.request;
+
+import com.doumee.core.haikang.model.param.BaseListPageRequest;
+import lombok.Data;
+
+@Data
+public class UserOpenidSaveRequest extends BaseListPageRequest {
+ private String openId	;//String	false	寰俊openId
+ private String userName	;//String	false	骞冲彴鐢ㄦ埛鍚�
+ private String appKey	;//String	false	appKey
+ private String oaId;//	String	false	atwl
+ private String platformName	;//String	false	瀹夋嘲鐗╂祦鍥尯
+ private String operateTime	;//String	false	2024-12-09T15:49:04-07:00
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 1cb80a8..bf42ef0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1569,6 +1569,24 @@
         return  null;
     }
     /**
+     *淇濆瓨鐢ㄦ埛鍙妎penId缁戝畾淇℃伅寰俊鍏紬鍙�
+     * @return
+     */
+    public  static  BaseResponse<Integer>   userOpenidSave(UserOpenidSaveRequest param){
+        log.info("銆愭捣搴蜂繚瀛樼敤鎴峰強openId缁戝畾淇℃伅寰俊鍏紬鍙枫��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.userOpenidSave(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<Integer>>(){};
+            BaseResponse<Integer>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍淇濆瓨鐢ㄦ埛鍙妎penId缁戝畾淇℃伅寰俊鍏紬鍙�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴蜂繚瀛樼敤鎴峰強openId缁戝畾淇℃伅寰俊鍏紬鍙枫��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
      *鍒嗛〉鏌ヨ璁惧鐩戞祴鍘嗗彶鏁版嵁
      * @return
      */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
index dff2631..9bfa3ee 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -100,4 +100,6 @@
     String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response);
 
     String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response);
+
+    String syncHkUserOpenid(Integer id);
 }
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 b0b5852..e2dcb08 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
@@ -153,6 +153,10 @@
             }else{
                 throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃绋嶅悗閲嶈瘯锛�");
             }
+        }catch (BusinessException e){
+            //濡傛灉鍙戠敓寮傚父锛屽垹闄ゅ凡缁忓垱寤虹殑浜哄憳淇℃伅
+            deleteHkUserBiz(new String[]{insert.getHkId()});
+            throw  e;
         }catch (Exception e){
             //濡傛灉鍙戠敓寮傚父锛屽垹闄ゅ凡缁忓垱寤虹殑浜哄憳淇℃伅
             e.printStackTrace();
@@ -243,7 +247,7 @@
      * @return
      */
     private boolean dealHkUserBiz(Member insert) {
-        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                 +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
         UserAddRequest hkAddRequest = HkSyncOrgUserToHKServiceImpl.getUserAddModel(insert,path,Constants.ZERO);
         if(hkAddRequest == null){
@@ -266,7 +270,7 @@
         return false;
     }
     private boolean dealHkUserForUpdateBiz(Member update ) {
-        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                 +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
 
         UserAddRequest hkAddRequest = HkSyncOrgUserToHKServiceImpl.getUserAddModel(update,path,Constants.ONE);
@@ -418,7 +422,6 @@
                         .ne(Member::getId,member.getId())) >0){
                     throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "韬唤璇佸彿銆�"+member.getIdcardNoNew()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
                 }
-
                 member.setSex(Constants.getSexByCardNo( member.getIdcardNoNew()));//鏍规嵁韬唤璇佸彿鑾峰彇鎬у埆
                 member.setIdcardDecode( Constants.getTuominStr(member.getIdcardNoNew()));
                 member.setIdcardNo(encrptNo);
@@ -970,7 +973,7 @@
         wrapper.lambda().ne(Member::getRemark,"浜鸿劯宸插悓姝ユ渶鏂�");
         List<Member> list =memberMapper.selectList(wrapper);
        if(list!=null){
-           String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+           String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
            for(Member m : list){
              String faceId=  HkSyncOrgUserToHKServiceImpl.dealMemberFace(m,path);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index c7307aa..74cb678 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -101,6 +101,10 @@
         return  null;
     }
     @Override
+    public  String syncHkUserOpenid(Integer id){
+        return  null;
+    }
+    @Override
     public String   dealAcsEvent(EventAcsRequest param, HttpServletResponse response){
         return  null;
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
index 4c8ffca..7abbefd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -19,6 +19,8 @@
 import com.doumee.dao.business.dao.CompanyMapper;
 import com.doumee.dao.business.join.MemberJoinMapper;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.ext.ERPSyncService;
 import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
 import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
@@ -26,6 +28,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -62,9 +65,47 @@
     @Autowired
     private ERPSyncService erpSyncService;
     @Autowired
+    private SystemUserMapper systemUserMapper;
+    @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
     private DataSyncConfig dataSyncConfig;
+
+    /**
+     *  缁戝畾娴峰悍鐢ㄦ埛openId
+     *  {
+     * "openId" : "ovmre6R7w-vEQCHg52-UN2mV_abI",
+     * "userName" : "13856591439",
+     * "appKey" : "wx173e6caf5abc718a",
+     * "oaId" : "atwl",
+     * "platformName" : "瀹夋嘲鐗╂祦鍥尯",
+     *
+     * }
+     */
+    @Override
+    public    String syncHkUserOpenid(Integer id){
+        SystemUser user = systemUserMapper.selectById(id);
+        if(user == null ||StringUtils.isBlank(user.getOpenid()) ||Constants.equalsInteger(user.getOpenidHkStatus(),Constants.ONE)){
+            return null;
+        }
+        UserOpenidSaveRequest request = new UserOpenidSaveRequest();
+        request.setUserName(user.getUsername());
+        request.setAppKey(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode());
+        request.setOaId("atwl");
+        request.setOpenId(user.getOpenid());
+        request.setPlatformName("瀹夋嘲鐗╂祦鍥尯");
+        BaseResponse<Integer>  response = HKService.userOpenidSave(request);
+        if(response!=null &&response.getCode().equals(HKConstants.RESPONSE_SUCCEE) && Constants.equalsInteger(response.getData(),Constants.ONE)){
+            user.setOpenidHkStatus(Constants.ONE);
+            user.setOpenidHkInfo("缁戝畾鎴愬姛");
+        }else{
+            user.setOpenidHkStatus(Constants.TWO);
+            user.setOpenidHkInfo(response!=null?StringUtils.defaultString(response.getMsg(),"銆愭湭鐭ュけ璐ュ師鍥犮��"):"缁戝畾澶辫触");
+        }
+        user.setOpenidHkDate(new Date());
+        systemUserMapper.updateById(user);
+        return  "鎴愬姛";
+    }
 
     /**
      * 鍚屾娴峰悍缁勭粐淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
@@ -285,7 +326,7 @@
                 return;
             }
             Date date = new Date();
-            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                     +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
             for(Member c : list){
                 dealMemberInfoBiz(c,date,path) ;

--
Gitblit v1.9.3