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