| | |
| | |
|
| | | 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;
|
| | |
| | | @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>();
|
| | |
|
| | | 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;
|
| | | }
|
| | | @Override
|
| | | public List<HomeNavbar> listEffectiveNavbar(Long uid, String device, Integer sex,SystemEnum system) {
|
| | | List<HomeNavbar> list = new ArrayList<HomeNavbar>();
|
| | | if (sex == null || sex == 0) {
|
| | | if (uid != null || !StringUtil.isNullOrEmpty(device)) {
|
| | | if (uid != null) {
|
| | | device = null;
|
| | | }
|
| | | // 自定义导航
|
| | | List<HomeNavbarUser> listUserNavbar = homeNavbarUserMapper.listEffectiveNavbars(uid, device);
|
| | |
|
| | | // 是否是固定项
|
| | | 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;
|
| | | }
|
| | | }
|
| | | }
|
| | | if (listUserNavbar != null && listUserNavbar.size() > 0) {
|
| | | // 固定导航
|
| | | List<HomeNavbar> listFixed = homeNavbarService.listQueryFixedNavbar(system);
|
| | | if (listFixed != null && listFixed.size() > 0) {
|
| | | list.addAll(listFixed);
|
| | | }
|
| | |
|
| | | 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;
|
| | | }
|
| | | // 遍历用户自定义
|
| | | for (HomeNavbarUser uomeNavbarUser : listUserNavbar) {
|
| | | HomeNavbar homeNavbar = uomeNavbarUser.getHomeNavbar();
|
| | | if (homeNavbar == null) {
|
| | | continue;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<HomeNavbarUser> listUserNavbar(Long uid, String device) throws HomeNavbarUserException {
|
| | | if (uid == null && StringUtil.isNullOrEmpty(device)) {
|
| | | throw new HomeNavbarUserException(1, "参数不正确");
|
| | | }
|
| | | // 是否是固定项
|
| | | boolean notExist = true;
|
| | |
|
| | | if (uid != null && !StringUtil.isNullOrEmpty(device)) {
|
| | | device = null;
|
| | | }
|
| | | 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;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | return homeNavbarUserMapper.listEffectiveNavbars(uid, device);
|
| | | }
|
| | | if (notExist) {
|
| | | list.add(homeNavbar);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void addNavbarUser(Long uid, String device, List<Long> list) throws HomeNavbarUserException {
|
| | | if (uid == null && StringUtil.isNullOrEmpty(device)) {
|
| | | throw new HomeNavbarUserException(1, "参数不正确");
|
| | | }
|
| | | 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;
|
| | | }
|
| | |
|
| | | if (list == null || list.size() < 6) {
|
| | | throw new HomeNavbarUserException(1, "至少保留6个分类");
|
| | | }
|
| | | @Override
|
| | | public List<HomeNavbarUser> listUserNavbar(Long uid, String device) throws HomeNavbarUserException {
|
| | | if (uid == null && StringUtil.isNullOrEmpty(device)) {
|
| | | throw new HomeNavbarUserException(1, "参数不正确");
|
| | | }
|
| | |
|
| | | if (list.size() > 16) {
|
| | | throw new HomeNavbarUserException(1, "最多显示16个分类");
|
| | | }
|
| | | if (uid != null && !StringUtil.isNullOrEmpty(device)) {
|
| | | device = null;
|
| | | }
|
| | |
|
| | | // 登录之后 以uid为准
|
| | | if (uid != null && !StringUtil.isNullOrEmpty(device)) {
|
| | | device = null;
|
| | | }
|
| | | return homeNavbarUserMapper.listEffectiveNavbars(uid, device);
|
| | | }
|
| | |
|
| | | // 设置已同步
|
| | | 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 void addNavbarUser(Long uid, String device, List<Long> list) 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 (list == null || list.size() < 6) {
|
| | | throw new HomeNavbarUserException(1, "至少保留6个分类");
|
| | | }
|
| | |
|
| | | // 之前已经定义的导航数据
|
| | | List<HomeNavbarUser> listMyNavbars = homeNavbarUserMapper.listMyNavbars(uid, device);
|
| | | if (list.size() > 16) {
|
| | | throw new HomeNavbarUserException(1, "最多显示16个分类");
|
| | | }
|
| | |
|
| | | for (int i = 0; i < list.size(); i++) {
|
| | | HomeNavbarUser navbarUser = null;
|
| | | if (list.get(i) == null) {
|
| | | i--;
|
| | | continue;
|
| | | }
|
| | | long homeId = list.get(i);
|
| | | // 登录之后 以uid为准
|
| | | if (uid != null && !StringUtil.isNullOrEmpty(device)) {
|
| | | device = null;
|
| | | }
|
| | |
|
| | | if (listMyNavbars != null && listMyNavbars.size() > 0) {
|
| | | for (int j = 0; j < listMyNavbars.size(); j++) {
|
| | | HomeNavbarUser homeNavbarUser = listMyNavbars.get(j);
|
| | | HomeNavbar homeNavbar = homeNavbarUser.getHomeNavbar();
|
| | | // 设置已同步
|
| | | 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 (homeNavbar == null) {
|
| | | listMyNavbars.remove(homeNavbarUser);
|
| | | j--;
|
| | | continue;
|
| | | }
|
| | | List<HomeNavbarUser> listInsert = new ArrayList<HomeNavbarUser>();
|
| | | List<HomeNavbarUser> listUpdate = new ArrayList<HomeNavbarUser>();
|
| | |
|
| | | long id = homeNavbar.getId();
|
| | | if (homeId == id) {
|
| | | navbarUser = new HomeNavbarUser();
|
| | | navbarUser.setId(homeNavbarUser.getId());
|
| | | navbarUser.setOrder(homeNavbarUser.getOrder());
|
| | | listMyNavbars.remove(homeNavbarUser);
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | // 之前已经定义的导航数据
|
| | | List<HomeNavbarUser> listMyNavbars = homeNavbarUserMapper.listMyNavbars(uid, device);
|
| | |
|
| | | 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 (int i = 0; i < list.size(); i++) {
|
| | | HomeNavbarUser navbarUser = null;
|
| | | if (list.get(i) == null) {
|
| | | i--;
|
| | | continue;
|
| | | }
|
| | | long homeId = list.get(i);
|
| | |
|
| | | // 更新
|
| | | if (listUpdate.size() > 0) {
|
| | | homeNavbarUserMapper.updateSelectiveBatch(listUpdate);
|
| | | }
|
| | | if (listMyNavbars != null && listMyNavbars.size() > 0) {
|
| | | for (int j = 0; j < listMyNavbars.size(); j++) {
|
| | | HomeNavbarUser homeNavbarUser = listMyNavbars.get(j);
|
| | | HomeNavbar homeNavbar = homeNavbarUser.getHomeNavbar();
|
| | |
|
| | | // 新增
|
| | | if (listInsert.size() > 0) {
|
| | | homeNavbarUserMapper.insertBatch(listInsert);
|
| | | }
|
| | | if (homeNavbar == null) {
|
| | | listMyNavbars.remove(homeNavbarUser);
|
| | | j--;
|
| | | continue;
|
| | | }
|
| | |
|
| | | // 删除
|
| | | if (listMyNavbars != null && listMyNavbars.size() > 0) {
|
| | | List<Long> listId = new ArrayList<Long>();
|
| | | for (HomeNavbarUser homeNavbarUser : listMyNavbars) {
|
| | | listId.add(homeNavbarUser.getId());
|
| | | }
|
| | | homeNavbarUserMapper.deleteByPrimaryKeyBatch(listId);
|
| | | }
|
| | | }
|
| | | long id = homeNavbar.getId();
|
| | | if (homeId == id) {
|
| | | navbarUser = new HomeNavbarUser();
|
| | | navbarUser.setId(homeNavbarUser.getId());
|
| | | navbarUser.setOrder(homeNavbarUser.getOrder());
|
| | | listMyNavbars.remove(homeNavbarUser);
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<HomeNavbar> restoreSystemDefault(Long uid, String device) throws HomeNavbarUserException {
|
| | | if (uid == null && StringUtil.isNullOrEmpty(device)) {
|
| | | throw new HomeNavbarUserException(1, "参数不正确");
|
| | | }
|
| | | 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);
|
| | | }
|
| | | }
|
| | |
|
| | | // 删除用户自定义导航
|
| | | if (uid != null) {
|
| | | homeNavbarUserMapper.deleteByUid(uid);
|
| | | } else {
|
| | | homeNavbarUserMapper.deleteByDevice(device);
|
| | | }
|
| | | // 返回有效的
|
| | | return homeNavbarService.listQueryEffectiveNavbar();
|
| | | }
|
| | | // 更新
|
| | | if (listUpdate.size() > 0) {
|
| | | homeNavbarUserMapper.updateSelectiveBatch(listUpdate);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void synchroDeviceToUser(Long uid, String device) {
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
|
| | | if (userInfoExtra == null) {
|
| | | userInfoExtra = new UserInfoExtra();
|
| | | } else if (userInfoExtra.getSynchNavbar()) {
|
| | | return;
|
| | | }
|
| | | // 新增
|
| | | if (listInsert.size() > 0) {
|
| | | homeNavbarUserMapper.insertBatch(listInsert);
|
| | | }
|
| | |
|
| | | List<HomeNavbarUser> listDevice = homeNavbarUserMapper.listMyNavbars(null, device);
|
| | | if (listDevice == null || listDevice.size() == 0) {
|
| | | return;
|
| | | }
|
| | | // 删除
|
| | | if (listMyNavbars != null && listMyNavbars.size() > 0) {
|
| | | List<Long> listId = new ArrayList<Long>();
|
| | | for (HomeNavbarUser homeNavbarUser : listMyNavbars) {
|
| | | listId.add(homeNavbarUser.getId());
|
| | | }
|
| | | homeNavbarUserMapper.deleteByPrimaryKeyBatch(listId);
|
| | | }
|
| | | }
|
| | |
|
| | | // 同步设备定义导航
|
| | | for (HomeNavbarUser homeNavbarUser : listDevice) {
|
| | | homeNavbarUser.setId(null);
|
| | | homeNavbarUser.setDevice(null);
|
| | | homeNavbarUser.setUid(uid);
|
| | | homeNavbarUser.setCreateTime(new Date());
|
| | | }
|
| | | homeNavbarUserMapper.insertBatch(listDevice);
|
| | | @Override
|
| | | public List<HomeNavbar> restoreSystemDefault(Long uid, String device,SystemEnum system) throws HomeNavbarUserException {
|
| | | if (uid == null && StringUtil.isNullOrEmpty(device)) {
|
| | | throw new HomeNavbarUserException(1, "参数不正确");
|
| | | }
|
| | |
|
| | | // 已同步
|
| | | try {
|
| | | UserInfoExtra updateExtra = new UserInfoExtra();
|
| | | updateExtra.setSynchNavbar(true);
|
| | | updateExtra.setId(userInfoExtra.getId());
|
| | | userInfoExtraService.saveUserInfoExtra(updateExtra);
|
| | | } catch (UserInfoExtraException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | // 删除用户自定义导航
|
| | | 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();
|
| | | }
|
| | | }
|
| | |
|
| | | }
|