AdminCustomerController.java 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928
  1. package com.iamberry.rst.controllers.cm;
  2. import com.iamberry.rst.core.cm.*;
  3. import com.iamberry.rst.core.order.*;
  4. import com.iamberry.rst.core.page.PagedResult;
  5. import com.iamberry.rst.core.pts.ProcessNode;
  6. import com.iamberry.rst.core.pts.ProduceProcess;
  7. import com.iamberry.rst.core.sys.Admin;
  8. import com.iamberry.rst.faces.cm.*;
  9. import com.iamberry.rst.faces.order.EfastOrderService;
  10. import com.iamberry.rst.faces.product.ProductService;
  11. import com.iamberry.rst.faces.sys.SysService;
  12. import com.iamberry.rst.utils.AdminUtils;
  13. import com.iamberry.rst.utils.StitchAttrUtil;
  14. import com.iamberry.wechat.tools.ResponseJson;
  15. import net.sf.json.JSONArray;
  16. import net.sf.json.JSONObject;
  17. import org.apache.commons.lang.StringUtils;
  18. import org.apache.shiro.authz.annotation.RequiresPermissions;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Controller;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.RequestParam;
  23. import org.springframework.web.bind.annotation.ResponseBody;
  24. import org.springframework.web.servlet.ModelAndView;
  25. import javax.servlet.http.HttpServletRequest;
  26. import java.util.*;
  27. /**
  28. * Created by wxm
  29. */
  30. @Controller
  31. @RequestMapping("/customer")
  32. public class AdminCustomerController {
  33. @Autowired
  34. private CompanyInfoService companyInfoService;
  35. @Autowired
  36. private StoreInfoService storeInfoService;
  37. @Autowired
  38. private SalesOrderService salesOrderService;
  39. @Autowired
  40. private CustomerService customerService;
  41. @Autowired
  42. private ProductService productService;
  43. @Autowired
  44. private SysService sysService;
  45. @Autowired
  46. private ComplaintTypeInfoService complaintTypeInfoService;
  47. @Autowired
  48. private VisitService visitService;
  49. @Autowired
  50. private QuestionDescribeService questionDescribeService;
  51. @Autowired
  52. private RenewedService renewedService;
  53. @Autowired
  54. private RepairService repairService;
  55. @Autowired
  56. private BackGoodsService backGoodsService;
  57. @Autowired
  58. private FittingsInfoService fittingsInfoService;
  59. @Autowired
  60. private ReissueService reissueService;
  61. @Autowired
  62. private EfastOrderService efastOrderService;
  63. @Autowired
  64. private NoreasonBackService noreasonBackService;
  65. private Object lock = new Object();
  66. @RequestMapping("/test_efast")
  67. public void testEfast() throws Exception{
  68. EfastOrder efastOrder = new EfastOrder();
  69. efastOrder.setOrderDealCode("060619392147176-1");
  70. efastOrder.setOrderId("706060002366");
  71. efastOrder.setOrderPostFirm("yto");
  72. efastOrder.setOrderPostNum("sss");
  73. List<EfastOrderItem> itemList = new ArrayList<EfastOrderItem>();
  74. EfastOrderItem item = new EfastOrderItem();
  75. item.setItemNum(1);
  76. item.setItemDiscount(1599);
  77. item.setItemColorBar("6970465730023");
  78. itemList.add(item);
  79. efastOrder.setItemList(itemList);
  80. efastOrderService.returnOrderFormEfast(efastOrder);
  81. }
  82. /**
  83. * 获取客诉列表
  84. *
  85. * @param request
  86. * @return
  87. */
  88. @RequiresPermissions("customer:list:customer")
  89. @RequestMapping("/_customer_list")
  90. public ModelAndView getCustomer(HttpServletRequest request, CustomerInfo customer,
  91. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  92. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  93. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
  94. ModelAndView mv = new ModelAndView("cm/customer/custome_list");
  95. // PagedResult<Customer> pagedResult = ptsBomService.listCustomer(pageNO, pageSize, ptsBom, totalNum == 0);
  96. // if (totalNum != 0) {
  97. // pagedResult.setTotal(totalNum);
  98. // }
  99. // //获取产品集合,用于页面选择产品
  100. // List<Produce> list = produceService.getProduceList();
  101. // mv.addObject("produceList", list);
  102. // StitchAttrUtil.setModelAndView(customer, mv, "/admin/bom/_bom_list", pagedResult);
  103. return mv;
  104. }
  105. /**
  106. * 跳转到添加客诉页面
  107. *
  108. * @return
  109. */
  110. @RequiresPermissions("customer:add:customer")
  111. @RequestMapping(value = "/to_add_customer")
  112. public ModelAndView toAddCustomer(HttpServletRequest request) {
  113. ModelAndView mv = new ModelAndView("cm/customer/add_customer");
  114. //获取产品集合,用于页面选择产品
  115. // List<Produce> produceList = produceService.getProduceList();
  116. // mv.addObject("produceList", produceList);
  117. return mv;
  118. }
  119. /**
  120. * 搜索订单列表弹出框
  121. *
  122. * @return
  123. */
  124. @RequiresPermissions("customer:add:customer")
  125. @RequestMapping(value = "/select_order")
  126. public ModelAndView selectOrder(HttpServletRequest request) {
  127. ModelAndView mv = new ModelAndView("cm/customer/order_list");
  128. //获取销售公司
  129. List<CompanyInfo> companyInfoList = companyInfoService.listCompanyInfo(new CompanyInfo());
  130. mv.addObject("companyInfoList", companyInfoList);
  131. return mv;
  132. }
  133. /**
  134. * 获取店铺集合
  135. *
  136. * @param request
  137. * @param storeInfo
  138. * @return
  139. */
  140. @ResponseBody
  141. @RequiresPermissions("customer:add:customer")
  142. @RequestMapping(value = "/select_storeInfo")
  143. public ResponseJson listStoreInfo(HttpServletRequest request, StoreInfo storeInfo) {
  144. storeInfo.setStoreStatus(1);
  145. List<StoreInfo> storeInfoList = storeInfoService.listStore(storeInfo);
  146. if (storeInfoList == null || storeInfoList.size() < 1) {
  147. return new ResponseJson(500, "查询失败", 500);
  148. } else {
  149. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  150. rj.addResponseKeyValue("storeInfoList", storeInfoList);
  151. return rj;
  152. }
  153. }
  154. /**
  155. * 获取订单集合
  156. *
  157. * @param request
  158. * @param salesOrder
  159. * @return
  160. */
  161. @ResponseBody
  162. @RequiresPermissions("customer:add:customer")
  163. @RequestMapping(value = "/select_salesOrder")
  164. public ResponseJson listOrder(HttpServletRequest request, SalesOrder salesOrder) {
  165. List<SalesOrder> salesOrderList = salesOrderService.listSalesOrder(salesOrder);
  166. for (SalesOrder order : salesOrderList) {
  167. SalesOrderItem salesOrderItem = new SalesOrderItem();
  168. salesOrderItem.setItemOrderId(order.getSalesId());
  169. List<SalesOrderItem> salesOrderItemList = salesOrderService.listSalesOrderItem(salesOrderItem);
  170. order.setSalesOrderItemList(salesOrderItemList);
  171. }
  172. if (salesOrderList == null || salesOrderList.size() < 1) {
  173. return new ResponseJson(500, "查询失败", 500);
  174. } else {
  175. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  176. rj.addResponseKeyValue("salesOrderList", salesOrderList);
  177. return rj;
  178. }
  179. }
  180. /**
  181. * 分页查询客诉列表信息
  182. *
  183. * @param request
  184. * @param customerInfo
  185. * @param pageSize
  186. * @param pageNO
  187. * @param totalNum
  188. * @return
  189. * @throws Exception
  190. */
  191. @RequiresPermissions("customer:select:customer")
  192. @RequestMapping("/select_customer_list")
  193. public ModelAndView selectCustomerList(HttpServletRequest request, CustomerInfo customerInfo,
  194. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  195. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  196. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
  197. ModelAndView mv = new ModelAndView("cm/customer/custome_list");
  198. PagedResult<CustomerInfo> pagedResult = customerService.listCustomer(pageNO, pageSize, customerInfo, totalNum == 0);
  199. if (totalNum != 0) {
  200. pagedResult.setTotal(totalNum);
  201. }
  202. ProductType productType = new ProductType();
  203. productType.setTypeStatus(1);
  204. //查询产品类型集合
  205. List<ProductType> typeList = productService.listProductType(productType);
  206. //查询客诉类型集合
  207. List<ComplaintTypeInfo> complaintTypeList = complaintTypeInfoService.listComplaintTypeInfo(new ComplaintTypeInfo());
  208. //查询跟进客服集合
  209. Admin admin = new Admin();
  210. admin.setAdminStatus(1);
  211. List<Admin> adminList = sysService.listSelectAdmin(admin);
  212. //获取登录人id
  213. Integer loginAdminId = AdminUtils.getLoginAdminId();
  214. mv.addObject("loginAdminId",loginAdminId);
  215. mv.addObject("typeList", typeList);
  216. mv.addObject("complaintTypeList", complaintTypeList);
  217. mv.addObject("adminList", adminList);
  218. StitchAttrUtil.setModelAndView(customerInfo, mv, "/admin/customer/select_customer_list", pagedResult);
  219. return mv;
  220. }
  221. /**
  222. * 进入客诉基本信息页面
  223. *
  224. * @param request
  225. * @return
  226. * @throws Exception
  227. */
  228. @RequiresPermissions("customer:select:customer")
  229. @RequestMapping("/_customer_info")
  230. public ModelAndView toCustomerInfo(HttpServletRequest request) throws Exception {
  231. ModelAndView mv = new ModelAndView("cm/customer/custome_detail");
  232. String customerId = request.getParameter("customerId");
  233. mv.addObject("customerId", customerId);
  234. return mv;
  235. }
  236. /**
  237. * 查询客诉基本信息
  238. *
  239. * @param request
  240. * @return
  241. * @throws Exception
  242. */
  243. @ResponseBody
  244. @RequiresPermissions("customer:select:customer")
  245. @RequestMapping("/get_customer_info")
  246. public ResponseJson getCustomerInfo(HttpServletRequest request) throws Exception {
  247. String customerId = request.getParameter("customerId");
  248. if (!StringUtils.isNotEmpty(customerId)) {
  249. return new ResponseJson(500, "该客诉信息不存在!", 500);
  250. }
  251. CustomerInfo customerInfo = new CustomerInfo();
  252. customerInfo.setCustomerId(Integer.parseInt(customerId));
  253. Map<String, Object> map = customerService.getCustomerInfo(customerInfo);
  254. ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
  255. rj.addResponseKeyValue("customerCommon", map.get("customerCommon"));
  256. rj.addResponseKeyValue("customer", map.get("customer"));
  257. rj.addResponseKeyValue("salesOrder", map.get("salesOrder"));
  258. return rj;
  259. }
  260. /**
  261. * 添加回访信息
  262. *
  263. * @param request
  264. * @param visit
  265. * @return
  266. */
  267. @ResponseBody
  268. @RequiresPermissions("customer:add:visit")
  269. @RequestMapping("/add_visit_info")
  270. public ResponseJson addVisitInfo(HttpServletRequest request, Visit visit) throws Exception {
  271. String visitAdminId = request.getParameter("visitAdminId");
  272. if (!StringUtils.isNotEmpty(visitAdminId)) {
  273. return new ResponseJson(500, "请选择回访人!", 500);
  274. }
  275. visit.setAdminId(Integer.parseInt(visitAdminId));
  276. visit.setVisitStatus(1);
  277. visit.setVisitCreateTime(new Date());
  278. int num = visitService.addVisitInfo(visit, visit.getCustomerId());
  279. if (num > 0) {
  280. return new ResponseJson(200, "修改成功!", 200);
  281. } else {
  282. return new ResponseJson(500, "修改失败!", 500);
  283. }
  284. }
  285. /**
  286. * 修改客诉状态为已解决
  287. *
  288. * @param request
  289. * @return
  290. */
  291. @ResponseBody
  292. @RequiresPermissions("customer:update:customerIsSolve")
  293. @RequestMapping("/update_customerIsSolve")
  294. public ResponseJson updateCustomerIsSolve(HttpServletRequest request) throws Exception {
  295. String customerId = request.getParameter("customerId");
  296. if (!StringUtils.isNotEmpty(customerId)) {
  297. return new ResponseJson(500, "该客诉信息不存在!", 500);
  298. }
  299. //根据id获取客诉信息
  300. CustomerInfo customer = customerService.getCustomerInfo(Integer.parseInt(customerId));
  301. if (customer == null) {
  302. return new ResponseJson(500, "该客诉信息不存在!", 500);
  303. }
  304. if (customer.getCustomerIsSolve().intValue() != 2) {
  305. return new ResponseJson(500, "该客诉信息不能修改为已解决状态!", 500);
  306. }
  307. CustomerInfo customerInfo = new CustomerInfo();
  308. customerInfo.setCustomerId(Integer.parseInt(customerId));
  309. customerInfo.setCustomerIsSolve(1);
  310. //修改客诉信息
  311. int num = customerService.updateCustomerInfo(customerInfo);
  312. if (num > 0) {
  313. return new ResponseJson(200, "修改成功!", 200);
  314. } else {
  315. return new ResponseJson(500, "修改失败!", 500);
  316. }
  317. }
  318. /**
  319. * 查询客服
  320. *
  321. * @param request
  322. * @return
  323. */
  324. @ResponseBody
  325. @RequiresPermissions("customer:add:customer")
  326. @RequestMapping("/select_sys_admin")
  327. public ResponseJson selectSysAdmin(HttpServletRequest request) throws Exception {
  328. ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
  329. Integer adminId = AdminUtils.getLoginAdminId();
  330. Admin admin = new Admin();
  331. List<Admin> adminList = sysService.listSelectAdmin(admin);
  332. if (adminList.size() > 0) {
  333. rj.addResponseKeyValue("adminList", adminList);
  334. rj.addResponseKeyValue("adminId", adminId);
  335. return rj;
  336. } else {
  337. return new ResponseJson(500, "查询失败!", 500);
  338. }
  339. }
  340. /**
  341. * 查询产品类型
  342. *
  343. * @param request
  344. * @return
  345. */
  346. @ResponseBody
  347. @RequiresPermissions("customer:add:customer")
  348. @RequestMapping("/select_produce_type")
  349. public ResponseJson selectProduceType(HttpServletRequest request) throws Exception {
  350. ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
  351. ProductType productType = new ProductType();
  352. List<ProductType> productTypeList = productService.listProductType(productType);
  353. if (productTypeList != null && productTypeList.size() > 0) {
  354. rj.addResponseKeyValue("productTypeList", productTypeList);
  355. return rj;
  356. } else {
  357. return new ResponseJson(500, "查询失败!", 500);
  358. }
  359. }
  360. /**
  361. * 查询产品
  362. *
  363. * @param request
  364. * @return
  365. */
  366. @ResponseBody
  367. @RequiresPermissions("customer:add:customer")
  368. @RequestMapping("/select_produce")
  369. public ResponseJson selectProduce(HttpServletRequest request) {
  370. ResponseJson rj = new ResponseJson(200, "查询成功!", 200);
  371. Product product = new Product();
  372. List<Product> productList = productService.listProduce(product);
  373. for (Product pro : productList) {
  374. ProductColor productColor = new ProductColor();
  375. productColor.setColorProductId(pro.getProductId());
  376. List<ProductColor> productColorList = productService.listProduceColor(productColor);
  377. pro.setColorList(productColorList);
  378. }
  379. if (productList != null && productList.size() > 0) {
  380. rj.addResponseKeyValue("productList", productList);
  381. return rj;
  382. } else {
  383. return new ResponseJson(500, "查询失败!", 500);
  384. }
  385. }
  386. /**
  387. * 查询产品
  388. *
  389. * @param request
  390. * @return
  391. */
  392. @ResponseBody
  393. @RequiresPermissions("customer:add:customer")
  394. @RequestMapping("/select_produce_fittings")
  395. public ResponseJson selectProduceFittings(HttpServletRequest request, FittingsInfo fittingsInfo) {
  396. ResponseJson rj = new ResponseJson(200, "查询成功!", 200);
  397. List<FittingsInfo> produceFittingsList = fittingsInfoService.listFittings(fittingsInfo);
  398. if (produceFittingsList != null && produceFittingsList.size() > 0) {
  399. rj.addResponseKeyValue("produceFittingsList", produceFittingsList);
  400. return rj;
  401. } else {
  402. return new ResponseJson(500, "查询失败!", 500);
  403. }
  404. }
  405. /**
  406. * 添加客诉
  407. *
  408. * @param request
  409. * @return
  410. */
  411. @ResponseBody
  412. @RequiresPermissions("customer:add:customer")
  413. @RequestMapping("/save_customer")
  414. public ResponseJson addCustomer(HttpServletRequest request, CustomerInfo customerInfo, SalesOrder salesOrder, CustomerCommon customerCommon,
  415. String sendProdcuesJson, String sendFittingsJson, String closedProdcuesJson, String closedFittingsJson) throws Exception {
  416. Integer flag = 0;
  417. JSONArray jsonArray;
  418. List<SendProdcue> sendProdcueList ;
  419. List<SendFitting> sendFittingList ;
  420. List<ClosedProdcue> closedProdcueList ;
  421. List<ClosedFitting> closedFittingList ;
  422. jsonArray = JSONArray.fromObject(sendProdcuesJson);
  423. sendProdcueList = (List) JSONArray.toCollection(jsonArray, SendProdcue.class);
  424. jsonArray = JSONArray.fromObject(sendFittingsJson);
  425. sendFittingList = (List) JSONArray.toCollection(jsonArray, SendFitting.class);
  426. jsonArray = JSONArray.fromObject(closedProdcuesJson);
  427. closedProdcueList = (List) JSONArray.toCollection(jsonArray, ClosedProdcue.class);
  428. jsonArray = JSONArray.fromObject(closedFittingsJson);
  429. closedFittingList = (List) JSONArray.toCollection(jsonArray, ClosedFitting.class);
  430. customerCommon.setSendProdcues(sendProdcueList);
  431. customerCommon.setSendFittings(sendFittingList);
  432. customerCommon.setClosedProdcues(closedProdcueList);
  433. customerCommon.setClosedFittings(closedFittingList);
  434. customerInfo.setCustomerCommon(customerCommon);
  435. flag = customerService.saveCustomerInfo(customerInfo, salesOrder);
  436. if (flag < 1) {
  437. return new ResponseJson(500, "添加客诉失败!", 500);
  438. } else {
  439. return new ResponseJson(200, "添加客诉成功!", 200);
  440. }
  441. }
  442. /**
  443. * 验证方法
  444. *
  445. * @param customerInfo
  446. * @return
  447. */
  448. public boolean isValiData(CustomerInfo customerInfo) {
  449. boolean flag = true;
  450. // if (customerInfo.getBomName() == null || "".equals(customerInfo.getBomName())) {
  451. // return false;
  452. // }
  453. return flag;
  454. }
  455. /**
  456. * 添加回访完成内容
  457. *
  458. * @param request
  459. * @param visit
  460. * @return
  461. */
  462. @ResponseBody
  463. @RequiresPermissions("customer:update:visit")
  464. @RequestMapping("/update_visit_finish")
  465. public ResponseJson updateVisitFinish(HttpServletRequest request, Visit visit) throws Exception {
  466. String customerId = request.getParameter("finish_customerId");
  467. if (!StringUtils.isNotEmpty(customerId)) {
  468. return new ResponseJson(500, "该客诉信息不存在!", 500);
  469. }
  470. visit.setCustomerId(Integer.parseInt(customerId));
  471. visit.setVisitStatus(2);
  472. //修改回访信息内容
  473. int num = visitService.updateVisit(visit);
  474. if (num > 0) {
  475. return new ResponseJson(200, "添加成功!", 200);
  476. } else {
  477. return new ResponseJson(500, "添加失败!", 500);
  478. }
  479. }
  480. /**
  481. * 获取回访信息详情
  482. *
  483. * @param request
  484. * @return
  485. */
  486. @ResponseBody
  487. @RequiresPermissions("customer:get:visit")
  488. @RequestMapping("/get_visit_info")
  489. public ResponseJson getVisitInfo(HttpServletRequest request) throws Exception {
  490. String customerId = request.getParameter("customerId");
  491. if (!StringUtils.isNotEmpty(customerId)) {
  492. return new ResponseJson(500, "该客诉信息不存在!", 500);
  493. }
  494. Visit visit = new Visit();
  495. visit.setCustomerId(Integer.parseInt(customerId));
  496. //查询回访信息集合
  497. List<Visit> visitList = visitService.listVisit(visit);
  498. if (visitList == null || visitList.size() == 0) {
  499. return new ResponseJson(500, "该客诉没有回访信息!", 500);
  500. }
  501. visit = visitList.get(0);
  502. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  503. rj.addResponseKeyValue("visit", visit);
  504. return rj;
  505. }
  506. /**
  507. * 获取问题描述信息
  508. *
  509. * @param request
  510. * @return
  511. */
  512. @ResponseBody
  513. @RequiresPermissions("customer:get:describe")
  514. @RequestMapping("/get_describe_info")
  515. public ResponseJson getDescribeInfo(HttpServletRequest request) throws Exception {
  516. String customerId = request.getParameter("customerId");
  517. if (!StringUtils.isNotEmpty(customerId)) {
  518. return new ResponseJson(500, "该客诉信息不存在!", 500);
  519. }
  520. QuestionDescribe describe = new QuestionDescribe();
  521. describe.setCustomerId(Integer.parseInt(customerId));
  522. //查询问题集合
  523. List<QuestionDescribe> questionList = questionDescribeService.listQuestionDescribe(describe);
  524. if (questionList == null || questionList.size() == 0) {
  525. return new ResponseJson(500, "该客诉信息没有问题描述!", 500);
  526. }
  527. describe = questionList.get(0);
  528. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  529. rj.addResponseKeyValue("describe", describe);
  530. return rj;
  531. }
  532. /**
  533. * 获取换新详情
  534. *
  535. * @param request
  536. * @return
  537. */
  538. @ResponseBody
  539. @RequiresPermissions("customer:get:renewed")
  540. @RequestMapping("/get_renewed_info")
  541. public ResponseJson getRenewedInfo(HttpServletRequest request) throws Exception {
  542. String customerId = request.getParameter("customerId");
  543. if (!StringUtils.isNotEmpty(customerId)) {
  544. return new ResponseJson(500, "该客诉信息不存在!", 500);
  545. }
  546. Renewed renewed = new Renewed();
  547. renewed.setCustomerId(Integer.parseInt(customerId));
  548. renewed.setRenewedState(1);
  549. //获取换新详情和检测信息
  550. renewed = customerService.getRenewedInfo(renewed);
  551. if (renewed == null) {
  552. return new ResponseJson(500, "该客诉没有换新信息!", 500);
  553. } else {
  554. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  555. rj.addResponseKeyValue("renewed", renewed);
  556. return rj;
  557. }
  558. }
  559. /**
  560. * 修改换新信息
  561. *
  562. * @param request
  563. * @param renewed
  564. * @return
  565. * @throws Exception
  566. */
  567. @ResponseBody
  568. @RequiresPermissions("customer:update:renewed")
  569. @RequestMapping("/update_renewed_info")
  570. public ResponseJson updateRenewedInfo(HttpServletRequest request, Renewed renewed) throws Exception {
  571. if (!StringUtils.isNotEmpty(renewed.getRenewedId().toString())) {
  572. return new ResponseJson(500, "该换新信息不能修改!", 500);
  573. }
  574. if (StringUtils.isNotEmpty(renewed.getRenewedBackPostage().toString())) {
  575. renewed.setRenewedBackPostage(renewed.getRenewedBackPostage().intValue() * 100);
  576. }
  577. //修改换新信息
  578. int num = renewedService.updateRenewedInfo(renewed);
  579. if (num > 0) {
  580. return new ResponseJson(200, "修改成功!", 200);
  581. } else {
  582. return new ResponseJson(500, "修改失败!", 500);
  583. }
  584. }
  585. /**
  586. * 进入修改维修页面
  587. *
  588. * @param request
  589. * @return
  590. * @throws Exception
  591. */
  592. @ResponseBody
  593. @RequiresPermissions("customer:update:repair")
  594. @RequestMapping("/_update_repair")
  595. public ResponseJson updateRepairUI(HttpServletRequest request) throws Exception {
  596. String customerId = request.getParameter("customerId");
  597. if (!StringUtils.isNotEmpty(customerId)) {
  598. return new ResponseJson(500, "该客诉信息不存在!", 500);
  599. }
  600. Repair repair = new Repair();
  601. repair.setCustomerId(Integer.parseInt(customerId));
  602. repair.setRepairState(1);
  603. //获取维修详情和品质检测信息
  604. repair = customerService.getRepairInfo(repair);
  605. if (repair == null) {
  606. return new ResponseJson(500, "该客诉没有维修信息!", 500);
  607. } else {
  608. ClosedFitting closedFitting = new ClosedFitting();
  609. closedFitting.setRelationId(repair.getRepairId());
  610. //获取寄回配件集合
  611. List<ClosedFitting> fittingList = renewedService.listClosedFitting(closedFitting);
  612. if (fittingList != null && fittingList.size() > 0) {
  613. repair.setClosedFittings(fittingList);
  614. }
  615. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  616. rj.addResponseKeyValue("repair", repair);
  617. return rj;
  618. }
  619. }
  620. /**
  621. * 修改维修处理信息
  622. *
  623. * @param request
  624. * @param repair
  625. * @return
  626. * @throws Exception
  627. */
  628. @ResponseBody
  629. @RequiresPermissions("customer:update:repair")
  630. @RequestMapping("/update_repair_info")
  631. public ResponseJson updateRepairInfo(HttpServletRequest request, Repair repair) throws Exception {
  632. if (!StringUtils.isNotEmpty(repair.getRepairId().toString())) {
  633. return new ResponseJson(500, "该换新信息不能修改!", 500);
  634. }
  635. String provinceNumber = request.getParameter("repairProvinceNumber");
  636. String cityNumber = request.getParameter("repairCityNumber");
  637. String areaNumber = request.getParameter("repairAreaNumber");
  638. if (StringUtils.isNotEmpty(provinceNumber)) {
  639. repair.setProvinceNumber(Integer.parseInt(provinceNumber));
  640. }
  641. if (StringUtils.isNotEmpty(cityNumber)) {
  642. repair.setCityNumber(Integer.parseInt(cityNumber));
  643. }
  644. if (StringUtils.isNotEmpty(areaNumber)) {
  645. repair.setAreaNumber(Integer.parseInt(areaNumber));
  646. }
  647. if (StringUtils.isNotEmpty(repair.getRepairBackPostage().toString())) {
  648. repair.setRepairBackPostage(repair.getRepairBackPostage().intValue() * 100);
  649. }
  650. //修改维修信息
  651. int num = repairService.updateRepairInfo(repair);
  652. if (num > 0) {
  653. return new ResponseJson(200, "修改成功!", 200);
  654. } else {
  655. return new ResponseJson(500, "修改失败!", 500);
  656. }
  657. }
  658. /**
  659. * 进入修改售后退货页面
  660. *
  661. * @param request
  662. * @return
  663. * @throws Exception
  664. */
  665. @ResponseBody
  666. @RequiresPermissions("customer:update:BackGoods")
  667. @RequestMapping("/_update_back_goods")
  668. public ResponseJson updateBackGoodsUI(HttpServletRequest request) throws Exception {
  669. String customerId = request.getParameter("customerId");
  670. if (!StringUtils.isNotEmpty(customerId)) {
  671. return new ResponseJson(500, "该客诉信息不存在!", 500);
  672. }
  673. BackGoods backGoods = new BackGoods();
  674. backGoods.setCustomerId(Integer.parseInt(customerId));
  675. //获取售后退货信息
  676. backGoods = customerService.getBackGoods(backGoods);
  677. if (backGoods == null) {
  678. return new ResponseJson(500, "该客诉没有售后退货信息!", 500);
  679. } else {
  680. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  681. rj.addResponseKeyValue("backGoods", backGoods);
  682. return rj;
  683. }
  684. }
  685. /**
  686. * 修改售后退货信息
  687. *
  688. * @param request
  689. * @param backGoods
  690. * @return
  691. * @throws Exception
  692. */
  693. @ResponseBody
  694. @RequiresPermissions("customer:update:backGoods")
  695. @RequestMapping("/update_back_goods")
  696. public ResponseJson updateBackGoods(HttpServletRequest request, BackGoods backGoods) throws Exception {
  697. if (!StringUtils.isNotEmpty(backGoods.getBackGoodsId().toString())) {
  698. return new ResponseJson(500, "该售后退货信息不能修改!", 500);
  699. }
  700. if (StringUtils.isNotEmpty(backGoods.getBackGoodsBackPostage().toString())) {
  701. backGoods.setBackGoodsBackPostage(backGoods.getBackGoodsBackPostage().intValue() * 100);
  702. }
  703. int num = backGoodsService.updateBackGoods(backGoods);
  704. if (num > 0) {
  705. return new ResponseJson(200, "修改成功!", 200);
  706. } else {
  707. return new ResponseJson(500, "修改失败!", 500);
  708. }
  709. }
  710. /**
  711. * 进入修改补寄信息页面
  712. *
  713. * @param request
  714. * @return
  715. */
  716. @ResponseBody
  717. @RequiresPermissions("customer:update:reissue")
  718. @RequestMapping("/_update_reissue")
  719. public ResponseJson updateReissueUI(HttpServletRequest request) {
  720. String customerId = request.getParameter("customerId");
  721. if (!StringUtils.isNotEmpty(customerId)) {
  722. return new ResponseJson(500, "该客诉信息不存在!", 500);
  723. }
  724. Reissue reissue = new Reissue();
  725. reissue.setCustomerId(Integer.parseInt(customerId));
  726. //获取售后补寄信息
  727. reissue = customerService.getReissue(reissue);
  728. if (reissue == null) {
  729. return new ResponseJson(500, "该客诉没有售后退货信息!", 500);
  730. } else {
  731. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  732. rj.addResponseKeyValue("reissue", reissue);
  733. return rj;
  734. }
  735. }
  736. /**
  737. * 修改售后补寄信息
  738. *
  739. * @param request
  740. * @param reissue
  741. * @return
  742. * @throws Exception
  743. */
  744. @ResponseBody
  745. @RequiresPermissions("customer:update:reissue")
  746. @RequestMapping("/update_reissue_info")
  747. public ResponseJson updateReissueInfo(HttpServletRequest request, Reissue reissue) throws Exception {
  748. String provinceNumber = request.getParameter("reissueProvinceNumber");
  749. String cityNumber = request.getParameter("reissueCityNumber");
  750. String areaNumber = request.getParameter("reissueAreaNumber");
  751. if (!StringUtils.isNotEmpty(reissue.getReissueId().toString())) {
  752. return new ResponseJson(500, "该售后补寄信息不能修改!", 500);
  753. }
  754. if (StringUtils.isNotEmpty(provinceNumber)) {
  755. reissue.setProvinceNumber(Integer.parseInt(provinceNumber));
  756. }
  757. if (StringUtils.isNotEmpty(cityNumber)) {
  758. reissue.setCityNumber(Integer.parseInt(cityNumber));
  759. }
  760. if (StringUtils.isNotEmpty(areaNumber)) {
  761. reissue.setAreaNumber(Integer.parseInt(areaNumber));
  762. }
  763. //修改售后补寄信息
  764. int num = reissueService.updateReissueInfo(reissue);
  765. if (num > 0) {
  766. return new ResponseJson(200, "修改成功!", 200);
  767. } else {
  768. return new ResponseJson(500, "修改失败!", 500);
  769. }
  770. }
  771. /**
  772. * 获取无理由退货信息
  773. * @param request
  774. * @return
  775. * @throws Exception
  776. */
  777. @ResponseBody
  778. @RequiresPermissions("customer:update:noreason")
  779. @RequestMapping("/_update_noreason")
  780. public ResponseJson toUpdateNoreason(HttpServletRequest request) throws Exception {
  781. String customerId = request.getParameter("customerId");
  782. if (!StringUtils.isNotEmpty(customerId)) {
  783. return new ResponseJson(500, "该客诉信息不存在!", 500);
  784. }
  785. NoreasonBack noreasonBack = new NoreasonBack();
  786. noreasonBack.setCustomerId(Integer.parseInt(customerId));
  787. noreasonBack.setNoreasonBackState(1);
  788. //获取无理由退货信息
  789. noreasonBack = customerService.getNoreasonBack(noreasonBack);
  790. if (noreasonBack == null) {
  791. return new ResponseJson(500, "该客诉没有无理由售后退货信息!", 500);
  792. } else {
  793. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  794. rj.addResponseKeyValue("noreasonBack", noreasonBack);
  795. return rj;
  796. }
  797. }
  798. /**
  799. * 修改售后无理由退货信息
  800. *
  801. * @param request
  802. * @param noreasonBack
  803. * @return
  804. * @throws Exception
  805. */
  806. @ResponseBody
  807. @RequiresPermissions("customer:update:noreason")
  808. @RequestMapping("/update_noreason")
  809. public ResponseJson updateNoreason(HttpServletRequest request, NoreasonBack noreasonBack) throws Exception {
  810. if (!StringUtils.isNotEmpty(noreasonBack.getNoreasonBackId().toString())) {
  811. return new ResponseJson(500, "该售后无理由退货信息不能修改!", 500);
  812. }
  813. if (StringUtils.isNotEmpty(noreasonBack.getNoreasonBackBackPostage().toString())) {
  814. noreasonBack.setNoreasonBackBackPostage(noreasonBack.getNoreasonBackBackPostage().intValue() * 100);
  815. }
  816. int num = noreasonBackService.updateNoreasonBack(noreasonBack);
  817. if (num > 0) {
  818. return new ResponseJson(200, "修改成功!", 200);
  819. } else {
  820. return new ResponseJson(500, "修改失败!", 500);
  821. }
  822. }
  823. /**
  824. * 同步百胜订单
  825. * @return
  826. * @throws Exception
  827. */
  828. @ResponseBody
  829. @RequiresPermissions("customer:sync:order")
  830. @RequestMapping("/sync_efast_order")
  831. public ResponseJson syncEfastOrder() throws Exception {
  832. int pageNo = 1;
  833. int pageSize = 20;
  834. boolean flag = false; //控制是否还需要获取百胜订单信息
  835. String date = "";
  836. synchronized (lock) {
  837. //根据时间排序查询订单信息
  838. List<SalesOrder> orderList = salesOrderService.listSalesOrder(new SalesOrder());
  839. if (orderList != null && orderList.size() > 0) {
  840. SalesOrder salesOrder = orderList.get(0);
  841. date = salesOrder.getSalesCreateTime().toString();
  842. } else {
  843. date = "2016-04-01";
  844. }
  845. do {
  846. //批量获取百胜订单信息
  847. JSONObject obj = efastOrderService.listOrderInfoFormEfast(pageNo, pageSize, date);
  848. if (obj == null) {
  849. return new ResponseJson(200, "没有可同步订单!", 200);
  850. }
  851. int pageSize1 = obj.getInt("page_size"); //百胜返回数据条目数
  852. if (pageSize <= pageSize1) {
  853. flag = true;
  854. pageNo++;
  855. } else {
  856. flag = false;
  857. }
  858. salesOrderService.addSalesOrderList(obj);
  859. } while (flag); //百胜返回条目数如果等于设置的分页条目数,则继续查询下一页
  860. return new ResponseJson(200, "同步成功!", 200);
  861. }
  862. }
  863. }