liupeng 5 tahun lalu
induk
melakukan
a86e0b8628

+ 1 - 1
code/sapparent/sapservice/src/main/java/org/fouram/mapper/WxDepartMapper.xml

@@ -6,7 +6,7 @@
 		values (#{id},#{name},#{parentId},#{order})
 	</insert>
 	
-	<select id="findById" resultType="WxDepart">
+	<select id="selectById" resultType="WxDepart">
 		select * from wx_depart where id=#{id}
 	</select>
 </mapper>

+ 12 - 2
code/sapparent/sapservice/src/main/java/org/fouram/mapper/WxUserMapper.xml

@@ -1,8 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="WxUserMapper">
+	<select id="selectById" resultType="WxUser">
+		select * from wx_user where userId=#{userId}
+	</select>
+
 	<insert id="save">
-		insert into wx_user(userId,name,firstDepartName,secondDepartName,sapExists) 
-		values (#{userId},#{name},#{firstDepartName},#{secondDepartName},'0')
+		insert into wx_user(userId,name,departId,firstDepartName,secondDepartName,sapExists) 
+		values (#{userId},#{name},#{departId},#{firstDepartName},#{secondDepartName},'0')
 	</insert>
+	
+	<update id="update">
+		update wx_user 
+		set departId=#{departId},firstDepartName=#{firstDepartName},secondDepartName=#{secondDepartName}
+		where userId=#{userId}
+	</update>
 </mapper>

+ 4 - 2
code/sapparent/sapservice/src/main/java/org/fouram/service/WxDepartService.java

@@ -16,9 +16,11 @@ import me.chanjar.weixin.cp.bean.WxCpDepart;
 public class WxDepartService extends BaseService {
 
 	public void saveDeparts() throws Exception {
-		List<WxCpDepart> departs = WXCpDepartUtil.getAllChildDeparts(1L);
+		List<WxCpDepart> departs = WXCpDepartUtil.getAllChildDeparts(WebConstants.TOP_DEPART);
 		for (WxCpDepart depart : departs) {
-			save("WxDepartMapper.save", depart);
+			if(selectById(depart.getId()) == null) {
+				save("WxDepartMapper.save", depart);
+			}
 		}
 	}
 	

+ 20 - 8
code/sapparent/sapservice/src/main/java/org/fouram/service/WxUserService.java

@@ -16,32 +16,44 @@ import me.chanjar.weixin.cp.bean.WxCpUser;
 
 @Service
 public class WxUserService extends BaseService {
-	
+
 	@Autowired
 	private WxDepartService wxDepartService;
-	
+
 	private Map<Long, List<WxDepart>> userDepartMap = Maps.newHashMap();
 
 	public void saveUsers() throws Exception {
 		List<WxCpUser> users = WXCpUserUtil.listAllUser();
 		List<WxDepart> departs = null;
 		WxUser wxUser = null;
+		WxUser dbUser = null;
+		String userId = null;
 		for (WxCpUser user : users) {
-			wxUser = WxUser.builder().userId(user.getUserId()).name(user.getName()).departId(user.getDepartIds()[0])
-					.build();
+			userId = user.getUserId();
+			wxUser = WxUser.builder().userId(userId).name(user.getName()).departId(user.getDepartIds()[0]).build();
 			departs = getUserDepart(wxUser.getDepartId());
-			if(departs.size() > 0) {
+			if (departs.size() > 0) {
 				wxUser.setFirstDepartName(departs.get(0).getName());
 			}
-			if(departs.size() > 1) {
+			if (departs.size() > 1) {
 				wxUser.setSecondDepartName(departs.get(1).getName());
 			}
-			save("WxUserMapper.save", wxUser);
+			dbUser = selectById(userId);
+			if (dbUser == null) {
+				save("WxUserMapper.save", wxUser);
+			} else {
+				wxUser.setUserId(dbUser.getUserId());
+				update("WxUserMapper.update", wxUser);
+			}
 		}
 	}
 
+	public WxUser selectById(String userId) throws Exception {
+		return (WxUser) findObject("WxUserMapper.selectById", userId);
+	}
+
 	private List<WxDepart> getUserDepart(Long departId) throws Exception {
-		if(!userDepartMap.containsKey(departId)) {
+		if (!userDepartMap.containsKey(departId)) {
 			userDepartMap.put(departId, wxDepartService.findParentList(departId));
 		}
 		return userDepartMap.get(departId);