package com.uas.platform.home.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.uas.account.entity.User; import com.uas.account.entity.UserView; import com.uas.account.entity.UuzcUserSpaceDetail; import com.uas.account.util.AccountUtils; import com.uas.platform.home.core.support.SystemSession; import com.uas.platform.home.model.ResultInfo; import com.uas.platform.home.model.UuzcUserInfo; import com.uas.platform.home.web.BaseController; import com.uas.sso.SSOHelper; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 关于优软众创的一些接口 * * Created by hejq on 2017-11-02. */ @RestController @RequestMapping(value = "/uuzc") public class UuzcController extends BaseController { /** * 对当前登录账号进行检验 * * @return */ @RequestMapping(value = "/account/check", method = RequestMethod.GET) public ModelMap checkAccount() throws Exception { UserView user = SystemSession.getUser(); ModelMap map = new ModelMap(); if(null != user) { if ( null != user.getHr() && 1 == user.getHr()) {// hr账户 UuzcUserInfo info = getUserInfo(user, true); map.put("ishr", true); map.put("user", info); map.put("usertype", "hr"); } else if(null != user.getUuzcUserSpaceDetail()) {// 先通过登录的信息判断是否是企业用户 map.put("usertype", "company"); UuzcUserInfo info = getUserInfo(user, true); //判断是否设置了hr String result = AccountUtils.getHrAccount(info.getLicense()); ResultInfo resInfo = JSONObject.parseObject(result, ResultInfo.class); map.put("hr", resInfo.getExistHr() ? true : false); if(user.getUid().equals(user.getUuzcUserSpaceDetail().getAdminTel())) { map.put("manager", true); } else { map.put("managerName", user.getUuzcUserSpaceDetail().getAdminName()); } map.put("user", info); } else if(null == user.getUuzcUserSpaceDetail()) {// 个人用户 UuzcUserInfo info = getUserInfo(user, false); JSONObject formData = JSON.parseObject(JSON.toJSONString(info)); map.put("user", formData); map.put("usertype", "personal"); } } else { SSOHelper.clearLogin(request, response); return success(SSOHelper.getRedirectRefererLoginUrl(request)); } return map; } /** * 将账户中心信息转成众创需要的信息 * * @param user * @param company * @return */ private UuzcUserInfo getUserInfo(UserView user, boolean company) { UuzcUserInfo info = new UuzcUserInfo(); info.setEmail(user.getSecondUID()); info.setMobile(user.getUid()); info.setUc_uid(user.getDialectUID()); info.setPassword(user.getPassword()); info.setSalt(user.getSalt()); info.setUsername(user.getName()); if(null != user.getUuzcUserSpaceDetail() && company) { info.setCompanyname(user.getSpaceName()); info.setLicense(user.getSpaceUID()); info.setContact(user.getUuzcUserSpaceDetail().getContactMan() != null ? user.getUuzcUserSpaceDetail().getContactMan() : user.getUuzcUserSpaceDetail().getAdminName()); info.setWebsite(user.getUuzcUserSpaceDetail().getUrl()); info.setTelephone(user.getUuzcUserSpaceDetail().getTel() != null ? user.getUuzcUserSpaceDetail().getTel() : user.getUuzcUserSpaceDetail().getAdminTel()); info.setLandine_tel(user.getUuzcUserSpaceDetail().getContactTel() != null ? user.getUuzcUserSpaceDetail().getContactTel() : user.getUuzcUserSpaceDetail().getAdminTel()); } return info; } /** * 设置hr账号 * * @param user * @return */ @RequestMapping(value = "/setHrAccount", method = RequestMethod.POST) public ModelMap setHrAccount(UuzcUserInfo user) throws Exception { UuzcUserSpaceDetail detail = SystemSession.getUser().getUuzcUserSpaceDetail(); User userInfo = new User(); userInfo.setHr((short) 1); userInfo.setName(user.getUsername()); userInfo.setUid(user.getMobile()); userInfo.setSecondUID(user.getEmail()); String result = AccountUtils.setHrAccount(userInfo, detail); ResultInfo resInfo = JSONObject.parseObject(result, ResultInfo.class); return new ModelMap("result", resInfo.getMsg()); } /** * 获取当前企业的用户信息 * * @return * @throws Exception */ @RequestMapping(value = "/existusers", method = RequestMethod.GET) public ModelMap getExistUsers() throws Exception { List users = AccountUtils.getEmployees(SystemSession.getUser().getUuzcUserSpaceDetail().getBusinessCode()); return success(users); } /** * 获取当前企业的hr账号信息 * * @return * @throws Exception */ @RequestMapping(value = "/hrInfo", method = RequestMethod.GET) public ModelMap getHrInfo() throws Exception { User user = AccountUtils.getHrInfo(SystemSession.getUser().getSpaceUID()); return new ModelMap("user", user); } }