AppMePageAction.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. package com.happy.action;
  2. import com.baidubce.model.User;
  3. import com.google.gson.Gson;
  4. import com.happy.Model.weixin.*;
  5. import com.happy.Until.*;
  6. import com.happy.Until.Enum.B;
  7. import com.happy.Until.Enum.DataType;
  8. import com.happy.common.http.HttpsClient;
  9. import com.happy.common.wx.WxUtil;
  10. import com.happy.constant.ResultStatusCode;
  11. import com.happy.dto.IPage;
  12. import com.happy.service.AppService;
  13. import com.happy.service.BookService;
  14. import com.happy.service.UserService;
  15. import com.opensymphony.xwork2.ActionSupport;
  16. import net.sf.json.JSONObject;
  17. import org.apache.struts2.ServletActionContext;
  18. import org.apache.struts2.interceptor.ServletRequestAware;
  19. import javax.annotation.Resource;
  20. import javax.servlet.http.HttpServletRequest;
  21. import javax.servlet.http.HttpServletResponse;
  22. import java.net.URLEncoder;
  23. import java.util.Date;
  24. import java.util.List;
  25. /**
  26. * 我的进去Action请求交互
  27. */
  28. public class AppMePageAction extends ActionSupport implements ServletRequestAware {
  29. private HttpServletRequest request;
  30. public HttpServletResponse response;
  31. @Resource
  32. public BookService bookService;
  33. @Resource
  34. public UserService userService;
  35. @Resource
  36. public AppService appService;
  37. private String contactUserName; // 常用联系人姓名
  38. private String contactUserIdNum; // 常用联系人身份证
  39. private String contactUserPhone; // 常用联系人电话
  40. public int page = 1; // 当前页
  41. public int rows = 5;// 每页显示的行数rows
  42. private String userId; // 用户id
  43. private String userName; // 用户姓名
  44. private String headPhoto; // 用户头像地址
  45. private String contactId; // 相关联系人的id
  46. public String status;
  47. private String code; // 授权前端给用户code
  48. private String userCode; // 第一次进来获取用户的code
  49. private String queryValue; // 首页查寻搜索关键词
  50. public HttpServletRequest getRequest() {
  51. return request;
  52. }
  53. public void setRequest(HttpServletRequest request) {
  54. this.request = request;
  55. }
  56. public void setServletRequest(HttpServletRequest request) {
  57. this.request = request;
  58. }
  59. public HttpServletResponse getResponse() {
  60. return response;
  61. }
  62. public void setResponse(HttpServletResponse response) {
  63. this.response = response;
  64. }
  65. public int getPage() {
  66. return page;
  67. }
  68. public void setPage(int page) {
  69. this.page = page;
  70. }
  71. public int getRows() {
  72. return rows;
  73. }
  74. public void setRows(int rows) {
  75. this.rows = rows;
  76. }
  77. public String getStatus() {
  78. return status;
  79. }
  80. public void setStatus(String status) {
  81. this.status = status;
  82. }
  83. /**
  84. * userId
  85. * 进入我的,查询订单列表
  86. * @return
  87. */
  88. public String getBookingList()
  89. {
  90. if (Func.checkNull(userId))
  91. return null;
  92. // 通过用户id查询所有订单列表数据
  93. StringBuilder querySql = new StringBuilder("");
  94. if (!Func.checkNull(userId)){
  95. querySql.append(" and create_userid = '").append(userId).append("' ");
  96. }
  97. ResponseUtil.writeJsonIPage(ServletActionContext.getResponse(),bookService.queryPage(querySql.toString(), page, rows));
  98. return null;
  99. }
  100. /**
  101. * userId 当前用户id,获取列表
  102. * 进入我的页面,跳转常用旅客列表
  103. */
  104. public void getUserContactList()
  105. {
  106. // 通过用户id查询所有订单列表数据
  107. if (Func.checkNull(userId))
  108. return;
  109. StringBuilder querySql = new StringBuilder("");
  110. if (!Func.checkNull(userId)){
  111. querySql.append(" and contact_id = '").append(userId).append("' ");
  112. }
  113. querySql.append(" and data_type = '").append(DataType.关联数据.toString()).append("' ");
  114. IPage listPage = userService.queryUserPage(querySql.toString(), page, rows); // 查询分页
  115. ResponseUtil.writeJsonIPage(ServletActionContext.getResponse(),listPage);
  116. }
  117. /**
  118. * 用户点击设置按钮,获取数据
  119. * 通过用户id查询用户信息
  120. */
  121. public void queryUsersById()
  122. {
  123. if (Func.checkNull(userId))
  124. return;
  125. Users users = userService.queryByUserId(userId);
  126. JSONObject resultJson = new JSONObject();
  127. resultJson.put(B.code, ResultStatusCode.OK.getStatus());
  128. resultJson.put(B.message,ResultStatusCode.OK.getMsg());
  129. resultJson.put(B.data,users);
  130. ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  131. }
  132. /**
  133. * 通过UserId进行更改或添加数据
  134. */
  135. public void updateContact()
  136. {
  137. if (Func.checkNull(contactId))
  138. return;
  139. JSONObject resultJson = new JSONObject();
  140. Users users = userService.queryByUserId(contactId);
  141. if (users == null) {
  142. resultJson.put(B.code,ResultStatusCode.BAD_REQUEST.getStatus());
  143. resultJson.put(B.message,"无此用户数据,请重新查询");
  144. ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  145. return;
  146. }
  147. users.setUser_name(contactUserName);
  148. // // 验证手机号码
  149. // if ( !Func.checkPhone(contactUserPhone))
  150. // {
  151. // resultJson.put(B.code,ResponseStatusEnum.FAILED.getStatus());
  152. // resultJson.put(B.message,"请确认手机号码");
  153. // ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  154. // return;
  155. // }
  156. // // 验证身份证
  157. // if (!Func.isCard(contactUserIdNum))
  158. // {
  159. // resultJson.put(B.code,ResponseStatusEnum.FAILED.getStatus());
  160. // resultJson.put(B.message,"请确认身份证");
  161. // ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  162. // return;
  163. // }
  164. users.setUser_phone(contactUserPhone);
  165. users.setCard_number(contactUserIdNum);
  166. userService.update(users);
  167. resultJson.put(B.code,ResultStatusCode.OK.getStatus());
  168. resultJson.put(B.message,ResultStatusCode.OK.getMsg());
  169. ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  170. }
  171. /**
  172. * 添加常用联系人数据
  173. */
  174. public void AddContact()
  175. {
  176. if (Func.checkNullOrEmpty(userId))
  177. return;
  178. // 相关联系人
  179. Users users = new Users();
  180. users.setContactId(Func.parseStr(userId));
  181. users.setContactName(userName);
  182. users.setCreate_time(TimeExchange.getDate());
  183. users.setDataType(DataType.关联数据.toString());
  184. users.setUser_name(contactUserName); // 相关联系人的名字
  185. users.setUser_phone(contactUserPhone); // 相关联系人的手机号码
  186. users.setCard_number(contactUserIdNum); // 相关联系人的身份证
  187. userService.insert(users);
  188. JSONObject resultJson = new JSONObject();
  189. resultJson.put(B.code,ResultStatusCode.OK.getStatus());
  190. resultJson.put(B.message,ResultStatusCode.OK.getMsg());
  191. ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  192. }
  193. /**
  194. * 用户点击保存,更新用户信息
  195. */
  196. public void updateUserInfo()
  197. {
  198. if (Func.checkNullOrEmpty(userId))
  199. return;
  200. JSONObject resultJson = new JSONObject();
  201. Users users = userService.queryByUserId(userId);
  202. if (users == null)
  203. {
  204. resultJson.put(B.code,ResultStatusCode.BAD_REQUEST.getStatus());
  205. resultJson.put(B.message,"查无此用户数据,请先授权!");
  206. ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  207. return;
  208. }
  209. users.setHeadPhoto(headPhoto);
  210. users.setUser_name(userName);
  211. users.setDataType(DataType.游客数据.toString());
  212. userService.update(users);
  213. resultJson.put(B.code,ResultStatusCode.OK.getStatus());
  214. resultJson.put(B.message,ResultStatusCode.OK.getMsg());
  215. ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  216. return;
  217. }
  218. /**
  219. * contactId
  220. * 用户可以删除自己相关联系人
  221. */
  222. public void delContact()
  223. {
  224. if (Func.checkNull(contactId))
  225. return;
  226. JSONObject resultJson = new JSONObject();
  227. userService.del(Func.parseInt(contactId));
  228. resultJson.put(B.code,ResultStatusCode.OK.getStatus());
  229. resultJson.put(B.message,ResultStatusCode.OK.getMsg());
  230. ResponseUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  231. }
  232. /**
  233. * 判断是否有当前用户(加访问记录)
  234. */
  235. public String isHaveUser()
  236. {
  237. if (Func.checkNull(this.code))
  238. return null;
  239. String OPEN_ID = "";
  240. JSONObject resultJson = new JSONObject();
  241. // 此处授权后的回调地址,主要获取token和openid
  242. String requestUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="
  243. + WeiXinUtil.appid_c
  244. + "&secret="
  245. + WeiXinUtil.screct_c
  246. + "&code="
  247. + this.getCode() + "&grant_type=authorization_code";
  248. // String json = HttpUtils.get(requestUrl);
  249. String json = HttpsClient.sendPost(requestUrl, "");
  250. Wechat_userinfo result = new Gson().fromJson(json, Wechat_userinfo.class);
  251. OPEN_ID = result.getOpenid();
  252. if (Func.checkNull(OPEN_ID))
  253. {
  254. resultJson.put(B.code,ResultStatusCode.BAD_REQUEST.getStatus());
  255. resultJson.put(B.message,"未获取到OpenId");
  256. ResponseUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  257. }
  258. /*
  259. * 手机号前端过来,昵称、省份、性别等其他信息已保存的result中,
  260. * 查询用户openid是否存在,存在就返回信息给前端,不存在就保存到数据库
  261. * */
  262. Users users = userService.queryByOpenid(OPEN_ID);
  263. if (users == null)
  264. {
  265. resultJson.put(B.code,ResultStatusCode.BAD_REQUEST.getStatus());
  266. resultJson.put(B.message," 当前用户未授权");
  267. resultJson.put(B.data,users);
  268. ResponseUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  269. return null;
  270. }
  271. resultJson.put(B.code,ResultStatusCode.OK.getStatus());
  272. resultJson.put(B.message," 当前用户已授权");
  273. resultJson.put(B.data,users);
  274. ResponseUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  275. return null;
  276. }
  277. /**
  278. * 用户登录小程序授权
  279. */
  280. public void authorizationUser()
  281. {
  282. if (Func.checkNull(this.code))
  283. return;
  284. String OPEN_ID = "";
  285. JSONObject resultJson = new JSONObject();
  286. CodeEntity codeEntity = appService.getCodeInfo(code);
  287. OPEN_ID = codeEntity.getOpenid();
  288. System.out.println(OPEN_ID);
  289. if (Func.checkNull(OPEN_ID))
  290. {
  291. resultJson.put(B.code,ResultStatusCode.BAD_REQUEST.getStatus());
  292. resultJson.put(B.message,"未获取到OpenId");
  293. ResponseUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  294. }
  295. /*
  296. * 手机号前端过来,昵称、省份、性别等其他信息已保存的result中,
  297. * 查询用户openid是否存在,存在就返回信息给前端,不存在就保存到数据库
  298. * */
  299. Users users = userService.queryByOpenid(OPEN_ID);
  300. if (users == null)
  301. {
  302. users = new Users();
  303. // 确定默认用户名,默认用户头像
  304. String userName = Func.parseStr(WxUtil.createDefaultUserName());
  305. users.setUser_name(userName);
  306. users.setHeadPhoto("http://172.16.20.88:80/mhotel/download/orderS.png");
  307. users.setOpenid(OPEN_ID);
  308. users.setCreate_time(DateUtil.getFormatPaternDate(new Date()));
  309. users.setDataType(DataType.游客数据.toString());
  310. userService.insert(users); // 写入用户数据
  311. users = userService.queryByOpenid(OPEN_ID);
  312. }
  313. resultJson.put(B.code,ResultStatusCode.OK.getStatus());
  314. resultJson.put(B.message,ResultStatusCode.OK.getMsg());
  315. resultJson.put(B.data,users);
  316. ResponseUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  317. return ;
  318. }
  319. public String getUserCode() {
  320. return userCode;
  321. }
  322. public void setUserCode(String userCode) {
  323. this.userCode = userCode;
  324. }
  325. public String getQueryValue() {
  326. return queryValue;
  327. }
  328. public void setQueryValue(String queryValue) {
  329. this.queryValue = queryValue;
  330. }
  331. public String getContactUserName() {
  332. return contactUserName;
  333. }
  334. public void setContactUserName(String contactUserName) {
  335. this.contactUserName = contactUserName;
  336. }
  337. public String getContactUserIdNum() {
  338. return contactUserIdNum;
  339. }
  340. public void setContactUserIdNum(String contactUserIdNum) {
  341. this.contactUserIdNum = contactUserIdNum;
  342. }
  343. public String getContactUserPhone() {
  344. return contactUserPhone;
  345. }
  346. public void setContactUserPhone(String contactUserPhone) {
  347. this.contactUserPhone = contactUserPhone;
  348. }
  349. public String getUserId() {
  350. return userId;
  351. }
  352. public void setUserId(String userId) {
  353. this.userId = userId;
  354. }
  355. public String getUserName() {
  356. return userName;
  357. }
  358. public void setUserName(String userName) {
  359. this.userName = userName;
  360. }
  361. public String getContactId() {
  362. return contactId;
  363. }
  364. public void setContactId(String contactId) {
  365. this.contactId = contactId;
  366. }
  367. public String getHeadPhoto() {
  368. return headPhoto;
  369. }
  370. public void setHeadPhoto(String headPhoto) {
  371. this.headPhoto = headPhoto;
  372. }
  373. public String getCode() {
  374. return code;
  375. }
  376. public void setCode(String code) {
  377. this.code = code;
  378. }
  379. }