AdminCustomerController.java 33 KB

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