Build.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. package com.happy.action;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.google.gson.Gson;
  4. import com.google.gson.reflect.TypeToken;
  5. import com.happy.Model.Build_elec;
  6. import com.happy.Model.Price;
  7. import com.happy.Until.ResUtil;
  8. import com.happy.Until.ResponseUtil;
  9. import com.happy.service.ConsumeService;
  10. import com.happy.service.ElecService;
  11. import com.happy.service.RechargeService;
  12. import com.happy.service.UserService;
  13. import com.opensymphony.xwork2.ActionSupport;
  14. import net.sf.json.JSONArray;
  15. import org.apache.struts2.ServletActionContext;
  16. import org.apache.struts2.interceptor.ServletRequestAware;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.data.redis.core.RedisTemplate;
  19. import testExport.DataClient;
  20. import javax.annotation.Resource;
  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.servlet.http.HttpServletResponse;
  23. import java.math.BigDecimal;
  24. import java.text.SimpleDateFormat;
  25. import java.util.*;
  26. public class Build extends ActionSupport implements ServletRequestAware {
  27. private HttpServletRequest request;
  28. public HttpServletResponse response;
  29. public String roomSelect;
  30. @Resource
  31. public ElecService elecService;
  32. @Resource
  33. public UserService userService;
  34. @Resource
  35. public ConsumeService consumeService;
  36. @Resource
  37. public RechargeService rechargeService;
  38. @Autowired
  39. public RedisTemplate redisTemplate;
  40. public String getRoomSelect() {
  41. return roomSelect;
  42. }
  43. public void setRoomSelect(String roomSelect) {
  44. this.roomSelect = roomSelect;
  45. }
  46. public HttpServletRequest getRequest() {
  47. return request;
  48. }
  49. public void setRequest(HttpServletRequest request) {
  50. this.request = request;
  51. }
  52. public void setServletRequest(HttpServletRequest request) {
  53. this.request = request;
  54. }
  55. public HttpServletResponse getResponse() {
  56. return response;
  57. }
  58. public void setResponse(HttpServletResponse response) {
  59. this.response = response;
  60. }
  61. // 楼栋信息接口
  62. public String bd_elec() throws Exception {
  63. ArrayList<JSONObject> aj_school = new ArrayList<>();
  64. List<Build_elec> schools = elecService.querySchool();
  65. for (int i=0; i<schools.size(); i++) {
  66. JSONObject resultJson1 = new JSONObject();
  67. resultJson1.put("school", schools.get(i).getSchool());
  68. List<Build_elec> builds = elecService.queryBuild(schools.get(i).getSchool());
  69. ArrayList<JSONObject> aj_build = new ArrayList();
  70. //resultJson1.put("builds", aj2);
  71. for (int j=0; j<builds.size(); j++){
  72. JSONObject resultJson2 = new JSONObject();
  73. resultJson2.put("building", builds.get(j).getBuild());
  74. List<Build_elec> floors = elecService.queryFloors(
  75. schools.get(i).getSchool(), builds.get(j).getBuild());
  76. ArrayList<JSONObject> aj_floor = new ArrayList();
  77. for (int k=0; k<floors.size(); k++){
  78. JSONObject resultJson3 = new JSONObject();
  79. resultJson3.put("floor", floors.get(k).getFloors());
  80. List<Build_elec> dom = elecService.queryDom(
  81. schools.get(i).getSchool(), builds.get(j).getBuild(), floors.get(k).getFloors());
  82. ArrayList adom = new ArrayList();
  83. for (int m=0; m<dom.size(); m++){
  84. adom.add(dom.get(m).getDom());
  85. }
  86. resultJson3.put("rooms", adom);
  87. aj_floor.add(resultJson3);
  88. }
  89. resultJson2.put("floors", aj_floor);
  90. aj_build.add(resultJson2);
  91. }
  92. resultJson1.put("builds", aj_build);
  93. aj_school.add(resultJson1);
  94. }
  95. String resultJson = JSONArray.fromObject(aj_school).toString();
  96. try {
  97. redisTemplate.delete("build");
  98. }catch (Exception e){
  99. System.out.println("build已清");
  100. }
  101. redisTemplate.opsForValue().set("build", resultJson);
  102. ResUtil.write("绑定成功", ServletActionContext.getResponse());
  103. return null;
  104. }
  105. // 返回楼栋信息
  106. public String elec() throws Exception {
  107. JSONObject resultJson = new JSONObject();
  108. try {
  109. String data = (String) redisTemplate.opsForValue().get("build");
  110. resultJson.put("mess", "返回成功");
  111. resultJson.put("data", data);
  112. }catch (Exception e){
  113. resultJson.put("mess", "获取数据异常");
  114. }
  115. ResUtil.write(resultJson, ServletActionContext.getResponse());
  116. return null;
  117. }
  118. // 查询剩余电量
  119. public String overElec() throws Exception {
  120. JSONObject resultJson = new JSONObject();
  121. if (roomSelect==null){
  122. resultJson.put("mess", "请选择房间号!");
  123. ResUtil.write(resultJson, ServletActionContext.getResponse());
  124. return null;
  125. }
  126. String school = roomSelect.substring(0, 5);
  127. String room = roomSelect.substring(5);
  128. List<Build_elec> spl = elecService.queryUser_id(school, room);
  129. if (spl == null){
  130. resultJson.put("mess", "未查询到户号!");
  131. ResUtil.write(resultJson, ServletActionContext.getResponse());
  132. return null;
  133. }
  134. String user_id = spl.get(0).getUser_id().replace("\n","").replace("\r","");
  135. DataClient.getToken();
  136. JSONObject jb = DataClient.getAccountInfo(user_id);
  137. if (jb == null){
  138. resultJson.put("mess", "未查询到户号!");
  139. ResUtil.write(resultJson, ServletActionContext.getResponse());
  140. return null;
  141. }
  142. Object data = jb.get("data");
  143. Gson gson=new Gson();
  144. HashMap<String, String> userMoney = gson.fromJson(data.toString(), new TypeToken<HashMap<String, String>>(){}.getType());
  145. double elcMoney = Double.parseDouble(userMoney.get("usablemoney"));
  146. Double amount = 0.00;
  147. List<Price> elcPrice = consumeService.water_price("电费");
  148. amount = elcMoney / elcPrice.get(0).getPrice() ;
  149. System.out.println(amount);
  150. JSONObject j2 = new JSONObject();
  151. j2.put("mess", "0");
  152. j2.put("amount", amount);
  153. ResUtil.write(j2, ServletActionContext.getResponse());
  154. return null;
  155. }
  156. // 查询每个月电费
  157. public String getMonthBill() throws Exception {
  158. JSONObject resultJson = new JSONObject();
  159. if (roomSelect==null){
  160. resultJson.put("mess", "请选择房间号!");
  161. ResUtil.write(resultJson, ServletActionContext.getResponse());
  162. return null;
  163. }
  164. String school = roomSelect.substring(0, 5);
  165. String room = roomSelect.substring(5);
  166. List<Build_elec> spl = elecService.queryUser_id(school, room);
  167. if (spl == null){
  168. resultJson.put("mess", "未查询到户号!");
  169. ResUtil.write(resultJson, ServletActionContext.getResponse());
  170. return null;
  171. }
  172. String user_id = spl.get(0).getUser_id();
  173. DataClient.getToken();
  174. List<String> dateList = new ArrayList<>();
  175. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
  176. for (int i=0; i>-12; i--){
  177. Calendar calendar = Calendar.getInstance();
  178. calendar.add(Calendar.MONTH,i);
  179. dateList.add(simpleDateFormat.format(calendar.getTime()));
  180. }
  181. String da = JSONArray.fromObject(dateList).toString();
  182. JSONObject json = DataClient.getMonthBill(user_id, da);
  183. Gson gson=new Gson();
  184. Object data=null;
  185. try {
  186. data = json.get("data");
  187. }catch (Exception e){
  188. resultJson.put("mess", "未查询到数据");
  189. ResUtil.write(resultJson, ServletActionContext.getResponse());
  190. return null;
  191. }
  192. List<HashMap<String, String>> user_elc = gson.fromJson(data.toString(), new TypeToken<List<HashMap<String, String>>>(){}.getType());
  193. if (user_elc==null){
  194. resultJson.put("mess", "未查询到数据");
  195. return null;
  196. }
  197. ArrayList<String> use_elc = new ArrayList<>();
  198. ArrayList<String> date_time = new ArrayList<>();
  199. for (int i=0; i<user_elc.size(); i++){
  200. use_elc.add(user_elc.get(i).get("zongPower"));
  201. date_time.add(user_elc.get(i).get("dataTime"));
  202. }
  203. resultJson.put("use_elc", use_elc);
  204. resultJson.put("date_time", date_time);
  205. resultJson.put("mess", "0");
  206. ResUtil.write(resultJson, ServletActionContext.getResponse());
  207. return null;
  208. }
  209. }