TemplateFlowInfoHandler.java 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. package com.iamberry.wechat.handles.flow;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.servlet.http.HttpServletRequest;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11. import org.springframework.web.servlet.ModelAndView;
  12. import com.iamberry.wechat.core.entity.banner.MessageDTO;
  13. import com.iamberry.wechat.core.entity.drp.PlaceRoleInfo;
  14. import com.iamberry.wechat.core.entity.flow.TemplateFlowInfo;
  15. import com.iamberry.wechat.core.entity.flow.TemplateInfo;
  16. import com.iamberry.wechat.core.entity.product.ProductType;
  17. import com.iamberry.wechat.face.drp.DrpRoleInfoService;
  18. import com.iamberry.wechat.face.flow.TemplateFlowInfoService;
  19. import com.iamberry.wechat.face.flow.TemplateInfoService;
  20. import com.iamberry.wechat.face.porduct.ProductTypeService;
  21. @Deprecated
  22. @Controller
  23. @RequestMapping("/admin/templateFlow")
  24. public class TemplateFlowInfoHandler {
  25. @Autowired
  26. private TemplateInfoService templateInfoService;
  27. @Autowired
  28. private TemplateFlowInfoService templateFlowInfoService;
  29. @Autowired
  30. private DrpRoleInfoService drpRoleInfoService;
  31. @Autowired
  32. private ProductTypeService productTypeService;
  33. /**
  34. * 跳转到添加节点的页面
  35. * @param request
  36. * @return
  37. * @throws Exception
  38. */
  39. @RequestMapping("/addTemplateFlow")
  40. public ModelAndView addTemplateFlow(HttpServletRequest request) throws Exception {
  41. ModelAndView mv = new ModelAndView("admin/flow/addTemplateFlowInfo");
  42. // 模板ID
  43. String templateId = request.getParameter("templateId");
  44. TemplateInfo templateInfo = new TemplateInfo();
  45. List<PlaceRoleInfo> roleList = drpRoleInfoService.getDrpRoleListByState();
  46. if (null != templateId && !"".equals(templateId)) {
  47. StringBuffer templateName = new StringBuffer();
  48. templateInfo.setTemplateId(Integer.parseInt(templateId));
  49. templateInfo.setState(1);
  50. templateInfo = templateInfoService.getTemplateInfoById(templateInfo);
  51. if (templateInfo == null) {
  52. mv = new ModelAndView("admin/msg/msg");
  53. mv.addObject("msgObj", new MessageDTO(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  54. return mv;
  55. }
  56. for (PlaceRoleInfo placeRoleInfo : roleList) {
  57. templateName.append(placeRoleInfo.getRoleId() + ":" + placeRoleInfo.getRoleName() + "+");
  58. }
  59. templateInfo.setTemplateName(templateName.toString());
  60. }
  61. mv.addObject("templateInfo", templateInfo);
  62. // 只显示当前不存在的
  63. List<ProductType> types = productTypeService.getAll();
  64. List<Integer> integers = templateFlowInfoService.getTypeId(Integer.parseInt(templateId));
  65. if (integers != null && integers.size() != 0) {
  66. for (Integer integer : integers) {
  67. check(integer, types);
  68. }
  69. }
  70. mv.addObject("typeList", types);
  71. return mv;
  72. }
  73. /**
  74. * 判断types中是否存在typeId,如果存在,删除types中对应数据
  75. * @param typeId
  76. * @param addList
  77. * @param types
  78. */
  79. public void check(int typeId, List<ProductType> types) {
  80. for (ProductType productType : types) {
  81. if (typeId == productType.getTypeId().intValue()) {
  82. types.remove(productType);
  83. return;
  84. }
  85. }
  86. }
  87. @RequestMapping("/addTemplateFlowInfo")
  88. public ModelAndView addTemplateFlowInfo(HttpServletRequest request) throws Exception {
  89. ModelAndView mv = new ModelAndView("admin/msg/msg");
  90. List<TemplateFlowInfo> flowList = getTemplateFlowInfo(request);
  91. Integer num = templateFlowInfoService.addTemplateFlowList(flowList);
  92. if (num > 0) {
  93. mv.addObject("msgObj", new MessageDTO(true, "恭喜您,操作成功", "返利节点已添加成功,刷新即可!"));
  94. } else {
  95. mv.addObject("msgObj", new MessageDTO(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按规定填写数据!"));
  96. }
  97. return mv;
  98. }
  99. //封装返利金额添加入返利节点表中
  100. public List<TemplateFlowInfo> getTemplateFlowInfo(HttpServletRequest request) throws Exception{
  101. // 产品类型
  102. String[] types = request.getParameterValues("productType");
  103. if (types == null || types.length == 0) {
  104. return null;
  105. }
  106. // 待插入的数据
  107. List<TemplateFlowInfo> flowList = new ArrayList<TemplateFlowInfo>();
  108. // 返利层级
  109. int num = 0;
  110. String count = request.getParameter("count");
  111. String templateId = request.getParameter("templateId");
  112. if (null == templateId || "".equals(templateId)) {
  113. return null;
  114. }
  115. if (null != count && !"".equals(count)) {
  116. num = Integer.parseInt(count);
  117. }
  118. // 所有的角色
  119. List<PlaceRoleInfo> roleList = drpRoleInfoService.getDrpRoleListByState();
  120. int flowType = 0;
  121. for (String string : types) {
  122. for (int i = 0;i < num;i++) {
  123. String templateName = request.getParameter("templateName"+i+1);
  124. for (PlaceRoleInfo placeRoleInfo : roleList) {
  125. if (templateName.equals(placeRoleInfo.getRoleId().toString())) {
  126. flowType = placeRoleInfo.getRoleType();
  127. }
  128. }
  129. for (int j = 2;j <= 4;j++) {
  130. if (num + 2 - i - j > 0) {
  131. String flow = request.getParameter("flow"+i+j);
  132. TemplateFlowInfo flowInfo = new TemplateFlowInfo();
  133. flowInfo.setTemplateId(Integer.parseInt(templateId));
  134. //页面金额是纵坐标为2开始的,所以在计算层级的时候要加2
  135. flowInfo.setFlowLevel(num + 2 - i - j);
  136. flowInfo.setFlowSkipStep(1);
  137. flowInfo.setFlowMoney((int)(Double.parseDouble(flow)*100));
  138. flowInfo.setFlowRoleId(Integer.parseInt(templateName));
  139. flowInfo.setFlowType(flowType);
  140. flowInfo.setFlowState(1);
  141. flowInfo.setFlowNo(i + "," + j);
  142. flowList.add(flowInfo);
  143. flowInfo.setFlowProductType(Integer.parseInt(string));
  144. }
  145. }
  146. }
  147. }
  148. return flowList;
  149. }
  150. /**
  151. *
  152. * @param request
  153. * @return
  154. * @throws Exception
  155. */
  156. @RequestMapping("/updateTemplateFlow")
  157. public ModelAndView updateTemplateFlow(HttpServletRequest request) throws Exception {
  158. ModelAndView mv = new ModelAndView("admin/flow/updateTemplateFlowInfo");
  159. String templateId = request.getParameter("templateId");
  160. if (null == templateId || "".equals(templateId)) {
  161. return null;
  162. }
  163. mv.addObject("templateId", templateId);
  164. // 只显示当前不存在的
  165. List<ProductType> types = productTypeService.getAll();
  166. List<Integer> integers = templateFlowInfoService.getTypeId(Integer.parseInt(templateId));
  167. List<ProductType> list = new ArrayList<ProductType>();
  168. // 只显示当前存在的
  169. for (Integer integer : integers) {
  170. list.add(checkE(integer, types));
  171. }
  172. mv.addObject("types", list);
  173. return mv;
  174. }
  175. /**
  176. * 判断当前typeId是否存在,如果存在返回
  177. * @param typeId
  178. * @param types
  179. */
  180. public ProductType checkE(int typeId, List<ProductType> types) {
  181. for (ProductType productType : types) {
  182. if (productType.getTypeId().intValue() == typeId) {
  183. types.remove(productType);
  184. return productType;
  185. }
  186. }
  187. return null;
  188. }
  189. @ResponseBody
  190. @RequestMapping("/getFlowInfo")
  191. public Map<String,Object> getFlowInfo(HttpServletRequest request) {
  192. String templateId = request.getParameter("templateId");
  193. if (null == templateId || "".equals(templateId)) {
  194. return null;
  195. }
  196. List<TemplateFlowInfo> flowList = templateFlowInfoService.getFlowInfoListByTemplateId(Integer.parseInt(templateId));
  197. if (null == flowList || flowList.size() <= 0) {
  198. return null;
  199. }
  200. StringBuilder templateName = new StringBuilder();
  201. List<PlaceRoleInfo> roleList = drpRoleInfoService.getDrpRoleListByState();
  202. //获取所有角色信息,并将其拼接为字符串
  203. for (PlaceRoleInfo placeRoleInfo : roleList) {
  204. templateName.append(placeRoleInfo.getRoleId() + ":" + placeRoleInfo.getRoleName() + "+");
  205. }
  206. Map<String,Object> flowInfoMap = new HashMap<String,Object>();
  207. flowInfoMap.put("templateName", templateName.toString());
  208. // 查询
  209. TemplateInfo templateInfo = new TemplateInfo();
  210. templateInfo.setTemplateId(Integer.parseInt(templateId));
  211. templateInfo = templateInfoService.getTemplateInfoById(templateInfo);
  212. flowInfoMap.put("count", templateInfo.getCount());
  213. // 根据产品类型分段
  214. List<Integer> integers = templateFlowInfoService.getTypeId(Integer.parseInt(templateId));
  215. for (Integer integer : integers) {
  216. Map<String, Object> flowNotType = new HashMap<String, Object>();
  217. //将查询出的返利节点所有的返利金额存放在map中
  218. for (TemplateFlowInfo templateFlowInfo : flowList) {
  219. if (templateFlowInfo.getFlowProductType().intValue() == integer.intValue()) {
  220. String flowNo = templateFlowInfo.getFlowNo();
  221. if (null != flowNo && !"".equals(flowNo)) {
  222. String i = flowNo.split(",")[0];
  223. String j = flowNo.split(",")[1];
  224. flowNotType.put("templateName"+i+1, templateFlowInfo.getFlowRoleId());
  225. flowNotType.put("flow"+i+j, templateFlowInfo.getFlowMoney());
  226. }
  227. }
  228. }
  229. flowInfoMap.put(integer.toString(), flowNotType);
  230. }
  231. return flowInfoMap;
  232. }
  233. @RequestMapping("/updateTemplateFlowInfo")
  234. public ModelAndView updateTemplateFlowInfo(HttpServletRequest request) throws Exception {
  235. ModelAndView mv = new ModelAndView("admin/msg/msg");
  236. List<TemplateFlowInfo> flowList = getTemplateFlowInfo(request);
  237. Integer num = templateFlowInfoService.updateTemplateFlowInfo(flowList);
  238. if (num > 0) {
  239. mv.addObject("msgObj", new MessageDTO(true, "恭喜您,操作成功", "返利节点已修改成功,刷新即可!"));
  240. } else {
  241. mv.addObject("msgObj", new MessageDTO(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按规定填写数据!"));
  242. }
  243. return mv;
  244. }
  245. }