AdminCustomerController.java 35 KB

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