HereWhiteServiceImpl.java 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.ym.service.Impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.ym.dao.HereWhiteDao;
  4. import com.ym.mec.common.exception.BizException;
  5. import com.ym.mec.util.http.HttpUtil;
  6. import com.ym.pojo.HereWhite;
  7. import com.ym.service.HereWhiteService;
  8. import com.ym.service.RoomService;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Isolation;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import java.util.Date;
  15. import java.util.HashMap;
  16. import java.util.Map;
  17. @Service
  18. public class HereWhiteServiceImpl implements HereWhiteService {
  19. @Value("${cn.rongcloud.hereWhite.url}")
  20. private String hereWhiteUrl;
  21. @Value("${cn.rongcloud.hereWhite.token}")
  22. private String hereWhiteToken;
  23. @Autowired
  24. private HereWhiteDao hereWhiteDao;
  25. @Autowired
  26. private RoomService roomService;
  27. @Override
  28. @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
  29. public HereWhite create(String name, Integer userNum,Integer courseScheduleId) throws Exception {
  30. courseScheduleId = roomService.getCurrentCourseId(courseScheduleId.toString());
  31. JSONObject json = new JSONObject();
  32. json.put("name",name);
  33. json.put("limit",userNum);
  34. json.put("mode","persistent");
  35. String url = "/room?token=" + hereWhiteToken;
  36. JSONObject jsonObject = JSONObject.parseObject(requestParam(json, url));
  37. if(jsonObject.getString("code").equals("200")){
  38. HereWhite hereWhite = hereWhiteDao.findByCourseScheduleId(courseScheduleId);
  39. if(hereWhite == null){
  40. JSONObject room = jsonObject.getJSONObject("msg").getJSONObject("room");
  41. hereWhite = new HereWhite();
  42. Date date = new Date();
  43. hereWhite.setCourseScheduleId(courseScheduleId);
  44. hereWhite.setName(room.getString("name"));
  45. hereWhite.setLimit(room.getInteger("limit"));
  46. hereWhite.setTeamId(room.getInteger("teamId"));
  47. hereWhite.setAdminId(room.getInteger("adminId"));
  48. hereWhite.setMode(room.getString("mode"));
  49. hereWhite.setTemplate(room.getString("template"));
  50. hereWhite.setRegion(room.getString("region"));
  51. hereWhite.setUuid(room.getString("uuid"));
  52. hereWhite.setRoomToken(jsonObject.getJSONObject("msg").getString("roomToken"));
  53. hereWhite.setUpdatedAt(date);
  54. hereWhite.setCreatedAt(date);
  55. hereWhiteDao.save(hereWhite);
  56. }
  57. return hereWhite;
  58. }else {
  59. throw new BizException(jsonObject.getString("msg"));
  60. }
  61. }
  62. @Override
  63. public HereWhite getByClassId(Integer courseScheduleId) {
  64. return hereWhiteDao.findByCourseScheduleId(courseScheduleId);
  65. }
  66. private String requestParam(JSONObject json,String url) throws Exception {
  67. Map<String, String> headers = new HashMap<>(1);
  68. headers.put("Content-Type","application/json");
  69. return HttpUtil.postForHttps(hereWhiteUrl + url, json.toJSONString(), headers);
  70. }
  71. }