Build.java 8.7 KB

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