liupeng vor 4 Jahren
Ursprung
Commit
21f1ce3fd8

+ 15 - 17
code/sapparent/sapservice/src/main/java/org/fouram/core/plugin/weixin/cp/util/WXCpUserUtil.java

@@ -42,19 +42,18 @@ public class WXCpUserUtil {
 		}
 	}
 
-	public static String createOrUpdate(String userId, String name, Long[] firstOrgWxDepartIdList,
-			Long[] secondOrgWxDepartIdList, Long[] thirdOrgWxDepartIdList, Long[] fourthOrgWxDepartIdList,
-			String position, String mobile, String gender, String email, String telephone, String firstOrgName) {
+	public static String createOrUpdate(String userId, String name, Long[] firstWxDepartIdList,
+			Long[] secondWxDepartIdList, Long[] thirdWxDepartIdList, Long[] fourthWxDepartIdList, String position,
+			String mobile, String gender, String email, String telephone, String firstOrgName) {
 		WxCpUser user = getByIdOrEmail(userId, email);
 		try {
 			if (user == null) {
-				user = getUser(userId, name, firstOrgWxDepartIdList, secondOrgWxDepartIdList, thirdOrgWxDepartIdList,
-						fourthOrgWxDepartIdList, position, mobile, gender, email, telephone, firstOrgName);
+				user = getUser(userId, name, firstWxDepartIdList, secondWxDepartIdList, thirdWxDepartIdList,
+						fourthWxDepartIdList, position, mobile, gender, email, telephone, firstOrgName);
 				userService.create(user);
 			} else {
-				user = getUser(user.getUserId(), name, firstOrgWxDepartIdList, secondOrgWxDepartIdList,
-						thirdOrgWxDepartIdList, fourthOrgWxDepartIdList, position, mobile, gender, email, telephone,
-						firstOrgName);
+				user = getUser(user.getUserId(), name, firstWxDepartIdList, secondWxDepartIdList, thirdWxDepartIdList,
+						fourthWxDepartIdList, position, mobile, gender, email, telephone, firstOrgName);
 				userService.update(user);
 			}
 			return SapUserResultEnum.SUCCESS.getCode();
@@ -63,10 +62,9 @@ public class WXCpUserUtil {
 		}
 	}
 
-	private static WxCpUser getUser(String userId, String name, Long[] firstOrgWxDepartIdList,
-			Long[] secondOrgWxDepartIdList, Long[] thirdOrgWxDepartIdList, Long[] fourthOrgWxDepartIdList,
-			String position, String mobile, String gender, String email, String telephone, String firstOrgName)
-			throws WxErrorException {
+	private static WxCpUser getUser(String userId, String name, Long[] firstWxDepartIdList, Long[] secondWxDepartIdList,
+			Long[] thirdWxDepartIdList, Long[] fourthWxDepartIdList, String position, String mobile, String gender,
+			String email, String telephone, String firstOrgName) throws WxErrorException {
 		WxCpUser user = new WxCpUser();
 		if (Tools.notEmpty(userId)) {
 			user.setUserId(userId);
@@ -74,10 +72,10 @@ public class WXCpUserUtil {
 		if (Tools.notEmpty(name)) {
 			user.setName(name);
 		}
-		Long[] departIds = new Long[firstOrgWxDepartIdList.length];
-		for (int i = 0; i < firstOrgWxDepartIdList.length; i++) {
-			departIds[i] = WXCpDepartUtil.create(firstOrgWxDepartIdList[i], secondOrgWxDepartIdList[i],
-					thirdOrgWxDepartIdList[i], fourthOrgWxDepartIdList[i]);
+		Long[] departIds = new Long[firstWxDepartIdList.length];
+		for (int i = 0; i < firstWxDepartIdList.length; i++) {
+			departIds[i] = WXCpDepartUtil.create(firstWxDepartIdList[i], secondWxDepartIdList[i],
+					thirdWxDepartIdList[i], fourthWxDepartIdList[i]);
 		}
 		user.setDepartIds(departIds);
 		if (Tools.notEmpty(position)) {
@@ -173,7 +171,7 @@ public class WXCpUserUtil {
 		for (WxCpDepart depart : departs) {
 			List<WxCpUser> users = WXCpUserUtil.listByDepartment(depart.getId());
 			for (WxCpUser user : users) {
-				if(!set.contains(user.getUserId())) {
+				if (!set.contains(user.getUserId())) {
 					result.add(user);
 					set.add(user.getUserId());
 				}

+ 1 - 1
code/sapparent/sapservice/src/main/java/org/fouram/entity/SapBlacklist.java

@@ -19,7 +19,7 @@ public class SapBlacklist implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	private Long id;
-	private String userId;
+	private String personId;
 	private String reason;
 	private Date createDate;
 }

+ 16 - 17
code/sapparent/sapservice/src/main/java/org/fouram/entity/SapUser.java

@@ -37,11 +37,11 @@ public class SapUser implements Serializable {
 	private String thirdOrgName;
 	private String fourthOrgName;
 
-	// 微信机构
-	private Long firstOrgWxDepartId;
-	private Long secondOrgWxDepartId;
-	private Long thirdOrgWxDepartId;
-	private Long fourthOrgWxDepartId;
+	// 微信机构 非表字段
+	private Long firstWxDepartId;
+	private Long secondWxDepartId;
+	private Long thirdWxDepartId;
+	private Long fourthWxDepartId;
 
 	// sap职位
 	private String position;
@@ -63,15 +63,15 @@ public class SapUser implements Serializable {
 
 	private List<List<SapOrg>> departList;
 
-	public Long getWxDepartId() {
-		if (fourthOrgWxDepartId != null) {
-			return fourthOrgWxDepartId;
-		} else if (thirdOrgWxDepartId != null) {
-			return thirdOrgWxDepartId;
-		} else if (secondOrgWxDepartId != null) {
-			return secondOrgWxDepartId;
+	public String getOrgName() {
+		if (fourthOrgName != null) {
+			return fourthOrgName;
+		} else if (thirdOrgName != null) {
+			return thirdOrgName;
+		} else if (secondOrgName != null) {
+			return secondOrgName;
 		} else {
-			return firstOrgWxDepartId;
+			return firstOrgName;
 		}
 	}
 
@@ -79,10 +79,9 @@ public class SapUser implements Serializable {
 	public String toString() {
 		StringBuilder sBuilder = new StringBuilder();
 		sBuilder.append(userId).append(personId).append(username).append(name).append(firstOrgName).append(firstOrgId)
-				.append(firstOrgWxDepartId).append(secondOrgName).append(secondOrgId).append(secondOrgWxDepartId)
-				.append(thirdOrgName).append(thirdOrgId).append(thirdOrgWxDepartId).append(fourthOrgName)
-				.append(fourthOrgId).append(fourthOrgWxDepartId).append(position).append(mobile).append(businessPhone)
-				.append(gender).append(email).append(isPrimary);
+				.append(secondOrgName).append(secondOrgId).append(thirdOrgName).append(thirdOrgId).append(fourthOrgName)
+				.append(fourthOrgId).append(position).append(mobile).append(businessPhone).append(gender).append(email)
+				.append(isPrimary);
 		return sBuilder.toString();
 	}
 }

+ 1 - 0
code/sapparent/sapservice/src/main/java/org/fouram/enums/SapUserResultEnum.java

@@ -6,6 +6,7 @@ public enum SapUserResultEnum {
 	SUCCESS("SUCCESS", "执行成功"), 
 	SENSITIVE("SENSITIVE", "敏感数据"), 
 	ENTRY("ENTRY", "入职"),
+	BLACKLIST("BLACKLIST", "黑名单"),
 	GARBAGE("GARBAGE", "垃圾数据");
 
 	private final String code;

+ 4 - 0
code/sapparent/sapservice/src/main/java/org/fouram/mapper/SapBlacklistMapper.xml

@@ -6,6 +6,10 @@
 		values (#{userId},#{reason},#{createDate})
 	</insert>
 	
+	<select id="findByPersonId" resultType="SapBlacklist">
+		select * from sap_blacklist where personId = #{personId}
+	</select>
+	
 	<update id="deleteById">
 		delete from sap_blacklist where id = #{id}
 	</update>

+ 6 - 2
code/sapparent/sapservice/src/main/java/org/fouram/service/SapBlacklistService.java

@@ -9,10 +9,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class SapBlacklistService extends BaseService {
 
-	public void saveOne(String userId, String reason) throws Exception {
-		SapBlacklist entity = SapBlacklist.builder().userId(userId).reason(reason).createDate(new Date()).build();
+	public void saveOne(String personId, String reason) throws Exception {
+		SapBlacklist entity = SapBlacklist.builder().personId(personId).reason(reason).createDate(new Date()).build();
 		save("SapBlacklistMapper.saveOne", entity);
 	}
+	
+	public SapBlacklist findByUserId(String personId) throws Exception {
+		return (SapBlacklist) findObject("SapBlacklistMapper.findByPersonId", personId);
+	}
 
 	public void deleteById(String id) throws Exception {
 		update("SapBlacklistMapper.deleteById", id);

+ 29 - 26
code/sapparent/sapservice/src/main/java/org/fouram/service/SapUserService.java

@@ -41,6 +41,8 @@ public class SapUserService extends BaseService {
 	private SapOprLogService sapOprLogService;
 	@Autowired
 	private SapPersonalService sapPersonalService;
+	@Autowired
+	private SapBlacklistService sapBlacklistService;
 
 	private static boolean isTestWXSync = false;
 	private static boolean isTestMobile = true;
@@ -109,26 +111,24 @@ public class SapUserService extends BaseService {
 
 	public void updateResultByCondition() throws Exception {
 		List<SapUser> normalList = selectListByResult(SapUserResultEnum.NORMAL.getCode());
+		SapUserResultEnum resultEnum = null;
 		for (SapUser sapUser : normalList) {
-			// ENTRY("ENTRY", "入职")
-			if (sapUser.getFirstOrgWxDepartId() == null) {
-				sapUser.setResult(SapUserResultEnum.ENTRY.getCode());
-				this.updateResult(sapUser);
-				// SENSITIVE("SENSITIVE", "敏感数据")
-			} else if (checkSensitiveDataIsChange(sapUser)) {
-				sapUser.setResult(SapUserResultEnum.SENSITIVE.getCode());
+			resultEnum = checkSensitiveOrEntryData(sapUser);
+			if (resultEnum != null) {
+				sapUser.setResult(resultEnum.getCode());
 				this.updateResult(sapUser);
 			}
 		}
 	}
 
-	private boolean checkSensitiveDataIsChange(SapUser sapUser) throws Exception {
+	private SapUserResultEnum checkSensitiveOrEntryData(SapUser sapUser) throws Exception {
 		WxUser wxUser = wxUserService.selectById(sapUser.getPersonId());
-		if (!wxUser.getPosition().equals(sapUser.getPosition())
-				|| !wxUser.getDepartIds().contains("," + sapUser.getWxDepartId() + ",")) {
-			return true;
+		if (wxUser == null) {
+			return SapUserResultEnum.ENTRY;
+		} else if (!wxUser.getPosition().equals(sapUser.getPosition())) {
+			return SapUserResultEnum.SENSITIVE;
 		}
-		return false;
+		return null;
 	}
 
 	public void saveSapUser(SapUser entity) throws Exception {
@@ -157,37 +157,40 @@ public class SapUserService extends BaseService {
 		}
 		List<SapUser> sapUsers = selectListByPersonId(personId);
 		SapUser wxSapUser = sapUsers.get(0);
-		Long[] firstOrgWxDepartIdList = new Long[sapUsers.size()];
-		Long[] secondOrgWxDepartIdList = new Long[sapUsers.size()];
-		Long[] thirdOrgWxDepartIdList = new Long[sapUsers.size()];
-		Long[] fourthOrgWxDepartIdList = new Long[sapUsers.size()];
+		Long[] firstWxDepartIdList = new Long[sapUsers.size()];
+		Long[] secondWxDepartIdList = new Long[sapUsers.size()];
+		Long[] thirdWxDepartIdList = new Long[sapUsers.size()];
+		Long[] fourthWxDepartIdList = new Long[sapUsers.size()];
 		for (int i = 0; i < sapUsers.size(); i++) {
 			SapUser sapUser = sapUsers.get(i);
 			String checkResult = checkSapUser(sapUser);
 			if (StringUtils.isNotBlank(checkResult)) {
 				return checkResult;
 			}
-			firstOrgWxDepartIdList[i] = sapUser.getFirstOrgWxDepartId();
-			secondOrgWxDepartIdList[i] = sapUser.getSecondOrgWxDepartId();
-			thirdOrgWxDepartIdList[i] = sapUser.getThirdOrgWxDepartId();
-			fourthOrgWxDepartIdList[i] = sapUser.getFourthOrgWxDepartId();
+			firstWxDepartIdList[i] = sapUser.getFirstWxDepartId();
+			secondWxDepartIdList[i] = sapUser.getSecondWxDepartId();
+			thirdWxDepartIdList[i] = sapUser.getThirdWxDepartId();
+			fourthWxDepartIdList[i] = sapUser.getFourthWxDepartId();
 		}
-		return WXCpUserUtil.createOrUpdate(personId, wxSapUser.getName(), firstOrgWxDepartIdList,
-				secondOrgWxDepartIdList, thirdOrgWxDepartIdList, fourthOrgWxDepartIdList, wxSapUser.getFormatPosition(),
-				wxSapUser.getFormatMobile(), wxSapUser.getGender(), wxSapUser.getUsername(),
-				wxSapUser.getFormatBusinessPhone(), wxSapUser.getFirstOrgName());
+		return WXCpUserUtil.createOrUpdate(personId, wxSapUser.getName(), firstWxDepartIdList, secondWxDepartIdList,
+				thirdWxDepartIdList, fourthWxDepartIdList, wxSapUser.getFormatPosition(), wxSapUser.getFormatMobile(),
+				wxSapUser.getGender(), wxSapUser.getUsername(), wxSapUser.getFormatBusinessPhone(),
+				wxSapUser.getFirstOrgName());
 	}
 
 	/**
-	 * 判断是不是垃圾数据
+	 * 判断是不是垃圾数据或者黑名单
 	 * 
 	 * @param sapUser
 	 * @return
+	 * @throws Exception
 	 */
-	public String checkSapUser(SapUser sapUser) {
+	public String checkSapUser(SapUser sapUser) throws Exception {
 		if (Tools.isEmpty(sapUser.getPersonId()) || Tools.isEmpty(sapUser.getFirstOrgName())
 				|| WebConstants.INGORE_PERSONIDS.contains("," + sapUser.getPersonId() + ",")) {
 			return SapUserResultEnum.GARBAGE.getCode();
+		} else if (sapBlacklistService.findByUserId(sapUser.getPersonId()) != null) {
+			return SapUserResultEnum.BLACKLIST.getCode();
 		}
 		return null;
 	}