From 9d35ba657fa5e3add766405d76e3ff8c4dcd4ad4 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 04 七月 2020 15:38:00 +0800
Subject: [PATCH] 多系统兼容优化

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarUserServiceImpl.java |  429 +++++++++++++++++++++++++++--------------------------
 1 files changed, 218 insertions(+), 211 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarUserServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarUserServiceImpl.java
index 3e180c1..3292a43 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarUserServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarUserServiceImpl.java
@@ -6,6 +6,8 @@
 
 import javax.annotation.Resource;
 
+import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
 import org.springframework.stereotype.Service;
 
 import com.yeshi.fanli.dao.mybatis.homemodule.HomeNavbarUserMapper;
@@ -22,246 +24,251 @@
 @Service
 public class HomeNavbarUserServiceImpl implements HomeNavbarUserService {
 
-	@Resource
-	private HomeNavbarUserMapper homeNavbarUserMapper;
+    @Resource
+    private HomeNavbarUserMapper homeNavbarUserMapper;
 
-	@Resource
-	private HomeNavbarService homeNavbarService;
+    @Resource
+    private HomeNavbarService homeNavbarService;
 
-	@Resource
-	private UserInfoExtraService userInfoExtraService;
-	
+    @Resource
+    private UserInfoExtraService userInfoExtraService;
 
-	@Override
-	public List<HomeNavbar> listEffectiveNavbar(Long uid, String device, Integer sex) {
-		List<HomeNavbar> list = new ArrayList<HomeNavbar>();
+    @Resource
+    private UserInfoService userInfoService;
 
-		if (sex == null || sex == 0) {
-			if (uid != null || !StringUtil.isNullOrEmpty(device)) {
-				if (uid != null) {
-					device = null;
-				}
-				// 鑷畾涔夊鑸�
-				List<HomeNavbarUser> listUserNavbar = homeNavbarUserMapper.listEffectiveNavbars(uid, device);
-				
-				if (listUserNavbar != null && listUserNavbar.size() > 0) {
-					// 鍥哄畾瀵艰埅
-					List<HomeNavbar> listFixed = homeNavbarService.listQueryFixedNavbar();
-					if (listFixed != null && listFixed.size() > 0) {
-						list.addAll(listFixed);
-					}
-					
-					// 閬嶅巻鐢ㄦ埛鑷畾涔�
-					for (HomeNavbarUser uomeNavbarUser : listUserNavbar) {
-						HomeNavbar homeNavbar = uomeNavbarUser.getHomeNavbar();
-						if (homeNavbar == null) {
-							continue;
-						}
 
-						// 鏄惁鏄浐瀹氶」
-						boolean notExist = true;
-						
-						if (listFixed != null && listFixed.size() > 0) {
-							long id = homeNavbar.getId();
-							for (HomeNavbar fixedbar : listFixed) {
-								long fixedId = fixedbar.getId();
-								if (fixedId == id) {
-									notExist = false;
-									listFixed.remove(fixedbar);
-									break;
-								}
-							}
-						}
+    @Override
+    public List<HomeNavbar> listEffectiveNavbar(Long uid, String device, Integer sex) {
+        List<HomeNavbar> list = new ArrayList<HomeNavbar>();
 
-						if (notExist) {
-							list.add(homeNavbar);
-						}
-					}
-				}
-			}
-			
-			if (list.size() == 0) {
-				List<HomeNavbar> listDefault = homeNavbarService.listQueryDefaultNavbar(sex);
-				if (listDefault != null) {
-					list.addAll(listDefault);
-				}
-			}
-		} else {
-			List<HomeNavbar> listDefault = homeNavbarService.listQueryDefaultNavbar(sex);
-			if (listDefault != null) {
-				list.addAll(listDefault);
-			}
-		}
-		return list;
-	}
+        SystemEnum system = userInfoService.getUserSystem(uid);
 
-	@Override
-	public List<HomeNavbarUser> listUserNavbar(Long uid, String device) throws HomeNavbarUserException {
-		if (uid == null && StringUtil.isNullOrEmpty(device)) {
-			throw new HomeNavbarUserException(1, "鍙傛暟涓嶆纭�");
-		}
+        if (sex == null || sex == 0) {
+            if (uid != null || !StringUtil.isNullOrEmpty(device)) {
+                if (uid != null) {
+                    device = null;
+                }
+                // 鑷畾涔夊鑸�
+                List<HomeNavbarUser> listUserNavbar = homeNavbarUserMapper.listEffectiveNavbars(uid, device);
 
-		if (uid != null && !StringUtil.isNullOrEmpty(device)) {
-			device = null;
-		}
+                if (listUserNavbar != null && listUserNavbar.size() > 0) {
+                    // 鍥哄畾瀵艰埅
+                    List<HomeNavbar> listFixed = homeNavbarService.listQueryFixedNavbar(system);
+                    if (listFixed != null && listFixed.size() > 0) {
+                        list.addAll(listFixed);
+                    }
 
-		return homeNavbarUserMapper.listEffectiveNavbars(uid, device);
-	}
+                    // 閬嶅巻鐢ㄦ埛鑷畾涔�
+                    for (HomeNavbarUser uomeNavbarUser : listUserNavbar) {
+                        HomeNavbar homeNavbar = uomeNavbarUser.getHomeNavbar();
+                        if (homeNavbar == null) {
+                            continue;
+                        }
 
-	@Override
-	public void addNavbarUser(Long uid, String device, List<Long> list) throws HomeNavbarUserException {
-		if (uid == null && StringUtil.isNullOrEmpty(device)) {
-			throw new HomeNavbarUserException(1, "鍙傛暟涓嶆纭�");
-		}
+                        // 鏄惁鏄浐瀹氶」
+                        boolean notExist = true;
 
-		if (list == null || list.size() < 6) {
-			throw new HomeNavbarUserException(1, "鑷冲皯淇濈暀6涓垎绫�");
-		}
+                        if (listFixed != null && listFixed.size() > 0) {
+                            long id = homeNavbar.getId();
+                            for (HomeNavbar fixedbar : listFixed) {
+                                long fixedId = fixedbar.getId();
+                                if (fixedId == id) {
+                                    notExist = false;
+                                    listFixed.remove(fixedbar);
+                                    break;
+                                }
+                            }
+                        }
 
-		if (list.size() > 16) {
-			throw new HomeNavbarUserException(1, "鏈�澶氭樉绀�16涓垎绫�");
-		}
+                        if (notExist) {
+                            list.add(homeNavbar);
+                        }
+                    }
+                }
+            }
 
-		// 鐧诲綍涔嬪悗 浠id涓哄噯
-		if (uid != null && !StringUtil.isNullOrEmpty(device)) {
-			device = null;
-		}
+            if (list.size() == 0) {
+                List<HomeNavbar> listDefault = homeNavbarService.listQueryDefaultNavbar(sex, system);
+                if (listDefault != null) {
+                    list.addAll(listDefault);
+                }
+            }
+        } else {
+            List<HomeNavbar> listDefault = homeNavbarService.listQueryDefaultNavbar(sex, system);
+            if (listDefault != null) {
+                list.addAll(listDefault);
+            }
+        }
+        return list;
+    }
 
-		// 璁剧疆宸插悓姝�
-		UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
-		if (userInfoExtra != null && !userInfoExtra.getSynchNavbar()) {
-			try {
-				UserInfoExtra updateExtra = new UserInfoExtra();
-				updateExtra.setSynchNavbar(true);
-				updateExtra.setId(userInfoExtra.getId());
-				userInfoExtraService.saveUserInfoExtra(updateExtra);
-			} catch (UserInfoExtraException e) {
-				e.printStackTrace();
-			}
-		}
+    @Override
+    public List<HomeNavbarUser> listUserNavbar(Long uid, String device) throws HomeNavbarUserException {
+        if (uid == null && StringUtil.isNullOrEmpty(device)) {
+            throw new HomeNavbarUserException(1, "鍙傛暟涓嶆纭�");
+        }
 
-		List<HomeNavbarUser> listInsert = new ArrayList<HomeNavbarUser>();
-		List<HomeNavbarUser> listUpdate = new ArrayList<HomeNavbarUser>();
+        if (uid != null && !StringUtil.isNullOrEmpty(device)) {
+            device = null;
+        }
 
-		// 涔嬪墠宸茬粡瀹氫箟鐨勫鑸暟鎹�
-		List<HomeNavbarUser> listMyNavbars = homeNavbarUserMapper.listMyNavbars(uid, device);
+        return homeNavbarUserMapper.listEffectiveNavbars(uid, device);
+    }
 
-		for (int i = 0; i < list.size(); i++) {
-			HomeNavbarUser navbarUser = null;
-			if (list.get(i) == null) {
-				i--;
-				continue;
-			}
-			long homeId = list.get(i);
+    @Override
+    public void addNavbarUser(Long uid, String device, List<Long> list) throws HomeNavbarUserException {
+        if (uid == null && StringUtil.isNullOrEmpty(device)) {
+            throw new HomeNavbarUserException(1, "鍙傛暟涓嶆纭�");
+        }
 
-			if (listMyNavbars != null && listMyNavbars.size() > 0) {
-				for (int j = 0; j < listMyNavbars.size(); j++) {
-					HomeNavbarUser homeNavbarUser = listMyNavbars.get(j);
-					HomeNavbar homeNavbar = homeNavbarUser.getHomeNavbar();
+        if (list == null || list.size() < 6) {
+            throw new HomeNavbarUserException(1, "鑷冲皯淇濈暀6涓垎绫�");
+        }
 
-					if (homeNavbar == null) {
-						listMyNavbars.remove(homeNavbarUser);
-						j--;
-						continue;
-					}
+        if (list.size() > 16) {
+            throw new HomeNavbarUserException(1, "鏈�澶氭樉绀�16涓垎绫�");
+        }
 
-					long id = homeNavbar.getId();
-					if (homeId == id) {
-						navbarUser = new HomeNavbarUser();
-						navbarUser.setId(homeNavbarUser.getId());
-						navbarUser.setOrder(homeNavbarUser.getOrder());
-						listMyNavbars.remove(homeNavbarUser);
-						break;
-					}
-				}
-			}
+        // 鐧诲綍涔嬪悗 浠id涓哄噯
+        if (uid != null && !StringUtil.isNullOrEmpty(device)) {
+            device = null;
+        }
 
-			if (navbarUser != null) {
-				Integer order = navbarUser.getOrder();
-				if (order != null && i + 1 == order.intValue()) {
-					continue;
-				}
-				navbarUser.setOrder(i + 1);
-				listUpdate.add(navbarUser);
-			} else {
-				navbarUser = new HomeNavbarUser();
-				navbarUser.setOrder(i + 1);
-				navbarUser.setUid(uid);
-				navbarUser.setDevice(device);
-				navbarUser.setHomeNavbar(new HomeNavbar(homeId));
-				navbarUser.setCreateTime(new Date());
-				listInsert.add(navbarUser);
-			}
-		}
+        // 璁剧疆宸插悓姝�
+        UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+        if (userInfoExtra != null && !userInfoExtra.getSynchNavbar()) {
+            try {
+                UserInfoExtra updateExtra = new UserInfoExtra();
+                updateExtra.setSynchNavbar(true);
+                updateExtra.setId(userInfoExtra.getId());
+                userInfoExtraService.saveUserInfoExtra(updateExtra);
+            } catch (UserInfoExtraException e) {
+                e.printStackTrace();
+            }
+        }
 
-		// 鏇存柊
-		if (listUpdate.size() > 0) {
-			homeNavbarUserMapper.updateSelectiveBatch(listUpdate);
-		}
+        List<HomeNavbarUser> listInsert = new ArrayList<HomeNavbarUser>();
+        List<HomeNavbarUser> listUpdate = new ArrayList<HomeNavbarUser>();
 
-		// 鏂板
-		if (listInsert.size() > 0) {
-			homeNavbarUserMapper.insertBatch(listInsert);
-		}
+        // 涔嬪墠宸茬粡瀹氫箟鐨勫鑸暟鎹�
+        List<HomeNavbarUser> listMyNavbars = homeNavbarUserMapper.listMyNavbars(uid, device);
 
-		// 鍒犻櫎
-		if (listMyNavbars != null && listMyNavbars.size() > 0) {
-			List<Long> listId = new ArrayList<Long>();
-			for (HomeNavbarUser homeNavbarUser : listMyNavbars) {
-				listId.add(homeNavbarUser.getId());
-			}
-			homeNavbarUserMapper.deleteByPrimaryKeyBatch(listId);
-		}
-	}
+        for (int i = 0; i < list.size(); i++) {
+            HomeNavbarUser navbarUser = null;
+            if (list.get(i) == null) {
+                i--;
+                continue;
+            }
+            long homeId = list.get(i);
 
-	@Override
-	public List<HomeNavbar> restoreSystemDefault(Long uid, String device) throws HomeNavbarUserException {
-		if (uid == null && StringUtil.isNullOrEmpty(device)) {
-			throw new HomeNavbarUserException(1, "鍙傛暟涓嶆纭�");
-		}
+            if (listMyNavbars != null && listMyNavbars.size() > 0) {
+                for (int j = 0; j < listMyNavbars.size(); j++) {
+                    HomeNavbarUser homeNavbarUser = listMyNavbars.get(j);
+                    HomeNavbar homeNavbar = homeNavbarUser.getHomeNavbar();
 
-		// 鍒犻櫎鐢ㄦ埛鑷畾涔夊鑸�
-		if (uid != null) {
-			homeNavbarUserMapper.deleteByUid(uid);
-		} else {
-			homeNavbarUserMapper.deleteByDevice(device);
-		}
-		// 杩斿洖鏈夋晥鐨�
-		return homeNavbarService.listQueryEffectiveNavbar();
-	}
+                    if (homeNavbar == null) {
+                        listMyNavbars.remove(homeNavbarUser);
+                        j--;
+                        continue;
+                    }
 
-	@Override
-	public void synchroDeviceToUser(Long uid, String device) {
-		UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
-		if (userInfoExtra == null) {
-			userInfoExtra = new UserInfoExtra();
-		} else if (userInfoExtra.getSynchNavbar()) {
-			return;
-		}
+                    long id = homeNavbar.getId();
+                    if (homeId == id) {
+                        navbarUser = new HomeNavbarUser();
+                        navbarUser.setId(homeNavbarUser.getId());
+                        navbarUser.setOrder(homeNavbarUser.getOrder());
+                        listMyNavbars.remove(homeNavbarUser);
+                        break;
+                    }
+                }
+            }
 
-		List<HomeNavbarUser> listDevice = homeNavbarUserMapper.listMyNavbars(null, device);
-		if (listDevice == null || listDevice.size() == 0) {
-			return;
-		}
+            if (navbarUser != null) {
+                Integer order = navbarUser.getOrder();
+                if (order != null && i + 1 == order.intValue()) {
+                    continue;
+                }
+                navbarUser.setOrder(i + 1);
+                listUpdate.add(navbarUser);
+            } else {
+                navbarUser = new HomeNavbarUser();
+                navbarUser.setOrder(i + 1);
+                navbarUser.setUid(uid);
+                navbarUser.setDevice(device);
+                navbarUser.setHomeNavbar(new HomeNavbar(homeId));
+                navbarUser.setCreateTime(new Date());
+                listInsert.add(navbarUser);
+            }
+        }
 
-		// 鍚屾璁惧瀹氫箟瀵艰埅
-		for (HomeNavbarUser homeNavbarUser : listDevice) {
-			homeNavbarUser.setId(null);
-			homeNavbarUser.setDevice(null);
-			homeNavbarUser.setUid(uid);
-			homeNavbarUser.setCreateTime(new Date());
-		}
-		homeNavbarUserMapper.insertBatch(listDevice);
+        // 鏇存柊
+        if (listUpdate.size() > 0) {
+            homeNavbarUserMapper.updateSelectiveBatch(listUpdate);
+        }
 
-		// 宸插悓姝�
-		try {
-			UserInfoExtra updateExtra = new UserInfoExtra();
-			updateExtra.setSynchNavbar(true);
-			updateExtra.setId(userInfoExtra.getId());
-			userInfoExtraService.saveUserInfoExtra(updateExtra);
-		} catch (UserInfoExtraException e) {
-			e.printStackTrace();
-		}
-	}
+        // 鏂板
+        if (listInsert.size() > 0) {
+            homeNavbarUserMapper.insertBatch(listInsert);
+        }
+
+        // 鍒犻櫎
+        if (listMyNavbars != null && listMyNavbars.size() > 0) {
+            List<Long> listId = new ArrayList<Long>();
+            for (HomeNavbarUser homeNavbarUser : listMyNavbars) {
+                listId.add(homeNavbarUser.getId());
+            }
+            homeNavbarUserMapper.deleteByPrimaryKeyBatch(listId);
+        }
+    }
+
+    @Override
+    public List<HomeNavbar> restoreSystemDefault(Long uid, String device,SystemEnum system) throws HomeNavbarUserException {
+        if (uid == null && StringUtil.isNullOrEmpty(device)) {
+            throw new HomeNavbarUserException(1, "鍙傛暟涓嶆纭�");
+        }
+
+        // 鍒犻櫎鐢ㄦ埛鑷畾涔夊鑸�
+        if (uid != null) {
+            homeNavbarUserMapper.deleteByUid(uid);
+        } else {
+            homeNavbarUserMapper.deleteByDevice(device);
+        }
+        // 杩斿洖鏈夋晥鐨�
+        return homeNavbarService.listQueryEffectiveNavbar(system);
+    }
+
+    @Override
+    public void synchroDeviceToUser(Long uid, String device) {
+        UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+        if (userInfoExtra == null) {
+            userInfoExtra = new UserInfoExtra();
+        } else if (userInfoExtra.getSynchNavbar()) {
+            return;
+        }
+
+        List<HomeNavbarUser> listDevice = homeNavbarUserMapper.listMyNavbars(null, device);
+        if (listDevice == null || listDevice.size() == 0) {
+            return;
+        }
+
+        // 鍚屾璁惧瀹氫箟瀵艰埅
+        for (HomeNavbarUser homeNavbarUser : listDevice) {
+            homeNavbarUser.setId(null);
+            homeNavbarUser.setDevice(null);
+            homeNavbarUser.setUid(uid);
+            homeNavbarUser.setCreateTime(new Date());
+        }
+        homeNavbarUserMapper.insertBatch(listDevice);
+
+        // 宸插悓姝�
+        try {
+            UserInfoExtra updateExtra = new UserInfoExtra();
+            updateExtra.setSynchNavbar(true);
+            updateExtra.setId(userInfoExtra.getId());
+            userInfoExtraService.saveUserInfoExtra(updateExtra);
+        } catch (UserInfoExtraException e) {
+            e.printStackTrace();
+        }
+    }
 
 }

--
Gitblit v1.8.0