AdminCustomerController.java 33 KB

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