123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- package com.bosshand.virgo.service;
- import com.alibaba.fastjson.JSONObject;
- import com.bosshand.virgo.core.dao.AttendanceDao;
- import com.bosshand.virgo.core.dao.MgrOrganizationDao;
- import com.bosshand.virgo.core.dao.MgrUserDao;
- import com.bosshand.virgo.core.dao.MgrUserRoleDao;
- import com.bosshand.virgo.core.model.Attendance;
- import com.bosshand.virgo.core.model.MgrOrganization;
- import com.bosshand.virgo.core.model.MgrUser;
- import com.bosshand.virgo.core.model.MgrUserRole;
- import com.bosshand.virgo.core.utils.CodeCache;
- import com.bosshand.virgo.core.utils.Utils;
- import com.bosshand.virgo.core.utils.WeChatUtil;
- import com.bosshand.virgo.util.MD5Utils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.*;
- @Service
- public class UserService {
- @Autowired
- private MgrUserDao mgrUserDao;
- @Autowired
- private MgrUserRoleDao mgrUserRoleDao;
- @Autowired
- private MgrOrganizationDao mgrOrganizationDao;
- @Autowired
- private AttendanceDao attendanceDao;
- public MgrUser getById(long id) {
- MgrUser user = mgrUserDao.getById(id);
- user.setMgrOrganization(mgrOrganizationDao.get(user.getLastOrganizationId()));
- return user;
- }
- public MgrUser getByPhone(String phone) {
- return mgrUserDao.getByPhone(phone);
- }
- public int update(MgrUser user) {
- int update = mgrUserDao.update(user);
- //修改聊天用户信息
- JSONObject js = new JSONObject();
- js.put("nickname", user.getName());
- js.put("avatarUrl", user.getPortrait());
- WeChatUtil.httpPost("http://git.waywish.com:9120/user/update", js, this.getYelToken(String.valueOf(user.getId())));
- return update;
- }
- /**
- * 获取Yel-Token
- */
- public String getYelToken(String userId) {
- JSONObject js = new JSONObject();
- js.put("userId", userId);
- long timestamp = System.currentTimeMillis() + 30 * 1000;
- js.put("timestamp", timestamp);
- String sign = MD5Utils.code(userId + timestamp + "50abd47112ebe8c5a73f4694c96a49ce");
- js.put("sign", sign);
- String str = WeChatUtil.httpPost("http://git.waywish.com:9120/user/token/get", js, null);
- JSONObject jsonObject = JSONObject.parseObject(str);
- return jsonObject.getJSONObject("data").getString("token");
- }
- public void updateResources(MgrUserRole userRole) {
- mgrUserRoleDao.updateResources(userRole);
- }
- public int banUser(long id, int status) {
- return mgrUserDao.banUser(id, status);
- }
- public int checkFace(long id) {
- return mgrUserDao.checkFace(id);
- }
- public List<MgrUser> listUser(long organizationId, long roleId) {
- List<MgrUserRole> list = mgrUserRoleDao.getOrganizationId(organizationId);
- Map<Long, String> map = new HashMap<>();
- List<Long> userIds = new ArrayList<>();
- for (MgrUserRole mur : list) {
- if (mur.getRoles() != null) {
- List<String> ll = new ArrayList<>(Arrays.asList(mur.getRoles().split(",")));
- if (ll.contains(String.valueOf(roleId))) {
- userIds.add(mur.getUserId());
- map.put(mur.getUserId(), mur.getResources());
- }
- }
- }
- if (userIds.size() > 0) {
- List<MgrUser> userList = mgrUserDao.getIds(userIds);
- userList.forEach(ls -> ls.setResources(map.get(ls.getId())));
- return userList;
- }
- return new ArrayList<>();
- }
- public void deleteUser(long organizationId, long userId) {
- MgrUserRole mgrUserRole = mgrUserRoleDao.getUser(userId, organizationId);
- if (mgrUserRole != null) {
- mgrUserRoleDao.delete(mgrUserRole.getId());
- }
- }
- public void addUser(MgrUser user, long organizationId, String roleIds) {
- long userId = 0;
- MgrUser mgrUser = mgrUserDao.getByPhone(user.getPhone());
- if (mgrUser != null) {
- userId = mgrUser.getId();
- } else {
- if (user.getName() == null) {
- user.setName(CodeCache.DefaultUserName);
- }
- //mgrUserDao.insert(user);
- //userId = user.getId();
- userId = registerOrganization(user);
- // 聊天用户新增
- JSONObject js = new JSONObject();
- js.put("userId", userId);
- js.put("nickname", user.getName());
- js.put("avatarUrl", CodeCache.DefaultPortrait);
- WeChatUtil.httpPost("http://git.waywish.com:9120/user/register", js, null);
- }
- MgrUserRole mur = mgrUserRoleDao.getUser(userId, organizationId);
- if (mur != null) {
- if (mur.getRoles() == null) {
- mur.setRoles(roleIds);
- } else {
- List<String> list = new ArrayList<>(Arrays.asList(mur.getRoles().split(",")));
- if (list.contains(roleIds)) {
- return;
- }
- list.add(roleIds);
- mur.setRoles(String.join(",", list));
- }
- mgrUserRoleDao.update(mur);
- } else {
- MgrUserRole userRole = new MgrUserRole();
- userRole.setUserId(userId);
- userRole.setOrganizationId(organizationId);
- userRole.setRoles(roleIds);
- mgrUserRoleDao.insert(userRole);
- }
- }
- /**
- * 新加用户注册组织
- */
- private long registerOrganization(MgrUser user){
- MgrOrganization mgrOrganization = new MgrOrganization();
- mgrOrganization.setName(null);
- mgrOrganization.setContact(user.getName());
- mgrOrganization.setContactTel(user.getPhone());
- mgrOrganization.setOrganizationCode("CZF" + Utils.random(8));
- mgrOrganizationDao.insert(mgrOrganization);
- user.setLastOrganizationId(mgrOrganization.getId());
- mgrUserDao.insert(user);
- MgrUserRole userRole = new MgrUserRole();
- userRole.setAdmin(true);
- userRole.setOrganizationId(mgrOrganization.getId());
- userRole.setUserId(user.getId());
- mgrUserRoleDao.insert(userRole);
- return user.getId();
- }
- public List<MgrUser> getUserByOrganizationId(long organizationId) {
- List<MgrUserRole> list = mgrUserRoleDao.getOrganizationId(organizationId);
- List<Long> ids = new ArrayList<>();
- for (MgrUserRole mur : list) {
- ids.add(mur.getUserId());
- }
- if (ids.size() > 0) {
- return mgrUserDao.getIds(ids);
- }
- return new ArrayList<>();
- }
- public void updateUserRole(MgrUserRole userRole) {
- MgrUserRole mur = mgrUserRoleDao.getUser(userRole.getUserId(), userRole.getOrganizationId());
- if (mur.getRoles() == null) {
- mur.setRoles(userRole.getRoles());
- } else {
- List<String> list = new ArrayList<>(Arrays.asList(mur.getRoles().split(",")));
- String[] split = userRole.getRoles().split(",");
- for (String s : split) {
- if (!list.contains(s)) {
- list.add(s);
- }
- }
- mur.setRoles(String.join(",", list));
- mgrUserRoleDao.update(mur);
- }
- }
- public int saveAttendance(Attendance attendance) {
- return attendanceDao.insert(attendance);
- }
- public List<Attendance> getAttendance(Attendance attendance) {
- if (attendance.getEndDate() != null) {
- attendance.setEndDate(attendance.getEndDate() + " 23:59:59");
- }
- return attendanceDao.getByUser(attendance);
- }
- }
|