AppComplaintQuestionInfoController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. package com.iamberry.rst.controllers.cm;
  2. import com.iamberry.rst.core.cm.*;
  3. import com.iamberry.rst.core.order.ProductColor;
  4. import com.iamberry.rst.faces.cm.ComplaintQuestionInfoService;
  5. import com.iamberry.rst.faces.cm.CustomerCommonService;
  6. import com.iamberry.rst.faces.cm.RelationOrderService;
  7. import com.iamberry.rst.faces.cm.SalesOrderService;
  8. import com.iamberry.rst.faces.order.EfastOrderService;
  9. import com.iamberry.rst.faces.product.ProductService;
  10. import com.iamberry.rst.service.cm.CustomerServiceImpl;
  11. import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
  12. import com.iamberry.wechat.tools.DateTimeUtil;
  13. import com.iamberry.wechat.tools.ResponseJson;
  14. import net.sf.json.JSONArray;
  15. import net.sf.json.JSONObject;
  16. import org.slf4j.Logger;
  17. import org.slf4j.LoggerFactory;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Controller;
  20. import org.springframework.web.bind.annotation.PathVariable;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.ResponseBody;
  23. import org.springframework.web.servlet.ModelAndView;
  24. import javax.servlet.http.HttpServletRequest;
  25. import java.util.ArrayList;
  26. import java.util.Date;
  27. import java.util.List;
  28. /**
  29. * Created by wxm
  30. * 问题
  31. */
  32. @Controller
  33. public class AppComplaintQuestionInfoController {
  34. private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
  35. private Object lock = new Object();
  36. /**
  37. * 邮寄地址id
  38. */
  39. private Integer backOutQuestionId = 5;
  40. @Autowired
  41. private ComplaintQuestionInfoService complaintQuestionInfoService;
  42. @Autowired
  43. private CustomerCommonService customerCommonService;
  44. @Autowired
  45. private RelationOrderService relationOrderService;
  46. @Autowired
  47. private SalesOrderService salesOrderService;
  48. @Autowired
  49. private EfastOrderService efastOrderService;
  50. @Autowired
  51. private ProductService productService;
  52. @Autowired
  53. private FittingsInfoMapper fittingsInfoMapper;
  54. /**
  55. * 进入客诉问题描述
  56. *
  57. * @param request
  58. * @return
  59. * @throws Exception
  60. */
  61. @RequestMapping("/QA/{id}/{type}")
  62. public ModelAndView problem( @PathVariable("id") Integer id,@PathVariable("type") Integer type, HttpServletRequest request) throws Exception {
  63. if(id == backOutQuestionId){
  64. ModelAndView mv = new ModelAndView("wap/cm/send_message");
  65. return mv;
  66. }else{
  67. ModelAndView mv = new ModelAndView("wap/cm/request_message");
  68. mv.addObject("questionId", id);
  69. mv.addObject("type", type);
  70. return mv;
  71. }
  72. }
  73. /**
  74. * 进入客诉问题描述
  75. *
  76. * @param request
  77. * @return
  78. * @throws Exception
  79. */
  80. // @RequestMapping("/address")
  81. // public ModelAndView adress(HttpServletRequest request) throws Exception {
  82. // ModelAndView mv = new ModelAndView("wap/cm/send_message");
  83. // return mv;
  84. // }
  85. /**
  86. * 查询退回短信客诉问题
  87. *
  88. * @return
  89. */
  90. @ResponseBody
  91. @RequestMapping(value = "/get_back_out_question")
  92. public ResponseJson getBackOutQuestion(HttpServletRequest request){
  93. ResponseJson msg = new ResponseJson();
  94. ComplaintQuestionInfo complaintQuestionInfo = complaintQuestionInfoService.getQuestionById(backOutQuestionId);
  95. if (complaintQuestionInfo == null) {
  96. msg.setResultCode(500);
  97. msg.setReturnCode(500);
  98. } else {
  99. msg.setResultCode(200);
  100. msg.setReturnCode(200);
  101. msg.addResponseKeyValue("complaintQuestionInfo",complaintQuestionInfo);
  102. }
  103. return msg;
  104. }
  105. /**
  106. * 查询客诉问题
  107. *
  108. * @return
  109. */
  110. @ResponseBody
  111. @RequestMapping(value = "/get_question")
  112. public ResponseJson getQuestion(HttpServletRequest request, Integer questionId){
  113. ResponseJson msg = new ResponseJson();
  114. if(questionId == null){
  115. msg.setResultCode(500);
  116. msg.setReturnCode(500);
  117. return msg;
  118. }
  119. ComplaintQuestionInfo complaintQuestionInfo = complaintQuestionInfoService.getQuestionById(questionId);
  120. if (complaintQuestionInfo == null) {
  121. msg.setResultCode(500);
  122. msg.setReturnCode(500);
  123. } else {
  124. msg.setResultCode(200);
  125. msg.setReturnCode(200);
  126. msg.addResponseKeyValue("complaintQuestionInfo",complaintQuestionInfo);
  127. }
  128. return msg;
  129. }
  130. /**
  131. * 修改是否已解决总数
  132. *
  133. * @return
  134. */
  135. @ResponseBody
  136. @RequestMapping(value = "/update_question_num")
  137. public ResponseJson updateQuestionNum(HttpServletRequest request, ComplaintQuestionInfo complaintQuestionInfo){
  138. ResponseJson msg = new ResponseJson();
  139. if(complaintQuestionInfo == null){
  140. msg.setResultCode(500);
  141. msg.setReturnCode(500);
  142. return msg;
  143. }
  144. Integer num = complaintQuestionInfoService.updateQuestionById(complaintQuestionInfo);
  145. if (num < 1) {
  146. msg.setResultCode(500);
  147. msg.setReturnCode(500);
  148. } else {
  149. msg.setResultCode(200);
  150. msg.setReturnCode(200);
  151. }
  152. return msg;
  153. }
  154. /**
  155. * 处理一个客诉对应多个订单
  156. * @return
  157. */
  158. // @ResponseBody
  159. // @RequestMapping(value = "")
  160. // public ResponseJson processCustomerOrder(HttpServletRequest request){
  161. // ResponseJson msg = new ResponseJson();
  162. // List<RelationOrder> relationOrderList = new ArrayList<>();
  163. // CustomerCommon customerCommon = new CustomerCommon();
  164. // List<CustomerCommon> customerCommonList = customerCommonService.listCustomerCommon(customerCommon);
  165. // for (int i=0; i<customerCommonList.size(); i++){
  166. // RelationOrder relationOrder = new RelationOrder();
  167. // relationOrder.setRelationId(customerCommonList.get(i).getRelationId());
  168. // relationOrder.setRelationType(customerCommonList.get(i).getCustomerIsSolve());
  169. // relationOrder.setSalesId(customerCommonList.get(i).getOrderId());
  170. // relationOrderList.add(relationOrder);
  171. // }
  172. // relationOrderService.saveList(relationOrderList);
  173. // return msg;
  174. // }
  175. /**
  176. * 清理所有没有订单项的订单
  177. * 并重新拉去订单
  178. * @param request
  179. * @return
  180. */
  181. // @ResponseBody
  182. // @RequestMapping(value = "/delOrder")
  183. // public ResponseJson processCustomerOrder(HttpServletRequest request){
  184. // ResponseJson msg = new ResponseJson();
  185. // List<String> orderId = new ArrayList<>();
  186. // StringBuffer delOrderId = new StringBuffer();
  187. // List<SalesOrder> salesOrderList = salesOrderService.listSalesOrder(new SalesOrder());
  188. // for (int i=0;i<salesOrderList.size();i++){
  189. // SalesOrder so = salesOrderList.get(i);
  190. // SalesOrderItem soi = new SalesOrderItem();
  191. // soi.setItemOrderId(so.getSalesId());
  192. // List<SalesOrderItem> salesOrderItemList = salesOrderService.listSalesOrderItem(soi);
  193. // if(salesOrderItemList == null || salesOrderItemList.size() < 1){
  194. // if(so.getSalesOrderId() != null && !"".equals(so.getSalesOrderId()) ){
  195. // orderId.add(so.getSalesOrderId());
  196. // delOrderId.append(so.getSalesOrderId());
  197. // salesOrderService.delOrder(so.getSalesOrderId());
  198. // System.out.println("------------------------订单无订单项-订单id为:"+ so.getSalesOrderId() +"-----------------------");
  199. // }else{
  200. // System.out.println("----订单号为空--");
  201. // }
  202. // }
  203. // }
  204. // if(orderId != null && orderId.size()>0 ){
  205. // System.out.println("未检测到没有产品的订单了");
  206. // }
  207. // System.out.println("------------------------总共有 " + orderId.size() + "订单无订单项,------------------------");
  208. // StringBuffer delOrderIdError = new StringBuffer();
  209. // for(Integer k=0; k<orderId.size() ; k++){
  210. // String id = orderId.get(k);
  211. // System.out.println("--------同步第 "+k+" 个订单,订单编号:"+id+"----------");
  212. // try{
  213. // //获取订单详情
  214. // JSONObject orderInfo = efastOrderService.getOrderFormEfastByOrderId(id);
  215. // //添加订单和订单项
  216. // boolean flag = true;
  217. // try {
  218. // flag = salesOrderService.syncEfastOrder(orderInfo);
  219. // }catch (Exception e){
  220. // return new ResponseJson(500, e.getMessage(), 500);
  221. // }
  222. // if (flag) {
  223. // return new ResponseJson(200, "同步成功!", 200);
  224. // } else {
  225. // return new ResponseJson(500, "同步订单错误!", 500);
  226. // }
  227. // }catch (Exception e){
  228. // e.printStackTrace();
  229. // System.out.println("--------订单同步出错,订单号为:" + id);
  230. // delOrderIdError.append(id+",");
  231. // }
  232. // }
  233. // System.out.println("-----------------同步失败的id"+delOrderIdError.toString());
  234. // return msg;
  235. // }
  236. /**
  237. * 清理所有没有订单项的订单
  238. * 并重新拉去订单
  239. * @param request
  240. * @return
  241. */
  242. // @ResponseBody
  243. // @RequestMapping(value = "/synOrder")
  244. // public ResponseJson synCustomerOrder(HttpServletRequest request){
  245. // ResponseJson msg = new ResponseJson();
  246. // List<SalesOrder> salesOrderList = salesOrderService.listSalesOrder(new SalesOrder());
  247. // for (int i=0;i<salesOrderList.size();i++){
  248. // SalesOrder so = salesOrderList.get(i);
  249. // SalesOrderItem soi = new SalesOrderItem();
  250. // soi.setItemOrderId(so.getSalesId());
  251. // List<SalesOrderItem> salesOrderItemList = salesOrderService.listSalesOrderItem(soi);
  252. // if(salesOrderItemList != null && salesOrderItemList.size() > 1){
  253. // if(so.getSalesDealCode() != null && !"".equals(so.getSalesDealCode()) ){
  254. // //获取订单详情
  255. // JSONObject orderInfo = null;
  256. // try{
  257. // orderInfo = efastOrderService.getOrderFormEfast(so.getSalesDealCode());
  258. // }catch (Exception e){
  259. // logger.info("获取订单失败;异常编号:505;失败原因:"+ e.getMessage() +"--获取失败交易号:" + so.getSalesDealCode()+"订单id"+so.getSalesId());
  260. // }
  261. // if (orderInfo == null) {
  262. // logger.info("1获取订单失败;异常编号:--获取失败交易号:" + so.getSalesDealCode()+"订单id"+so.getSalesId());
  263. // continue;
  264. // }
  265. // if (!orderInfo.has("orders")) {
  266. // logger.info("2获取订单失败;异常编号:--获取失败交易号:" + so.getSalesDealCode()+"订单id"+so.getSalesId());
  267. // continue;
  268. // }
  269. // //获取订单项集合
  270. // JSONArray itemArray = null;
  271. // try{
  272. // itemArray = orderInfo.getJSONArray("orders");
  273. // }catch (Exception e){
  274. // e.printStackTrace();
  275. // logger.info("1解析订单项失败"+so.getSalesId());
  276. // }
  277. // if (itemArray == null || itemArray.size() == 0) {
  278. // logger.info("2解析订单项失败"+so.getSalesId());
  279. // continue;
  280. // }
  281. // for (int j = 0;j < itemArray.size();j++) {
  282. // JSONObject itemJson = itemArray.getJSONObject(j);
  283. // SalesOrderItem item = new SalesOrderItem();
  284. // item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
  285. // item.setItemNum(itemJson.getInt("goods_number"));//商品数量
  286. // item.setItemOrderId(so.getSalesId());
  287. // salesOrderService.updateOrderItem(item);
  288. // }
  289. // }else{
  290. // logger.info("----交易号为空--订单id为"+so.getSalesId());
  291. // }
  292. // }
  293. // }
  294. //
  295. // return msg;
  296. // }
  297. /**
  298. * 订单关联表,新增客诉id
  299. * @param request
  300. * @return
  301. */
  302. // @ResponseBody
  303. // @RequestMapping(value = "/synRelatedOrder")
  304. // public ResponseJson synRelatedOrder(HttpServletRequest request){
  305. // ResponseJson msg = new ResponseJson();
  306. // List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(new RelationOrder());
  307. // for (int i=0;i<relationOrderList.size();i++) {
  308. // RelationOrder ro = relationOrderList.get(i);
  309. // CustomerCommon customerCommon = new CustomerCommon();
  310. // customerCommon.setRelationId(ro.getRelationId());
  311. // customerCommon.setCustomerIsSolve(ro.getRelationType()); //customerIsSolve
  312. // List<CustomerCommon> customerCommonList = customerCommonService.listCustomerCommon(customerCommon);
  313. //
  314. // RelationOrder newRo = new RelationOrder();
  315. // newRo.setRelationOrderId(ro.getRelationOrderId());
  316. // newRo.setRelationCustomerId(customerCommonList.get(0).getCustomerId());
  317. // relationOrderService.update(newRo);
  318. // }
  319. // logger.info("----交易号为空--订单id为"+1);
  320. // return msg;
  321. // }
  322. }