AdminCustomerController.java 35 KB

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