WorkflowAction.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. package com.happy.action;
  2. import com.google.gson.Gson;
  3. import com.google.gson.reflect.TypeToken;
  4. import com.happy.Model.*;
  5. import com.happy.Until.GetHttpParam;
  6. import com.happy.Until.ResUtil;
  7. import com.happy.Until.UUIDUtil;
  8. import com.happy.dto.IPage;
  9. import com.happy.service.*;
  10. import com.opensymphony.xwork2.ActionSupport;
  11. import net.sf.json.JSONObject;
  12. import org.apache.struts2.ServletActionContext;
  13. import org.apache.struts2.interceptor.ServletRequestAware;
  14. import javax.annotation.Resource;
  15. import javax.servlet.http.HttpServletRequest;
  16. import javax.servlet.http.HttpServletResponse;
  17. import java.io.File;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. public class WorkflowAction extends ActionSupport implements ServletRequestAware {
  21. private HttpServletRequest request;
  22. public HttpServletResponse response;
  23. public String id;//流程id
  24. public String hotelId;//民宿id
  25. public Integer status; //状态 1、正在审批 2、审批通过3、拒绝
  26. public Integer page = 1; // 当前页
  27. public Integer rows = 10;// 每页显示的行数rows
  28. @Resource
  29. public ArticleTweetService articleTweetService;
  30. @Resource
  31. public WorkflowService workflowService;
  32. @Resource
  33. public FileService fileService;
  34. @Resource
  35. public HotelService hotelService;
  36. @Resource(name = "BookingCommentService")
  37. private BookingCommentService bookingCommentService;
  38. public HttpServletRequest getRequest() {
  39. return request;
  40. }
  41. public void setRequest(HttpServletRequest request) {
  42. this.request = request;
  43. }
  44. public void setServletRequest(HttpServletRequest request) {
  45. this.request = request;
  46. }
  47. public HttpServletResponse getResponse() {
  48. return response;
  49. }
  50. public void setResponse(HttpServletResponse response) {
  51. this.response = response;
  52. }
  53. /**
  54. * 民宿审批接口
  55. * @return
  56. */
  57. public String workflow(){
  58. JSONObject resultJson = new JSONObject();
  59. Gson gson = new Gson();
  60. com.alibaba.fastjson.JSONObject json = GetHttpParam.getRequestParameters(request);
  61. if (json == null) {
  62. resultJson.put("message", "请传入参数");
  63. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  64. return null;
  65. }
  66. Workflow workflow = new Workflow();
  67. try{
  68. workflow = gson.fromJson(json.toString(), new TypeToken<Workflow>() {}.getType());
  69. if(workflow==null){
  70. resultJson.put("message", "数据为空");
  71. resultJson.put("code", 500);
  72. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  73. return null;
  74. }
  75. if(workflow.getId()==null){
  76. resultJson.put("message", "流程id不能为空!");
  77. resultJson.put("code", 500);
  78. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  79. return null;
  80. }
  81. if(workflow.getStatus()==null){
  82. resultJson.put("message", "流程状态不能为空!");
  83. resultJson.put("code", 500);
  84. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  85. return null;
  86. }
  87. if(workflow.getType()==null){
  88. resultJson.put("message", "流程类型不能为空!");
  89. resultJson.put("code", 500);
  90. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  91. return null;
  92. }
  93. if(workflow.getWorkflowRemark()==null){
  94. resultJson.put("message", "审批备注不能为空!");
  95. resultJson.put("code", 500);
  96. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  97. return null;
  98. }
  99. int m = 0;
  100. Workflow workflow1 = workflowService.queryById(workflow.getId());
  101. workflow1.setWorkflowRemark(workflow.getWorkflowRemark());//审批备注
  102. workflow1.setWorkflowDate(UUIDUtil.getNewDate());//审批时间
  103. workflow1.setWorkflowName("admin");//审批人名称
  104. switch (workflow.getType()){
  105. //民宿信息修改流程审批
  106. case 1 : {
  107. if (workflow.getStatus() == 2){//审批通过
  108. // 新的酒店图片
  109. List<FileInfo> fileInfoList = fileService.queryList("and link_id ='"+workflow1.getId()+"'");
  110. if (fileInfoList != null && fileInfoList.size() > 0){
  111. fileService.delLinkFile(String.valueOf(workflow1.getLinkId()));
  112. fileInfoList.forEach(file -> {
  113. file.setLinkId(workflow1.getLinkId());
  114. fileService.updateFile(file);
  115. });
  116. }
  117. workflow1.setStatus(2);//审批通过
  118. //民宿信息修改
  119. Hotel hotel = hotelService.getByManagerId(Integer.parseInt(workflow1.getLinkId()));
  120. boolean isUpdateHotel = false;
  121. if (workflow1.getCoverImg() != null && !"".equals(workflow1.getCoverImg())){
  122. hotel.setCoverImg(workflow1.getCoverImg());
  123. isUpdateHotel = true;
  124. }
  125. if (workflow1.getRemark() != null && !"".equals(workflow1.getRemark())){
  126. hotel.setRemark(workflow1.getRemark());
  127. isUpdateHotel = true;
  128. }
  129. if (isUpdateHotel){
  130. hotelService.updateHotel(hotel);
  131. }
  132. }else {//审批拒绝
  133. workflow1.setStatus(3); //拒绝审批
  134. }
  135. m = workflowService.update(workflow1);
  136. } break;
  137. case 2: {
  138. BookingComment bookingComment = bookingCommentService.queryById(workflow1.getLinkId());
  139. if (workflow.getStatus() == 2){//审批通过
  140. workflow1.setStatus(2);
  141. bookingComment.setStatus("1");
  142. }else {//审批拒绝
  143. workflow1.setStatus(3);
  144. bookingComment.setStatus("3");
  145. }
  146. int n = bookingCommentService.update(bookingComment);
  147. m = workflowService.update(workflow1);
  148. } break;
  149. //region
  150. //2023-10-11 A-jax添加推文的审批操作
  151. case 3: {
  152. ArticleTweet articleTweet = articleTweetService.queryArticleById(workflow1.getLinkId());
  153. workflow1.setStatus(workflow.getStatus());
  154. articleTweet.setApprove(workflow.getStatus());
  155. int n = articleTweetService.updateArticleApprove(articleTweet);
  156. m = workflowService.update(workflow1);
  157. }
  158. //endregion
  159. }
  160. if (m > 0) {
  161. resultJson.put("message", "审批成功");
  162. resultJson.put("code", 200);
  163. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  164. return null;
  165. } else {
  166. resultJson.put("message", "审批失败");
  167. resultJson.put("code", 502);
  168. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  169. return null;
  170. }
  171. }catch (Exception e){
  172. e.printStackTrace();
  173. resultJson.put("message", "未知异常:"+ e);
  174. resultJson.put("code", 205);
  175. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  176. }
  177. return null;
  178. }
  179. public String queryById(){
  180. JSONObject resultJson = new JSONObject();
  181. if (id == null){
  182. resultJson.put("message", "流程id不能为空!");
  183. resultJson.put("code", 500);
  184. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  185. return null;
  186. }
  187. Workflow workflow = workflowService.queryById(id);
  188. if (workflow != null){
  189. //民宿信息维护流程
  190. List<FileInfo> fileInfoList;
  191. if (workflow.getStatus() == 2 && workflow.getType() == 1){
  192. fileInfoList = fileService.queryList("and link_id = '"+workflow.getLinkId()+"'");
  193. }
  194. //region
  195. //2023-10-11 A-jax添加推文流程数据获取逻辑
  196. else if(workflow.getType() == 3){
  197. fileInfoList = articleTweetService.queryList("and link_id = '"+workflow.getLinkId()+"'");
  198. }
  199. //endregion
  200. else {
  201. fileInfoList = fileService.queryList("and link_id = '"+workflow.getId()+"'");
  202. }
  203. workflow.setFileInfoList(fileInfoList);
  204. resultJson.put("message", "查询成功");
  205. resultJson.put("code", 200);
  206. resultJson.put("data", workflow);
  207. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  208. return null;
  209. }
  210. resultJson.put("message", "未查询到流程信息!");
  211. resultJson.put("code", 205);
  212. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  213. return null;
  214. }
  215. /**
  216. * 商户查看接口
  217. */
  218. public String hotelWorkflowList(){
  219. JSONObject resultJson = new JSONObject();
  220. StringBuilder s1 = new StringBuilder("");
  221. if (id == null){
  222. resultJson.put("message", "酒店id不能为空!");
  223. resultJson.put("code", 500);
  224. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  225. return null;
  226. }
  227. s1.append(" and a.link_id = ").append(id).append(" ");
  228. if (status != null){
  229. s1.append(" and a.status = ").append(status).append(" ");
  230. }
  231. IPage<Workflow> list = workflowService.queryList(s1.toString(), page, rows);
  232. resultJson.put("message", "查询成功");
  233. resultJson.put("code", 200);
  234. resultJson.put("data", list);
  235. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  236. return null;
  237. }
  238. /**
  239. * 管理端代办接口
  240. */
  241. public String queryWorkflow(){
  242. JSONObject resultJson = new JSONObject();
  243. StringBuilder s1 = new StringBuilder("");
  244. s1.append(" and a.status = 1 ");
  245. IPage<Workflow> list = workflowService.queryList(s1.toString(), page, rows);
  246. resultJson.put("message", "查询成功");
  247. resultJson.put("code", 200);
  248. resultJson.put("data", list);
  249. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  250. return null;
  251. }
  252. /**
  253. * 管理端已审核接口
  254. */
  255. public String queryApprovedWorkflow(){
  256. JSONObject resultJson = new JSONObject();
  257. StringBuilder s1 = new StringBuilder("");
  258. s1.append(" and a.status != 1 ");
  259. IPage<Workflow> list = workflowService.queryList(s1.toString(), page, rows);
  260. resultJson.put("message", "查询成功");
  261. resultJson.put("code", 200);
  262. resultJson.put("data", list);
  263. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  264. return null;
  265. }
  266. }