UserspaceManagerController.java 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  1. package com.uas.sso.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.alibaba.fastjson.TypeReference;
  5. import com.uas.account.ResultWrap;
  6. import com.uas.account.entity.AppCreateInfo;
  7. import com.uas.account.entity.MasterInfo;
  8. import com.uas.account.entity.UserSpace;
  9. import com.uas.account.entity.UserSpaceDetail;
  10. import com.uas.account.util.AccountUtils;
  11. import com.uas.sso.common.util.HttpUtil;
  12. import com.uas.sso.core.Const;
  13. import com.uas.sso.core.Status;
  14. import com.uas.sso.dao.UserspaceDao;
  15. import com.uas.sso.entity.App;
  16. import com.uas.sso.entity.User;
  17. import com.uas.sso.entity.Userspace;
  18. import com.uas.sso.service.AppService;
  19. import com.uas.sso.service.ApplyUserSpaceService;
  20. import com.uas.sso.service.UserService;
  21. import com.uas.sso.service.UserspaceService;
  22. import com.uas.sso.util.FastjsonUtils;
  23. import com.uas.sso.util.FileUrl;
  24. import com.uas.sso.util.HttpUtils;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.data.domain.Page;
  27. import org.springframework.ui.ModelMap;
  28. import org.springframework.util.CollectionUtils;
  29. import org.springframework.util.StringUtils;
  30. import org.springframework.web.bind.annotation.*;
  31. import org.springframework.web.multipart.MultipartFile;
  32. import java.io.*;
  33. import java.net.URLEncoder;
  34. import java.sql.Timestamp;
  35. import java.util.*;
  36. import static com.alibaba.fastjson.JSON.parseObject;
  37. import static com.uas.sso.service.impl.UserspaceServiceImpl.SPACE_INIT_UU;
  38. /**
  39. * 企业信息管理controller
  40. *
  41. * @author wangmh
  42. * @date 2018/1/5
  43. */
  44. @RestController
  45. @RequestMapping("/api/userspace")
  46. public class UserspaceManagerController extends BaseController {
  47. @Autowired
  48. private UserspaceService userspaceService;
  49. @Autowired
  50. private UserService userService;
  51. @Autowired
  52. private AppService appService;
  53. @Autowired
  54. private ApplyUserSpaceService applyUserSpaceService;
  55. @Autowired
  56. private UserspaceDao userspaceDao;
  57. /**
  58. * 校验企业名称
  59. *
  60. * @param spaceName 企业名称
  61. * @return
  62. */
  63. @RequestMapping(value = "/checkSpaceName", method = RequestMethod.GET)
  64. public ModelMap checkSpaceName(String spaceName) {
  65. userspaceService.checkSpaceName(spaceName);
  66. return success();
  67. }
  68. /**
  69. * 校验企业营业执照号
  70. *
  71. * @param businessCode 企业名称
  72. * @return
  73. */
  74. @RequestMapping("/checkBusinessCode")
  75. public ModelMap checkBusinessCode(String businessCode) {
  76. userspaceService.checkBusinessCode(businessCode);
  77. return success();
  78. }
  79. /**
  80. * 校验企业是否被认证
  81. *
  82. * @author wangmh
  83. * @date 2018/1/11 20:51
  84. * @param spaceName 企业名称
  85. * @return
  86. */
  87. @RequestMapping(value = "/name/valid", method = RequestMethod.GET)
  88. public ModelMap spaceNameIsValid(String spaceName) {
  89. return success(new ModelMap("isValid", userspaceService.spaceNameIsValid(spaceName)));
  90. }
  91. /**
  92. * 校验营业执照号是否被认证
  93. *
  94. * @author wangmh
  95. * @date 2018/1/11 10:35
  96. * @param businessCode 营业执照号
  97. * @return
  98. */
  99. @RequestMapping(value = "/businessCode/valid", method = RequestMethod.GET)
  100. public ModelMap businessCodeIsValid(String businessCode) {
  101. return success(new ModelMap("isValid", userspaceService.businessCodeIsValid(businessCode)));
  102. }
  103. /**
  104. * 上传营业执照号
  105. * @param image 营业执照号
  106. * @return 图片地址
  107. * @throws Exception
  108. */
  109. @RequestMapping(value = "/upload", method = RequestMethod.POST)
  110. public ModelMap uploadImage(MultipartFile image) throws Exception {
  111. int IMAGE_MAX_SIZE = 5 * 1024 * 1024;
  112. if (!(image == null || image.isEmpty())) {
  113. if (image.getSize() > IMAGE_MAX_SIZE) {
  114. return error("营业执照附件大小不要超过5M");
  115. }
  116. HttpUtils.Response response = HttpUtils.upload(FileUrl.FILE_UPLOAD, image, null);
  117. JSONObject obj = FastjsonUtils.parseObject(response.getResponseText());
  118. String path = (String) obj.get("path");
  119. if (path != null) {
  120. return success(path);
  121. } else {
  122. return error("请检查您的营业执照附件");
  123. }
  124. }
  125. return error("上传失败");
  126. }
  127. /**
  128. * 模糊搜索企业名称
  129. * @param keyword 关键字
  130. * @param number 获取数量
  131. * @return page对象
  132. */
  133. @RequestMapping(value = "/search/name", method = RequestMethod.GET)
  134. public ModelMap searchName(String keyword, @RequestParam(defaultValue = "5") int number) {
  135. if (StringUtils.isEmpty(keyword)) {
  136. return success();
  137. }
  138. return success(userspaceService.searchName(keyword, number));
  139. }
  140. /**
  141. * 根据企业名称查询企业
  142. * @param name 企业名称
  143. * @return 企业信息
  144. */
  145. @RequestMapping(value = "/info/name", method = RequestMethod.GET)
  146. public ModelMap findByName(String name) {
  147. if (StringUtils.isEmpty(name)) {
  148. return success();
  149. }
  150. return success(userspaceService.findBySpaceName(name));
  151. }
  152. /**
  153. * 根据企业名称查询企业
  154. * @param businessCode 企业营业执照号
  155. * @return 企业信息
  156. */
  157. @RequestMapping(value = "/info/businessCode", method = RequestMethod.GET)
  158. public ModelMap findByBusinessCode(String businessCode) {
  159. if (StringUtils.isEmpty(businessCode)) {
  160. return success();
  161. }
  162. return success(userspaceService.findByBusinessCode(businessCode));
  163. }
  164. /**
  165. * 根据企业名称查询企业
  166. * @param spaceUU 企业营业执照号
  167. * @return 企业信息
  168. */
  169. @RequestMapping(value = "/info/spaceUU", method = RequestMethod.GET)
  170. public ModelMap findBySpaceUU(Long spaceUU) {
  171. if (StringUtils.isEmpty(spaceUU)) {
  172. return success();
  173. }
  174. return success(userspaceService.findOne(spaceUU));
  175. }
  176. /**
  177. * 查询所有企业列表
  178. */
  179. @RequestMapping(params = "_operate=getUserSpaces")
  180. public Page<Userspace> getUserSpaces(String keyword, @RequestParam(defaultValue = "1") int pageNumber, @RequestParam(defaultValue = "20") int pageSize) {
  181. return userspaceService.findByKeyword(keyword, pageNumber, pageSize);
  182. }
  183. /**
  184. * 统计申请已审批和未审批数量
  185. * @param spaceUU 企业uu号
  186. * @return
  187. */
  188. @RequestMapping(value = "/apply/count", method = RequestMethod.GET)
  189. public ModelMap applyCount(Long spaceUU) {
  190. return success(applyUserSpaceService.applyCount(spaceUU));
  191. }
  192. /**
  193. * 企业解除绑定应用
  194. * @param spaceUU 企业uu号
  195. * @param appId 应用id
  196. * @return
  197. */
  198. @RequestMapping(params = "_operate=unbind", method = RequestMethod.POST)
  199. public ModelMap unbindApp(Long spaceUU, String appId) {
  200. if (StringUtils.isEmpty(spaceUU) || StringUtils.isEmpty(appId)) {
  201. return error("参数错误");
  202. }
  203. userspaceService.unbindApp(spaceUU, appId);
  204. return success();
  205. }
  206. /**
  207. * 企业开通应用
  208. * @param spaceUU 企业uu号
  209. * @param appId 应用id
  210. * @return
  211. */
  212. @RequestMapping(params = "_operate=bind", method = RequestMethod.POST)
  213. public ModelMap bindApp(Long spaceUU, String appId) {
  214. if (StringUtils.isEmpty(spaceUU) || StringUtils.isEmpty(appId)) {
  215. return error("参数错误");
  216. }
  217. userspaceService.bindApp(spaceUU, appId);
  218. return success();
  219. }
  220. /**
  221. * 校验企业营业执照
  222. *
  223. * @param businessCode 营业执照号
  224. * @return
  225. * @throws UnsupportedEncodingException
  226. */
  227. @RequestMapping(params = "_operate=validBusinessCode", method = RequestMethod.GET)
  228. public AppCreateInfo validBusinessCode(String businessCode) throws UnsupportedEncodingException {
  229. // 去掉可能存在的空格再进行检验
  230. businessCode = StringUtils.trimAllWhitespace(businessCode);
  231. AppCreateInfo info = new AppCreateInfo();
  232. info.setHasCreate(false);
  233. info.setInCloud(false);
  234. if (!StringUtils.isEmpty(businessCode)) {
  235. Userspace userspace = userspaceService.findByBusinessCode(businessCode);
  236. if (null != userspace && userspace.getApps() != null) {
  237. for (App app : userspace.getApps()) {
  238. // 是否注册过saas
  239. if (app.getUid().equals("saas")) {
  240. info.setHasCreate(true);
  241. continue;
  242. }
  243. // 是否注册过uas
  244. if (app.getUid().equals("uas")) {
  245. info.setHasCreate(true);
  246. continue;
  247. }
  248. // 是否注册过平台
  249. if (app.getUid().equals("b2b")) {
  250. info.setInCloud(true);
  251. info.setName(userspace.getSpaceName());
  252. continue;
  253. }
  254. }
  255. }
  256. }
  257. return info;
  258. }
  259. /**
  260. * 校验企业名称
  261. *
  262. * @param name
  263. * @return
  264. */
  265. @RequestMapping(params = "_operate=validName", method = RequestMethod.GET)
  266. public AppCreateInfo validName(String name) {
  267. // 去掉可能存在的空格再进行检验
  268. name = StringUtils.trimAllWhitespace(name);
  269. AppCreateInfo info = new AppCreateInfo();
  270. info.setHasCreate(false);
  271. info.setInCloud(false);
  272. if (!StringUtils.isEmpty(name)) {
  273. Userspace userspace = userspaceService.findBySpaceName(name);
  274. if (null != userspace && userspace.getApps() != null) {
  275. for (App app : userspace.getApps()) {
  276. // 是否注册过saas
  277. if (app.getUid().equals("saas")) {
  278. info.setHasCreate(true);
  279. continue;
  280. }
  281. // 是否注册过uas
  282. if (app.getUid().equals("uas")) {
  283. info.setHasCreate(true);
  284. continue;
  285. }
  286. // 是否注册过平台
  287. if (app.getUid().equals("b2b")) {
  288. info.setInCloud(true);
  289. info.setBusinessCode(userspace.getBusinessCode());
  290. continue;
  291. }
  292. }
  293. }
  294. }
  295. return info;
  296. }
  297. /**
  298. * ERP、SAAS新开账套注册平台
  299. *
  300. * @param detail
  301. * @param userInfos
  302. */
  303. @RequestMapping(params = "_operate=registerBranchAccount", method = RequestMethod.POST)
  304. public AppCreateInfo applyApp(String detail, String userInfos) {
  305. AppCreateInfo info = new AppCreateInfo();
  306. // 获取接收到的信息
  307. List<User> users = JSON.parseArray(userInfos, User.class);
  308. Userspace userspace = parseObject(detail, Userspace.class);
  309. // 企业注册
  310. userspace = userspaceService.register(userspace, "uas");
  311. // 将用户绑定绑定到注册企业
  312. userspaceService.addUser(userspace, users);
  313. // 注册完后查询uu号等信息
  314. info.setInCloud(true);
  315. info.setEnuu(userspace.getSpaceUU() + "");
  316. return info;
  317. }
  318. /**
  319. * 同步旧企业数据到账户中心
  320. * @param spaceUU 企业uu号,为空则同步所有
  321. * @return
  322. */
  323. @RequestMapping("/saveOldUserSpaces/{spaceUU}")
  324. public ModelMap syncOldUserSpaces(@PathVariable Long spaceUU, @RequestParam(defaultValue = "1") int pageNumber,
  325. @RequestParam(defaultValue = "20")int pageSize, @RequestParam(defaultValue = "false") boolean isAll) {
  326. // 由于旧数据问题,记录重复的企业名称和营业执照号
  327. Map<String, Integer> repeatSpaceName = new HashMap<>();
  328. Map<String, Integer> repeatBusinessCode = new HashMap<>();
  329. Userspace userspace;
  330. com.uas.sso.support.Page<UserSpaceDetail> page = null;
  331. // 循环分页请求,如果是最后一页则退出循环
  332. while (page == null || !page.isLast()) {
  333. // 获取分页信息
  334. page = getUserSpace(pageNumber++, pageSize);
  335. // 循环遍历企业信息并保存
  336. int i = 1;
  337. for (UserSpaceDetail detail : page.getContent()) {
  338. try {
  339. userspace = userspaceService.findByBusinessCode(detail.getBusinessCode());
  340. if (userspace != null) {
  341. continue;
  342. }
  343. userspace = saveUserspace(detail);
  344. System.out.println(page.getNumber() + "\t" + page.getSize() + "\t" + i++ + "\t" + userspace.getSpaceName() + "\t" + userspace.getBusinessCode());
  345. } catch (Exception e) {
  346. writerToFile(page.getNumber() + "\t" + page.getSize() + "\t" + i++ + "\t" + detail.getName() + "\t" + detail.getBusinessCode(), e.getMessage());
  347. }
  348. }
  349. spaceNameUnique();
  350. if (!isAll) {
  351. break;
  352. }
  353. }
  354. return success();
  355. }
  356. private Userspace saveUserspace(UserSpaceDetail detail) throws Exception {
  357. Userspace userspace;
  358. userspace = new Userspace();
  359. // 设置企业秘钥
  360. userspace.setAccessSecret(getAccessSecret(detail.getBusinessCode()));
  361. // 设置管理员uu号
  362. User user = userService.findByMobile(detail.getAdminTel());
  363. userspace.setAdminUU(user == null ? null : user.getUserUU());
  364. userspace.setBusinessCode(detail.getBusinessCode());
  365. userspace.setBusinessCodeImage(detail.getBusinessCodeImage());
  366. userspace.setCorporation(detail.getCorporation());
  367. userspace.setDomain(detail.getDomain());
  368. userspace.setLogoImage(detail.getLogoImage());
  369. userspace.setProfession(detail.getProfession());
  370. userspace.setRegAddress(detail.getAddress());
  371. userspace.setRegCity(detail.getCity());
  372. userspace.setRegDistrict(detail.getDistrict());
  373. userspace.setRegProvince(detail.getProvince());
  374. userspace.setRegStreet(detail.getStreet());
  375. userspace.setRegisterDate(detail.getRegisterDate() == null ? null : new Timestamp(detail.getRegisterDate()));
  376. userspace.setSpaceName(detail.getName());
  377. // 设置企业uu号
  378. userspace.setSpaceUU(getSpaceUU(detail.getBusinessCode(), detail.getName()));
  379. userspace.setTags(detail.getTags());
  380. userspace.setTelephone(detail.getTel());
  381. userspace.setValidCode((short) Status.AUTHENTICATED.getCode());
  382. if (userspace.getSpaceUU() == null) {
  383. throw new Exception("无uu号");
  384. }
  385. // userspace.setWebsite(getWebsite());
  386. // 设置企业用户
  387. addUsersByBusinessCode(userspace);
  388. // 设置默认应用
  389. addDefaultApp(userspace);
  390. userspaceService.save(userspace);
  391. return userspace;
  392. }
  393. private void addDefaultApp(Userspace userspace) throws Exception {
  394. if (userspace.getApps() == null) {
  395. userspace.setApps(new ArrayList<App>());
  396. }
  397. String url = "http://10.1.51.50:8080/api/userspace";
  398. ModelMap data = new ModelMap();
  399. data.put("businessCode", userspace.getBusinessCode());
  400. data.put("_operate", "getapp");
  401. HttpUtil.ResponseWrap res = HttpUtil.doGet(url, data);
  402. if (!res.isSuccess()) {
  403. throw new Exception(res.getContent());
  404. } else {
  405. ResultWrap result = JSON.parseObject(res.getContent(), ResultWrap.class);
  406. if (!result.isSuccess()) {
  407. throw new Exception(result.getErrMsg());
  408. } else if (result.getContent() != null){
  409. List<UserSpace> userSpaceList = JSON.parseArray(result.getContent().toString(), UserSpace.class);
  410. for (int i=0; i<userSpaceList.size(); i++) {
  411. App app = appService.findOne(userSpaceList.get(i).getAppId());
  412. if (app != null && !userspace.getApps().contains(app)) {
  413. userspace.getApps().add(app);
  414. }
  415. }
  416. App app = appService.findOne("sso");
  417. if (!userspace.getApps().contains(app)) {
  418. userspace.getApps().add(app);
  419. }
  420. app = appService.findOne("mall");
  421. if (!userspace.getApps().contains(app)) {
  422. userspace.getApps().add(app);
  423. }
  424. }
  425. }
  426. }
  427. private void addUsersByBusinessCode(Userspace userspace) throws Exception {
  428. if (userspace.getUsers() == null) {
  429. userspace.setUsers(new ArrayList<User>());
  430. }
  431. int pageNumber = 1;
  432. int pageSize = 20;
  433. com.uas.sso.support.Page<com.uas.account.entity.User> page;
  434. String url = "http://10.1.51.50:8080/api/user";
  435. url = url + "/findByBusinessCode";
  436. do {
  437. ModelMap data = new ModelMap();
  438. data.put("businessCode", userspace.getBusinessCode());
  439. data.put("appId", "b2b");
  440. data.put("pageNumber", pageNumber++);
  441. data.put("pageSize", pageSize);
  442. HttpUtil.ResponseWrap res = HttpUtil.doGet(url, data);
  443. if (!res.isSuccess()) {
  444. throw new Exception(res.getContent());
  445. } else {
  446. page = JSON.parseObject(res.getContent(), new TypeReference<com.uas.sso.support.Page<com.uas.account.entity.User>>() {});
  447. List<com.uas.account.entity.User> users = page.getContent();
  448. for (int i = 0; i < users.size(); i++) {
  449. User user = users.get(i).getDialectUID() == null ? userService.findByMobile(users.get(i).getUid()) : userService.findOne(Long.valueOf(users.get(i).getDialectUID()));
  450. if (user != null && !userspace.getUsers().contains(user)) {
  451. userspace.getUsers().add(user);
  452. }
  453. }
  454. }
  455. } while (page == null || !page.isLast());
  456. }
  457. private Long getSpaceUU(String businessCode, String name) throws Exception {
  458. if (StringUtils.isEmpty(businessCode)) {
  459. return null;
  460. }
  461. String url = "http://10.1.51.50:8080/api/userspace/info";
  462. if (!StringUtils.isEmpty(businessCode)) {
  463. businessCode = businessCode.trim();
  464. }
  465. if (!StringUtils.isEmpty(name)) {
  466. name = name.trim();
  467. }
  468. // url = url + "/" + URLEncoder.encode(businessCode, "UTF-8") + "/" + URLEncoder.encode(name, "UTF-8");
  469. HttpUtil.ResponseWrap res = null;
  470. ModelMap data = new ModelMap();
  471. data.put("businessCode", businessCode);
  472. data.put("name", name);
  473. res = HttpUtil.doGet(url, data);
  474. if(res.isSuccess() && !StringUtils.isEmpty(res.getContent())) {
  475. JSONObject jsonObject = JSON.parseObject(res.getContent());
  476. if (jsonObject.containsKey("dialectUID")) {
  477. return Long.valueOf(jsonObject.get("dialectUID").toString());
  478. }
  479. }
  480. return null;
  481. }
  482. public com.uas.sso.support.Page<UserSpaceDetail> getUserSpace(@RequestParam(defaultValue = "1") int pageNumber, @RequestParam(defaultValue = "20") int pageSize) {
  483. com.uas.sso.support.Page<UserSpaceDetail> page = null;
  484. String url = "http://10.1.51.50:8080/api/partners";
  485. if(!StringUtils.isEmpty(url)) {
  486. HttpUtil.ResponseWrap res = null;
  487. try {
  488. ModelMap data = new ModelMap("_operate", "getUserSpaces");
  489. data.put("pageNumber", Integer.valueOf(pageNumber));
  490. data.put("pageSize", Integer.valueOf(pageSize));
  491. res = HttpUtil.doGet(url, data);
  492. if(res.isSuccess()) {
  493. return JSON.parseObject(res.getContent(), new TypeReference<com.uas.sso.support.Page<UserSpaceDetail>>() {});
  494. }
  495. } catch (Exception e) {
  496. e.printStackTrace();
  497. }
  498. }
  499. return page;
  500. }
  501. /**
  502. * 从b2b获取erp企业秘钥
  503. * @return
  504. */
  505. @RequestMapping(value = "/saveAccessSecret/{businessCode}")
  506. public ModelMap saveAccessSecret(@PathVariable String businessCode) throws UnsupportedEncodingException {
  507. if (!StringUtils.isEmpty(businessCode)) {
  508. getAccessSecret(businessCode);
  509. }
  510. return success();
  511. }
  512. /**
  513. * 从b2b获取密钥
  514. * @param businessCode 营业执照号
  515. * @return
  516. */
  517. public String getAccessSecret(String businessCode) throws UnsupportedEncodingException {
  518. String url = "http://10.1.51.50:8090/platform-b2b";
  519. url = url + "/account/enterprise/info/" + URLEncoder.encode(businessCode, "UTF-8");
  520. String accessSecret = null;
  521. try {
  522. HttpUtil.ResponseWrap responseWrap = HttpUtil.doGet(url);
  523. if (responseWrap.isSuccess()) {
  524. JSONObject enterprise = parseObject(responseWrap.getContent());
  525. accessSecret = (String) enterprise.get("accessSecret");
  526. }
  527. } catch (Exception e) {
  528. e.printStackTrace();
  529. }
  530. return accessSecret;
  531. }
  532. /**
  533. * 写入日志
  534. * @param businessCode 营业执照号
  535. * @param accessSecret 密钥
  536. */
  537. private void writerToFile(String businessCode, String accessSecret) {
  538. FileWriter fw = null;
  539. try {
  540. //如果文件存在,则追加内容;如果文件不存在,则创建文件
  541. File f=new File("logs/userspace.log");
  542. fw = new FileWriter(f, true);
  543. } catch (IOException e) {
  544. e.printStackTrace();
  545. }
  546. PrintWriter pw = new PrintWriter(fw);
  547. pw.println(businessCode + "\t" + accessSecret);
  548. pw.flush();
  549. try {
  550. fw.flush();
  551. pw.close();
  552. fw.close();
  553. } catch (IOException e) {
  554. e.printStackTrace();
  555. }
  556. }
  557. @RequestMapping("/spaceName/unique")
  558. public ModelMap spaceNameUnique() {
  559. List<String> repeatName = userspaceService.findRepeatName();
  560. for (String name : repeatName) {
  561. List<Userspace> userspaces = userspaceService.findAllBySpaceName(name);
  562. for (int i=0; i<userspaces.size(); i++) {
  563. Userspace userspace = userspaces.get(i);
  564. userspace.setSpaceName(userspace.getSpaceName() + Const.REPEAT_SEPARATOR + (i + 1));
  565. userspaceService.save(userspace);
  566. }
  567. }
  568. return success();
  569. }
  570. /**
  571. * 从其他应用注册企业信息
  572. * @param userspace 企业信息
  573. */
  574. @RequestMapping(value = "/register/other", method = RequestMethod.POST)
  575. public ModelMap registerFromOther(Userspace userspace, User admin, String appId) {
  576. if (userspace == null || admin == null) {
  577. return error("参数错误");
  578. }
  579. userspace.setAdmin(admin);
  580. return success(userspaceService.register(userspace, appId));
  581. }
  582. /**
  583. * 通过id查询企业信息(方便平台搜索调用)
  584. *
  585. * @param ids
  586. * @return
  587. */
  588. @RequestMapping(params = "_operate=findAll")
  589. @ResponseBody
  590. public List<Userspace> findAll(String ids) {
  591. return userspaceService.findAll(ids);
  592. }
  593. @RequestMapping("/getWebsite")
  594. public String getWebsite() {
  595. String url = "http://10.1.51.50:8080/api/userspace/getWebsite";
  596. int pageNumber = 3;
  597. int pageSize = 20;
  598. com.uas.account.support.Page<MasterInfo> page = null;
  599. do {
  600. try {
  601. ModelMap data = new ModelMap();
  602. data.put("pageNumber", pageNumber++);
  603. data.put("pageSize", pageSize);
  604. HttpUtil.ResponseWrap responseWrap = HttpUtil.doGet(url, data);
  605. if (responseWrap.isSuccess()) {
  606. try {
  607. page = JSON.parseObject(responseWrap.getContent(), new TypeReference<com.uas.account.support.Page<MasterInfo>>() {
  608. });
  609. for (MasterInfo masterInfo : page.getContent()) {
  610. try {
  611. Userspace userspace = userspaceService.findByBusinessCode(masterInfo.getBusinessCode());
  612. if (userspace == null) {
  613. userspace = userspaceService.findBySpaceName(masterInfo.getName());
  614. }
  615. if (userspace == null && !StringUtils.isEmpty(masterInfo.getUu())) {
  616. userspace = userspaceService.findOne(Long.valueOf(masterInfo.getUu()));
  617. }
  618. if (userspace != null && masterInfo.getWebsite() != null) {
  619. userspace.setWebsite(masterInfo.getWebsite());
  620. userspaceService.save(userspace);
  621. }
  622. if (userspace == null && !StringUtils.isEmpty(masterInfo.getPlatform())) {
  623. userspace = new Userspace();
  624. userspace.setSpaceName(masterInfo.getName());
  625. userspace.setBusinessCode(masterInfo.getBusinessCode());
  626. userspace.setValidCode((short) Status.NOT_APPLYING.getCode());
  627. userspace.setWebsite(masterInfo.getWebsite());
  628. // 设置uu号
  629. Long maxUU = userspaceDao.findMaxUU();
  630. userspace.setSpaceUU(maxUU < 10050000L ? 10050000L : (maxUU + 1));
  631. userspace.setApps(new ArrayList<App>());
  632. userspace.getApps().add(appService.findOne(masterInfo.getPlatform()));
  633. userspace = userspaceService.save(userspace);
  634. System.out.println(String.format("%s\t%s\t%s", userspace.getSpaceName(), userspace.getBusinessCode(), userspace.getSpaceUU()));
  635. }
  636. if (CollectionUtils.isEmpty(userspace.getUsers())) {
  637. userspace.setUsers(new ArrayList<User>());
  638. }
  639. if (!StringUtils.isEmpty(masterInfo.getUu())) {
  640. continue;
  641. }
  642. com.uas.account.support.Page<com.uas.account.entity.User> userInfos = null;
  643. int pageNumber2 = 1;
  644. int pageSize2 = 20;
  645. do {
  646. userInfos = AccountUtils.findUsersByBusinessCode(userspace.getBusinessCode(), pageNumber2++, pageSize2);
  647. for (com.uas.account.entity.User userInfo : userInfos.getContent()) {
  648. try {
  649. User user = userService.findByMobile(userInfo.getUid());
  650. if (!userInfo.getAppId().equals("b2b") && !userspace.getUsers().contains(user)) {
  651. userspace.getUsers().add(user);
  652. }
  653. } catch (Exception e) {
  654. System.out.println(userInfo.getName() + "\t" + userInfo.getUid() + "\t" + e.getMessage());
  655. }
  656. }
  657. } while (userInfos == null || !userInfos.isLast());
  658. userspace = userspaceService.save(userspace);
  659. } catch (Exception e) {
  660. System.out.println((pageNumber-1) + "\t" + masterInfo.getName() + "\t" +e.getMessage());
  661. }
  662. }
  663. } catch (Exception e) {
  664. e.printStackTrace();
  665. }
  666. }
  667. } catch (Exception e) {
  668. e.printStackTrace();
  669. }
  670. } while (page == null || !page.isLast());
  671. return null;
  672. }
  673. @RequestMapping("/delete")
  674. public ModelMap delete() {
  675. List<Userspace> userspaces = userspaceDao.findtest();
  676. userspaceDao.delete(userspaces);
  677. return success();
  678. }
  679. @RequestMapping("/update")
  680. public ModelMap update () {
  681. Userspace userspace = userspaceDao.findOne(20000012L);
  682. userspace.setSpaceUU(10050072L);
  683. userspaceDao.save(userspace);
  684. userspace = userspaceDao.findOne(20000013L);
  685. userspace.setSpaceUU(10050073L);
  686. userspaceDao.save(userspace);
  687. return success();
  688. }
  689. }