AdminCustomerController.java 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285
  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.sys.Admin;
  6. import com.iamberry.rst.faces.cm.*;
  7. import com.iamberry.rst.faces.order.EfastOrderService;
  8. import com.iamberry.rst.faces.product.ProductService;
  9. import com.iamberry.rst.faces.sms.SmsService;
  10. import com.iamberry.rst.faces.sys.SysService;
  11. import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
  12. import com.iamberry.rst.util.SmsConfig;
  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.NameUtils;
  17. import com.iamberry.wechat.tools.ResponseJson;
  18. import net.sf.json.JSONArray;
  19. import net.sf.json.JSONObject;
  20. import org.apache.commons.lang.StringUtils;
  21. import org.apache.shiro.authz.annotation.RequiresPermissions;
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Controller;
  26. import org.springframework.web.bind.annotation.RequestMapping;
  27. import org.springframework.web.bind.annotation.RequestParam;
  28. import org.springframework.web.bind.annotation.ResponseBody;
  29. import org.springframework.web.servlet.ModelAndView;
  30. import javax.servlet.http.HttpServletRequest;
  31. import java.text.MessageFormat;
  32. import java.util.*;
  33. /**
  34. * Created by wxm
  35. */
  36. @Controller
  37. @RequestMapping("/admin/customer")
  38. public class AdminCustomerController {
  39. private Logger logger = LoggerFactory.getLogger(AdminCustomerController.class);
  40. @Autowired
  41. private CompanyInfoService companyInfoService;
  42. @Autowired
  43. private StoreInfoService storeInfoService;
  44. @Autowired
  45. private SalesOrderService salesOrderService;
  46. @Autowired
  47. private CustomerService customerService;
  48. @Autowired
  49. private ProductService productService;
  50. @Autowired
  51. private SysService sysService;
  52. @Autowired
  53. private ComplaintTypeInfoService complaintTypeInfoService;
  54. @Autowired
  55. private VisitService visitService;
  56. @Autowired
  57. private QuestionDescribeService questionDescribeService;
  58. @Autowired
  59. private RenewedService renewedService;
  60. @Autowired
  61. private RepairService repairService;
  62. @Autowired
  63. private BackGoodsService backGoodsService;
  64. @Autowired
  65. private FittingsInfoService fittingsInfoService;
  66. @Autowired
  67. private ReissueService reissueService;
  68. @Autowired
  69. private EfastOrderService efastOrderService;
  70. @Autowired
  71. private NoreasonBackService noreasonBackService;
  72. @Autowired
  73. private ComplaintQuestionInfoService complaintQuestionInfoService;
  74. @Autowired
  75. private SmsService smsService;
  76. private Object lock = new Object();
  77. /**
  78. * 获取客诉列表
  79. *
  80. * @param request
  81. * @return
  82. */
  83. @RequiresPermissions("customer:list:customer")
  84. @RequestMapping("/_customer_list")
  85. public ModelAndView getCustomer(HttpServletRequest request, CustomerInfo customer,
  86. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  87. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  88. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
  89. ModelAndView mv = new ModelAndView("cm/customer/custome_list");
  90. // PagedResult<Customer> pagedResult = ptsBomService.listCustomer(pageNO, pageSize, ptsBom, totalNum == 0);
  91. // if (totalNum != 0) {
  92. // pagedResult.setTotal(totalNum);
  93. // }
  94. // //获取产品集合,用于页面选择产品
  95. // List<Produce> list = produceService.getProduceList();
  96. // mv.addObject("produceList", list);
  97. // StitchAttrUtil.setModelAndView(customer, mv, "/admin/bom/_bom_list", pagedResult);
  98. return mv;
  99. }
  100. /**
  101. * 跳转到添加客诉页面
  102. *
  103. * @return
  104. */
  105. @RequiresPermissions("customer:add:customer")
  106. @RequestMapping(value = "/to_add_customer")
  107. public ModelAndView toAddCustomer(HttpServletRequest request) {
  108. ModelAndView mv = new ModelAndView("cm/customer/add_customer");
  109. //获取产品集合,用于页面选择产品
  110. // List<Produce> produceList = produceService.getProduceList();
  111. // mv.addObject("produceList", produceList);
  112. return mv;
  113. }
  114. /**
  115. * 搜索订单列表弹出框
  116. *
  117. * @return
  118. */
  119. @RequiresPermissions("customer:add:customer")
  120. @RequestMapping(value = "/select_order")
  121. public ModelAndView selectOrder(HttpServletRequest request) {
  122. ModelAndView mv = new ModelAndView("cm/customer/order_list");
  123. //获取销售公司
  124. List<CompanyInfo> companyInfoList = companyInfoService.listCompanyInfo(new CompanyInfo());
  125. mv.addObject("companyInfoList", companyInfoList);
  126. return mv;
  127. }
  128. /**
  129. * 添加订单列表弹出框
  130. *
  131. * @return
  132. */
  133. @RequiresPermissions("customer:add:customer")
  134. @RequestMapping(value = "/add_order")
  135. public ModelAndView addOder(HttpServletRequest request) {
  136. ModelAndView mv = new ModelAndView("cm/customer/order_add");
  137. return mv;
  138. }
  139. /**
  140. * 添加订单
  141. *
  142. * @return
  143. */
  144. @ResponseBody
  145. @RequiresPermissions("customer:add:customer")
  146. @RequestMapping(value = "/add_order_info")
  147. public ResponseJson addOrderInfo(HttpServletRequest request,SalesOrder salesOrder,String itemJson)throws Exception {
  148. List<SalesOrderItem> list = new ArrayList<>();
  149. JSONArray jsonArray = JSONArray.fromObject(itemJson);
  150. list = (List) JSONArray.toCollection(jsonArray, SalesOrderItem.class);
  151. Integer salesAmount = 0;
  152. for(int i=0;i<list.size();i++){
  153. SalesOrderItem salesOrderItem = list.get(i);
  154. if(salesOrderItem.getItemIsSource() == 1){ //产品来源 1:产品颜色表,2:配件表
  155. Product product = productService.getProductById(salesOrderItem.getItemProductId());
  156. ProductColor productColor = productService.getProduceColor(salesOrderItem.getItemProductId());
  157. salesOrderItem.setItemProductType(product.getProductType());
  158. salesOrderItem.setItemProductName(product.getProductName());
  159. salesOrderItem.setItemProductPic(productColor.getColorPicture());
  160. salesOrderItem.setItemProductColor(productColor.getColorName());
  161. salesOrderItem.setItemColorBar(productColor.getColorBar());
  162. salesOrderItem.setItemProductPrice(productColor.getColorPrice());
  163. salesOrderItem.setItemProductDiscount(productColor.getColorDiscount());
  164. salesOrderItem.setItemIsSource(1);
  165. salesAmount += productColor.getColorDiscount();
  166. }else if(salesOrderItem.getItemIsSource() == 2){
  167. Product product = productService.getProductById(salesOrderItem.getItemProductId());
  168. FittingsInfo fittingsInfo = fittingsInfoService.getFittingsById( salesOrderItem.getItemColorId());
  169. salesOrderItem.setItemProductType(product.getProductType());
  170. salesOrderItem.setItemProductName(product.getProductName());
  171. salesOrderItem.setItemProductColor(fittingsInfo.getFittingsName());
  172. salesOrderItem.setItemColorBar(fittingsInfo.getFittingsBar());
  173. salesOrderItem.setItemProductPrice(fittingsInfo.getFittingsPrice());
  174. salesOrderItem.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
  175. salesOrderItem.setItemIsSource(2);
  176. salesAmount += fittingsInfo.getFittingsDiscount();
  177. }
  178. }
  179. salesOrder.setSalesOpenId("0");
  180. salesOrder.setSalesAmount(salesAmount);
  181. salesOrder.setSalesPayMoney(salesAmount);
  182. salesOrder.setSalesOrderStatus(1);
  183. salesOrder.setSalesCreateTime(new Date());
  184. //salesOrder.setSalesPayTime(new Date());
  185. salesOrder.setSalesLastMoney(salesAmount);
  186. salesOrder.setSalesWaitMoney(0);
  187. salesOrder.setSalesPayMoney(salesAmount);
  188. salesOrder.setSalesSalesTime(new Date());
  189. salesOrder.setSalesDiscountMoney(salesAmount);
  190. salesOrder.setSalesPledgeMoney(0);
  191. salesOrder.setSalesRemainDeposit(0);
  192. salesOrder.setSalesType(1);
  193. salesOrder.setSalesStatus(0);//确认状态:0(未确认)1(确认)2(挂起)3(作废)
  194. salesOrder.setSalesShippingStatus(0); //发货状态: 0(未发货)1(已发货,即已扫描出库)3(备货中)
  195. salesOrder.setSalesPayStatus(2); //已付款
  196. salesOrder.setSalesProcessStatus(0); //单据状态:0(正常单)1(问题单)
  197. salesOrder.setSalesIsSend(0); //0:否 1:是 是否通知配货
  198. salesOrder.setSalesIsLocked(0); //是否锁定 0:否 1:是
  199. salesOrder.setSalesIsSeparate(0); //是否缺货 0:否 1:是
  200. salesOrder.setSalesShippingFee(0); //邮费
  201. Integer adminId = AdminUtils.getLoginAdminId();
  202. String orderCode = OrderNoUtil.createOrderCode(adminId);
  203. salesOrder.setSalesDealCode(orderCode);
  204. salesOrder.setSalesOrderId(orderCode);
  205. //salesOrder = salesOrderService.addOrderAndIteminfo(salesOrder,list);
  206. salesOrder.setSalesOrderItemList(list);
  207. Map<String,Object> map = customerService.sendEfastOrder(salesOrder);
  208. if(map.get("status") == 1){
  209. salesOrder.setSalesOrderId((String) map.get("EfastOrderId"));
  210. }else{
  211. return new ResponseJson(500, "添加订单失败!", 500);
  212. }
  213. Integer orderId =salesOrder.getSalesId();
  214. ResponseJson rj = new ResponseJson(200, "添加成功", 200);
  215. rj.addResponseKeyValue("orderId", orderId);
  216. return rj;
  217. }
  218. /**
  219. * 获取店铺集合
  220. *
  221. * @param request
  222. * @param storeInfo
  223. * @return
  224. */
  225. @ResponseBody
  226. @RequiresPermissions("customer:add:customer")
  227. @RequestMapping(value = "/select_storeInfo")
  228. public ResponseJson listStoreInfo(HttpServletRequest request, StoreInfo storeInfo) {
  229. storeInfo.setStoreStatus(1);
  230. List<StoreInfo> storeInfoList = storeInfoService.listStore(storeInfo);
  231. if (storeInfoList == null || storeInfoList.size() < 1) {
  232. return new ResponseJson(500, "查询失败", 500);
  233. } else {
  234. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  235. rj.addResponseKeyValue("storeInfoList", storeInfoList);
  236. return rj;
  237. }
  238. }
  239. /**
  240. * 获取订单集合
  241. *
  242. * @param request
  243. * @param salesOrder
  244. * @return
  245. */
  246. @ResponseBody
  247. @RequiresPermissions("customer:add:customer")
  248. @RequestMapping(value = "/select_salesOrder")
  249. public ResponseJson listOrder(HttpServletRequest request, SalesOrder salesOrder) {
  250. List<SalesOrder> salesOrderList = salesOrderService.listSalesOrder(salesOrder);
  251. for (SalesOrder order : salesOrderList) {
  252. SalesOrderItem salesOrderItem = new SalesOrderItem();
  253. salesOrderItem.setItemOrderId(order.getSalesId());
  254. List<SalesOrderItem> salesOrderItemList = salesOrderService.listSalesOrderItem(salesOrderItem);
  255. order.setSalesOrderItemList(salesOrderItemList);
  256. }
  257. if (salesOrderList == null || salesOrderList.size() < 1) {
  258. return new ResponseJson(500, "查询失败", 500);
  259. } else {
  260. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  261. rj.addResponseKeyValue("salesOrderList", salesOrderList);
  262. return rj;
  263. }
  264. }
  265. /**
  266. * 分页查询客诉列表信息
  267. *
  268. * @param request
  269. * @param customerInfo
  270. * @param pageSize
  271. * @param pageNO
  272. * @param totalNum
  273. * @return
  274. * @throws Exception
  275. */
  276. @RequiresPermissions("customer:select:customer")
  277. @RequestMapping("/select_customer_list")
  278. public ModelAndView selectCustomerList(HttpServletRequest request, CustomerInfo customerInfo,
  279. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  280. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  281. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
  282. ModelAndView mv = new ModelAndView("cm/customer/custome_list");
  283. PagedResult<CustomerInfo> pagedResult = customerService.listCustomer(pageNO, pageSize, customerInfo, totalNum == 0);
  284. if (totalNum != 0) {
  285. pagedResult.setTotal(totalNum);
  286. }
  287. ProductType productType = new ProductType();
  288. productType.setTypeStatus(1);
  289. //查询产品类型集合
  290. List<ProductType> typeList = productService.listProductType(productType);
  291. //查询客诉类型集合
  292. List<ComplaintTypeInfo> complaintTypeList = complaintTypeInfoService.listComplaintTypeInfo(new ComplaintTypeInfo());
  293. //查询跟进客服集合
  294. Admin admin = new Admin();
  295. admin.setAdminStatus(1);
  296. List<Admin> adminList = sysService.listSelectAdmin(admin);
  297. //获取登录人id
  298. Integer loginAdminId = AdminUtils.getLoginAdminId();
  299. mv.addObject("loginAdminId",loginAdminId);
  300. mv.addObject("typeList", typeList);
  301. mv.addObject("complaintTypeList", complaintTypeList);
  302. mv.addObject("adminList", adminList);
  303. customerInfo.setVisit(null);
  304. customerInfo.setCustomerCommon(null);
  305. StitchAttrUtil.setModelAndView(customerInfo, mv, "/admin/customer/select_customer_list", pagedResult);
  306. return mv;
  307. }
  308. /**
  309. * 进入客诉基本信息页面
  310. *
  311. * @param request
  312. * @return
  313. * @throws Exception
  314. */
  315. @RequiresPermissions("customer:select:customer")
  316. @RequestMapping("/_customer_info")
  317. public ModelAndView toCustomerInfo(HttpServletRequest request) throws Exception {
  318. ModelAndView mv = new ModelAndView("cm/customer/custome_detail");
  319. String customerId = request.getParameter("customerId");
  320. mv.addObject("customerId", customerId);
  321. return mv;
  322. }
  323. /**
  324. * 查询客诉基本信息
  325. *
  326. * @param request
  327. * @return
  328. * @throws Exception
  329. */
  330. @ResponseBody
  331. @RequiresPermissions("customer:select:customer")
  332. @RequestMapping("/get_customer_info")
  333. public ResponseJson getCustomerInfo(HttpServletRequest request) throws Exception {
  334. String customerId = request.getParameter("customerId");
  335. if (!StringUtils.isNotEmpty(customerId)) {
  336. return new ResponseJson(500, "该客诉信息不存在!", 500);
  337. }
  338. CustomerInfo customerInfo = new CustomerInfo();
  339. customerInfo.setCustomerId(Integer.parseInt(customerId));
  340. Map<String, Object> map = customerService.getCustomerInfo(customerInfo);
  341. ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
  342. rj.addResponseKeyValue("customerCommon", map.get("customerCommon"));
  343. rj.addResponseKeyValue("customer", map.get("customer"));
  344. rj.addResponseKeyValue("salesOrder", map.get("salesOrder"));
  345. return rj;
  346. }
  347. /**
  348. * 进入添加回访页面
  349. *
  350. * @param request
  351. * @return
  352. * @throws Exception
  353. */
  354. @RequiresPermissions("customer:select:customer")
  355. @RequestMapping("/_add_visit")
  356. public ModelAndView toAddVisit(HttpServletRequest request) throws Exception {
  357. ModelAndView mv = new ModelAndView("cm/customer/add_visit");
  358. String customerId = request.getParameter("customerId");
  359. //查询跟进客服集合
  360. Admin admin = new Admin();
  361. admin.setAdminStatus(1);
  362. List<Admin> adminList = sysService.listSelectAdmin(admin);
  363. //获取登录人id
  364. Integer loginAdminId = AdminUtils.getLoginAdminId();
  365. mv.addObject("loginAdminId",loginAdminId);
  366. mv.addObject("customerId", customerId);
  367. mv.addObject("adminList", adminList);
  368. return mv;
  369. }
  370. /**
  371. * 添加回访信息
  372. *
  373. * @param request
  374. * @param visit
  375. * @return
  376. */
  377. @ResponseBody
  378. @RequiresPermissions("customer:add:visit")
  379. @RequestMapping("/add_visit_info")
  380. public ResponseJson addVisitInfo(HttpServletRequest request, Visit visit) throws Exception {
  381. String visitAdminId = request.getParameter("visitAdminId");
  382. if (!StringUtils.isNotEmpty(visitAdminId)) {
  383. return new ResponseJson(500, "请选择回访人!", 500);
  384. }
  385. visit.setAdminId(Integer.parseInt(visitAdminId));
  386. visit.setVisitStatus(1);
  387. visit.setVisitCreateTime(new Date());
  388. int num = visitService.addVisitInfo(visit, visit.getCustomerId());
  389. if (num > 0) {
  390. return new ResponseJson(200, "修改成功!", 200);
  391. } else {
  392. return new ResponseJson(500, "修改失败!", 500);
  393. }
  394. }
  395. /**
  396. * 修改客诉状态为已解决
  397. *
  398. * @param request
  399. * @return
  400. */
  401. @ResponseBody
  402. @RequiresPermissions("customer:update:customerIsSolve")
  403. @RequestMapping("/update_customerIsSolve")
  404. public ResponseJson updateCustomerIsSolve(HttpServletRequest request) throws Exception {
  405. String customerId = request.getParameter("customerId");
  406. if (!StringUtils.isNotEmpty(customerId)) {
  407. return new ResponseJson(500, "该客诉信息不存在!", 500);
  408. }
  409. //根据id获取客诉信息
  410. CustomerInfo customer = customerService.getCustomerInfo(Integer.parseInt(customerId));
  411. if (customer == null) {
  412. return new ResponseJson(500, "该客诉信息不存在!", 500);
  413. }
  414. if (customer.getCustomerIsSolve().intValue() != 2) {
  415. return new ResponseJson(500, "该客诉信息不能修改为已解决状态!", 500);
  416. }
  417. CustomerInfo customerInfo = new CustomerInfo();
  418. customerInfo.setCustomerId(Integer.parseInt(customerId));
  419. customerInfo.setCustomerIsSolve(1);
  420. //修改客诉信息
  421. int num = customerService.updateCustomerInfo(customerInfo);
  422. if (num > 0) {
  423. return new ResponseJson(200, "修改成功!", 200);
  424. } else {
  425. return new ResponseJson(500, "修改失败!", 500);
  426. }
  427. }
  428. /**
  429. * 查询客服
  430. *
  431. * @param request
  432. * @return
  433. */
  434. @ResponseBody
  435. @RequiresPermissions("customer:add:customer")
  436. @RequestMapping("/select_sys_admin")
  437. public ResponseJson selectSysAdmin(HttpServletRequest request) throws Exception {
  438. ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
  439. Integer adminId = AdminUtils.getLoginAdminId();
  440. Admin admin = new Admin();
  441. List<Admin> adminList = sysService.listSelectAdmin(admin);
  442. if (adminList.size() > 0) {
  443. rj.addResponseKeyValue("adminList", adminList);
  444. rj.addResponseKeyValue("adminId", adminId);
  445. return rj;
  446. } else {
  447. return new ResponseJson(500, "查询失败!", 500);
  448. }
  449. }
  450. /**
  451. * 查询产品类型
  452. *
  453. * @param request
  454. * @return
  455. */
  456. @ResponseBody
  457. @RequiresPermissions("customer:add:customer")
  458. @RequestMapping("/select_produce_type")
  459. public ResponseJson selectProduceType(HttpServletRequest request) throws Exception {
  460. ResponseJson rj = new ResponseJson(200, "修改成功!", 200);
  461. ProductType productType = new ProductType();
  462. List<ProductType> productTypeList = productService.listProductType(productType);
  463. if (productTypeList != null && productTypeList.size() > 0) {
  464. rj.addResponseKeyValue("productTypeList", productTypeList);
  465. return rj;
  466. } else {
  467. return new ResponseJson(500, "查询失败!", 500);
  468. }
  469. }
  470. /**
  471. * 查询产品
  472. *
  473. * @param request
  474. * @return
  475. */
  476. @ResponseBody
  477. @RequiresPermissions("customer:add:customer")
  478. @RequestMapping("/select_produce")
  479. public ResponseJson selectProduce(HttpServletRequest request) {
  480. ResponseJson rj = new ResponseJson(200, "查询成功!", 200);
  481. Product product = new Product();
  482. List<Product> productList = productService.listProduce(product);
  483. for (Product pro : productList) {
  484. ProductColor productColor = new ProductColor();
  485. productColor.setColorProductId(pro.getProductId());
  486. List<ProductColor> productColorList = productService.listProduceColor(productColor);
  487. pro.setColorList(productColorList);
  488. }
  489. if (productList != null && productList.size() > 0) {
  490. rj.addResponseKeyValue("productList", productList);
  491. return rj;
  492. } else {
  493. return new ResponseJson(500, "查询失败!", 500);
  494. }
  495. }
  496. /**
  497. * 查询产品
  498. *
  499. * @param request
  500. * @return
  501. */
  502. @ResponseBody
  503. @RequiresPermissions("customer:add:customer")
  504. @RequestMapping("/select_produce_fittings")
  505. public ResponseJson selectProduceFittings(HttpServletRequest request, FittingsInfo fittingsInfo) {
  506. ResponseJson rj = new ResponseJson(200, "查询成功!", 200);
  507. List<FittingsInfo> produceFittingsList = fittingsInfoService.listFittings(fittingsInfo);
  508. if (produceFittingsList != null && produceFittingsList.size() > 0) {
  509. rj.addResponseKeyValue("produceFittingsList", produceFittingsList);
  510. return rj;
  511. } else {
  512. return new ResponseJson(500, "查询失败!", 500);
  513. }
  514. }
  515. /**
  516. * 添加客诉
  517. *
  518. * @param request
  519. * @return
  520. */
  521. @ResponseBody
  522. @RequiresPermissions("customer:add:customer")
  523. @RequestMapping("/save_customer")
  524. public ResponseJson addCustomer(HttpServletRequest request, CustomerInfo customerInfo, SalesOrder salesOrder, CustomerCommon customerCommon,
  525. String sendProdcuesJson, String sendFittingsJson, String closedProdcuesJson, String closedFittingsJson) throws Exception {
  526. Integer flag = 0;
  527. JSONArray jsonArray;
  528. List<SendProdcue> sendProdcueList ;
  529. List<SendFitting> sendFittingList ;
  530. List<ClosedProdcue> closedProdcueList ;
  531. List<ClosedFitting> closedFittingList ;
  532. jsonArray = JSONArray.fromObject(sendProdcuesJson);
  533. sendProdcueList = (List) JSONArray.toCollection(jsonArray, SendProdcue.class);
  534. jsonArray = JSONArray.fromObject(sendFittingsJson);
  535. sendFittingList = (List) JSONArray.toCollection(jsonArray, SendFitting.class);
  536. jsonArray = JSONArray.fromObject(closedProdcuesJson);
  537. closedProdcueList = (List) JSONArray.toCollection(jsonArray, ClosedProdcue.class);
  538. jsonArray = JSONArray.fromObject(closedFittingsJson);
  539. closedFittingList = (List) JSONArray.toCollection(jsonArray, ClosedFitting.class);
  540. customerCommon.setSendProdcues(sendProdcueList);
  541. customerCommon.setSendFittings(sendFittingList);
  542. customerCommon.setClosedProdcues(closedProdcueList);
  543. customerCommon.setClosedFittings(closedFittingList);
  544. customerInfo.setCustomerCommon(customerCommon);
  545. String orderId = "";
  546. if(customerInfo.getCustomerIsSolve() == 3 || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ){
  547. Integer adminId = AdminUtils.getLoginAdminId();
  548. orderId = OrderNoUtil.createOrderCode(adminId);
  549. }
  550. customerInfo.setTransactionNumber(orderId);
  551. try{
  552. flag = customerService.saveCustomerInfo(customerInfo, salesOrder);
  553. }catch (RuntimeException e){
  554. return new ResponseJson(500, e.getMessage(), 500);
  555. }
  556. if (flag < 1) {
  557. return new ResponseJson(500, "添加客诉失败!", 500);
  558. } else {
  559. return new ResponseJson(200, "添加客诉成功!", 200);
  560. }
  561. }
  562. /**
  563. * 验证方法
  564. *
  565. * @param customerInfo
  566. * @return
  567. */
  568. public boolean isValiData(CustomerInfo customerInfo) {
  569. boolean flag = true;
  570. // if (customerInfo.getBomName() == null || "".equals(customerInfo.getBomName())) {
  571. // return false;
  572. // }
  573. return flag;
  574. }
  575. /**
  576. * 添加客诉
  577. *
  578. * @param request
  579. * @return
  580. */
  581. @ResponseBody
  582. @RequiresPermissions("customer:add:customer")
  583. @RequestMapping("/send_phone_sms")
  584. public ResponseJson sendPhoneSms(HttpServletRequest request,String type,String phone,Integer typeCompany,ComplaintQuestionInfo complaintQuestionInfo) throws Exception {
  585. String url = NameUtils.getConfig("website");
  586. Integer flag = 1;
  587. if(typeCompany == null || typeCompany == 0){
  588. return new ResponseJson(500, "未获取到产品类型!", 500);
  589. }
  590. String con = "";
  591. if(type != null && !"".equals(type)){
  592. if( "p".equals(type)){ //problem" 问题处理; mailAddress:邮寄地址;
  593. if(complaintQuestionInfo.getQuestionId() == null || "".equals(complaintQuestionInfo.getQuestionId())){
  594. complaintQuestionInfo.setQuestionState(1);
  595. complaintQuestionInfo.setQuestionIsQcDetect(0);
  596. complaintQuestionInfo = complaintQuestionInfoService.insertBackInfo(complaintQuestionInfo);
  597. }else{
  598. complaintQuestionInfo.setSmallClassId(null); //不能修改小类类型
  599. flag = complaintQuestionInfoService.updateQuestionById(complaintQuestionInfo);
  600. if (flag < 1) {
  601. return new ResponseJson(500, "问题修改失败!", 500);
  602. }
  603. }
  604. url += "/"+complaintQuestionInfo.getQuestionId();
  605. switch (typeCompany){
  606. case 1:
  607. con = SmsConfig.SEND_PRODUCT_SEND_WATERO;
  608. break;
  609. case 2:
  610. con = SmsConfig.SEND_PRODUCT_SEND_SHANGDUO;
  611. break;
  612. case 3:
  613. con = SmsConfig.SEND_PRODUCT_SEND_YULIA;
  614. break;
  615. }
  616. }else if( "m".equals(type)){
  617. if(complaintQuestionInfo.getQuestionId() == null){
  618. return new ResponseJson(500, "未获取到邮寄信息!", 500);
  619. }
  620. complaintQuestionInfo.setQuestionName(null);
  621. complaintQuestionInfo.setSmallClassId(null);
  622. url += "/5";
  623. switch (typeCompany){
  624. case 1:
  625. con = SmsConfig.SEND_PRODUCT_SMS_WATERO;
  626. break;
  627. case 2:
  628. con = SmsConfig.SEND_PRODUCT_SMS_SHANGDUO;
  629. break;
  630. case 3:
  631. con = SmsConfig.SEND_PRODUCT_SMS_YULIA;
  632. break;
  633. }
  634. }
  635. }
  636. String text = MessageFormat.format(con, url);
  637. logger.info("给 "+ phone +" 手机用户发送短信:" + text );
  638. String result = smsService.sendOtherCMS(phone, text);
  639. if("SUCCESS".equals(result)){
  640. return new ResponseJson(200, "发送短信成功", 200);
  641. }else{
  642. return new ResponseJson(500, "发送短信失败,失败原因:" + result, 500);
  643. }
  644. }
  645. /**
  646. * 进入回访完成页面
  647. * @param request
  648. * @return
  649. * @throws Exception
  650. */
  651. @RequiresPermissions("customer:update:visit")
  652. @RequestMapping("/_update_visit_info")
  653. public ModelAndView toUpdateVisitFinish(HttpServletRequest request) throws Exception {
  654. ModelAndView mv = new ModelAndView("cm/customer/visit_finish");
  655. String customerId = request.getParameter("customerId");
  656. mv.addObject("customerId", customerId);
  657. return mv;
  658. }
  659. /**
  660. * 添加回访完成内容
  661. *
  662. * @param request
  663. * @param visit
  664. * @return
  665. */
  666. @ResponseBody
  667. @RequiresPermissions("customer:update:visit")
  668. @RequestMapping("/update_visit_finish")
  669. public ResponseJson updateVisitFinish(HttpServletRequest request, Visit visit) throws Exception {
  670. String customerId = request.getParameter("finish_customerId");
  671. if (!StringUtils.isNotEmpty(customerId)) {
  672. return new ResponseJson(500, "该客诉信息不存在!", 500);
  673. }
  674. visit.setCustomerId(Integer.parseInt(customerId));
  675. visit.setVisitStatus(2);
  676. //修改回访信息内容
  677. int num = visitService.updateVisit(visit);
  678. if (num > 0) {
  679. return new ResponseJson(200, "添加成功!", 200);
  680. } else {
  681. return new ResponseJson(500, "添加失败!", 500);
  682. }
  683. }
  684. /**
  685. * 进入回访信息详情
  686. * @param request
  687. * @return
  688. * @throws Exception
  689. */
  690. @RequiresPermissions("customer:get:visit")
  691. @RequestMapping("/_visit_info")
  692. public ModelAndView toVisitInfo(HttpServletRequest request) throws Exception {
  693. ModelAndView mv = new ModelAndView("cm/customer/visit_detail");
  694. String customerId = request.getParameter("customerId");
  695. mv.addObject("customerId", customerId);
  696. return mv;
  697. }
  698. /**
  699. * 获取回访信息详情
  700. *
  701. * @param request
  702. * @return
  703. */
  704. @ResponseBody
  705. @RequiresPermissions("customer:get:visit")
  706. @RequestMapping("/get_visit_info")
  707. public ResponseJson getVisitInfo(HttpServletRequest request) throws Exception {
  708. String customerId = request.getParameter("customerId");
  709. if (!StringUtils.isNotEmpty(customerId)) {
  710. return new ResponseJson(500, "该客诉信息不存在!", 500);
  711. }
  712. Visit visit = new Visit();
  713. visit.setCustomerId(Integer.parseInt(customerId));
  714. //查询回访信息集合
  715. List<Visit> visitList = visitService.listVisit(visit);
  716. if (visitList == null || visitList.size() == 0) {
  717. return new ResponseJson(500, "该客诉没有回访信息!", 500);
  718. }
  719. visit = visitList.get(0);
  720. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  721. rj.addResponseKeyValue("visit", visit);
  722. return rj;
  723. }
  724. /**
  725. * 进入问题描述页面
  726. * @param request
  727. * @return
  728. * @throws Exception
  729. */
  730. @RequiresPermissions("customer:get:describe")
  731. @RequestMapping("/_question_describe")
  732. public ModelAndView toQuestionDescribe(HttpServletRequest request) throws Exception {
  733. ModelAndView mv = new ModelAndView("cm/customer/describe_detail");
  734. String customerId = request.getParameter("customerId");
  735. mv.addObject("customerId", customerId);
  736. return mv;
  737. }
  738. /**
  739. * 获取问题描述信息
  740. *
  741. * @param request
  742. * @return
  743. */
  744. @ResponseBody
  745. @RequiresPermissions("customer:get:describe")
  746. @RequestMapping("/get_describe_info")
  747. public ResponseJson getDescribeInfo(HttpServletRequest request) throws Exception {
  748. String customerId = request.getParameter("customerId");
  749. if (!StringUtils.isNotEmpty(customerId)) {
  750. return new ResponseJson(500, "该客诉信息不存在!", 500);
  751. }
  752. QuestionDescribe describe = new QuestionDescribe();
  753. describe.setCustomerId(Integer.parseInt(customerId));
  754. //查询问题集合
  755. List<QuestionDescribe> questionList = questionDescribeService.listQuestionDescribe(describe);
  756. if (questionList == null || questionList.size() == 0) {
  757. return new ResponseJson(500, "该客诉信息没有问题描述!", 500);
  758. }
  759. describe = questionList.get(0);
  760. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  761. rj.addResponseKeyValue("describe", describe);
  762. return rj;
  763. }
  764. /**
  765. * 进入修改换新页面
  766. * @param request
  767. * @return
  768. * @throws Exception
  769. */
  770. @RequiresPermissions("customer:update:renewed")
  771. @RequestMapping("/_update_renewed")
  772. public ModelAndView toUpdateRenewed(HttpServletRequest request) throws Exception {
  773. ModelAndView mv = new ModelAndView("cm/customer/update_renewed");
  774. String customerId = request.getParameter("customerId");
  775. mv.addObject("customerId", customerId);
  776. return mv;
  777. }
  778. /**
  779. * 获取换新详情
  780. *
  781. * @param request
  782. * @return
  783. */
  784. @ResponseBody
  785. @RequiresPermissions("customer:get:renewed")
  786. @RequestMapping("/get_renewed_info")
  787. public ResponseJson getRenewedInfo(HttpServletRequest request) throws Exception {
  788. String customerId = request.getParameter("customerId");
  789. if (!StringUtils.isNotEmpty(customerId)) {
  790. return new ResponseJson(500, "该客诉信息不存在!", 500);
  791. }
  792. Renewed renewed = new Renewed();
  793. renewed.setCustomerId(Integer.parseInt(customerId));
  794. renewed.setRenewedState(1);
  795. //获取换新详情和检测信息
  796. renewed = customerService.getRenewedInfo(renewed);
  797. if (renewed == null) {
  798. return new ResponseJson(500, "该客诉没有换新信息!", 500);
  799. } else {
  800. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  801. rj.addResponseKeyValue("renewed", renewed);
  802. return rj;
  803. }
  804. }
  805. /**
  806. * 修改换新信息
  807. *
  808. * @param request
  809. * @param renewed
  810. * @return
  811. * @throws Exception
  812. */
  813. @ResponseBody
  814. @RequiresPermissions("customer:update:renewed")
  815. @RequestMapping("/update_renewed_info")
  816. public ResponseJson updateRenewedInfo(HttpServletRequest request, Renewed renewed) throws Exception {
  817. String closedProducts = request.getParameter("closed_products");
  818. String closedFittings = request.getParameter("closed_fittings");
  819. String mergeAddress = request.getParameter("merge_address");
  820. if (!StringUtils.isNotEmpty(renewed.getRenewedId().toString())) {
  821. return new ResponseJson(500, "该换新信息不能修改!", 500);
  822. }
  823. if (StringUtils.isNotEmpty(renewed.getRenewedBackPostage().toString())) {
  824. renewed.setRenewedBackPostage(renewed.getRenewedBackPostage().intValue() * 100);
  825. }
  826. if (!StringUtils.isNotEmpty(renewed.getRenewedBackEfastOrderId())) {
  827. return new ResponseJson(500, "请输入efast订单号!", 500);
  828. }
  829. if (StringUtils.isNotEmpty(mergeAddress)) {
  830. renewed.setRenewedSendMergeAddress(mergeAddress);
  831. }
  832. //修改换新信息
  833. int num = renewedService.updateRenewedInfo(renewed, closedProducts, closedFittings);
  834. if (num > 0) {
  835. return new ResponseJson(200, "修改成功!", 200);
  836. } else {
  837. return new ResponseJson(500, "修改失败!", 500);
  838. }
  839. }
  840. /**
  841. * 进入修改维修页面
  842. * @param request
  843. * @return
  844. * @throws Exception
  845. */
  846. @RequiresPermissions("customer:update:repair")
  847. @RequestMapping("/_to_update_repair")
  848. public ModelAndView toUpdateRepair(HttpServletRequest request) throws Exception {
  849. ModelAndView mv = new ModelAndView("cm/customer/update_repair");
  850. String customerId = request.getParameter("customerId");
  851. mv.addObject("customerId", customerId);
  852. return mv;
  853. }
  854. /**
  855. * 进入修改维修页面
  856. *
  857. * @param request
  858. * @return
  859. * @throws Exception
  860. */
  861. @ResponseBody
  862. @RequiresPermissions("customer:update:repair")
  863. @RequestMapping("/_update_repair")
  864. public ResponseJson updateRepairUI(HttpServletRequest request) throws Exception {
  865. String customerId = request.getParameter("customerId");
  866. if (!StringUtils.isNotEmpty(customerId)) {
  867. return new ResponseJson(500, "该客诉信息不存在!", 500);
  868. }
  869. Repair repair = new Repair();
  870. repair.setCustomerId(Integer.parseInt(customerId));
  871. repair.setRepairState(1);
  872. //获取维修详情和品质检测信息
  873. repair = customerService.getRepairInfo(repair);
  874. if (repair == null) {
  875. return new ResponseJson(500, "该客诉没有维修信息!", 500);
  876. } else {
  877. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  878. rj.addResponseKeyValue("repair", repair);
  879. return rj;
  880. }
  881. }
  882. /**
  883. * 修改维修处理信息
  884. *
  885. * @param request
  886. * @param repair
  887. * @return
  888. * @throws Exception
  889. */
  890. @ResponseBody
  891. @RequiresPermissions("customer:update:repair")
  892. @RequestMapping("/update_repair_info")
  893. public ResponseJson updateRepairInfo(HttpServletRequest request, Repair repair) throws Exception {
  894. if (!StringUtils.isNotEmpty(repair.getRepairId().toString())) {
  895. return new ResponseJson(500, "该换新信息不能修改!", 500);
  896. }
  897. String closedProducts = request.getParameter("closed_products");
  898. String closedFittings = request.getParameter("closed_fittings");
  899. String provinceNumber = request.getParameter("repairProvinceNumber");
  900. String cityNumber = request.getParameter("repairCityNumber");
  901. String areaNumber = request.getParameter("repairAreaNumber");
  902. String mergeAddress = request.getParameter("merge_address");
  903. if (StringUtils.isNotEmpty(provinceNumber)) {
  904. repair.setProvinceNumber(Integer.parseInt(provinceNumber));
  905. }
  906. if (StringUtils.isNotEmpty(cityNumber)) {
  907. repair.setCityNumber(Integer.parseInt(cityNumber));
  908. }
  909. if (StringUtils.isNotEmpty(areaNumber)) {
  910. repair.setAreaNumber(Integer.parseInt(areaNumber));
  911. }
  912. if (StringUtils.isNotEmpty(repair.getRepairBackPostage().toString())) {
  913. repair.setRepairBackPostage(repair.getRepairBackPostage().intValue() * 100);
  914. }
  915. if (!StringUtils.isNotEmpty(repair.getRepairBackEfastOrderId())) {
  916. return new ResponseJson(500, "请输入efast订单号!", 500);
  917. }
  918. if (StringUtils.isNotEmpty(mergeAddress)) {
  919. repair.setRepairSendMergeAddress(mergeAddress);
  920. }
  921. /*SalesOrder order = new SalesOrder();
  922. order.setSalesOrderStatus(1);
  923. order.setSalesOrderId(repair.getRepairBackEfastOrderId());
  924. int count = salesOrderService.getOrderInfoCount(order);
  925. //判断efast订单是否可查出有效数据
  926. if (count == 0) {
  927. return new ResponseJson(500, "该efast订单号无效,请重新输入!", 500);
  928. }*/
  929. //修改维修信息
  930. int num = repairService.updateRepairInfo(repair,closedProducts,closedFittings);
  931. if (num > 0) {
  932. return new ResponseJson(200, "修改成功!", 200);
  933. } else {
  934. return new ResponseJson(500, "修改失败!", 500);
  935. }
  936. }
  937. /**
  938. * 进入修改退货页面
  939. * @param request
  940. * @return
  941. * @throws Exception
  942. */
  943. @RequiresPermissions("customer:update:backGoods")
  944. @RequestMapping("/_to_update_book_goods")
  945. public ModelAndView toUpdateBookGoods(HttpServletRequest request) throws Exception {
  946. ModelAndView mv = new ModelAndView("cm/customer/update_back_goods");
  947. String customerId = request.getParameter("customerId");
  948. mv.addObject("customerId", customerId);
  949. return mv;
  950. }
  951. /**
  952. * 进入修改售后退货页面
  953. *
  954. * @param request
  955. * @return
  956. * @throws Exception
  957. */
  958. @ResponseBody
  959. @RequiresPermissions("customer:update:backGoods")
  960. @RequestMapping("/_update_back_goods")
  961. public ResponseJson updateBackGoodsUI(HttpServletRequest request) throws Exception {
  962. String customerId = request.getParameter("customerId");
  963. if (!StringUtils.isNotEmpty(customerId)) {
  964. return new ResponseJson(500, "该客诉信息不存在!", 500);
  965. }
  966. BackGoods backGoods = new BackGoods();
  967. backGoods.setCustomerId(Integer.parseInt(customerId));
  968. //获取售后退货信息
  969. backGoods = customerService.getBackGoods(backGoods);
  970. if (backGoods == null) {
  971. return new ResponseJson(500, "该客诉没有售后退货信息!", 500);
  972. } else {
  973. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  974. rj.addResponseKeyValue("backGoods", backGoods);
  975. return rj;
  976. }
  977. }
  978. /**
  979. * 修改售后退货信息
  980. *
  981. * @param request
  982. * @param backGoods
  983. * @return
  984. * @throws Exception
  985. */
  986. @ResponseBody
  987. @RequiresPermissions("customer:update:backGoods")
  988. @RequestMapping("/update_back_goods")
  989. public ResponseJson updateBackGoods(HttpServletRequest request, BackGoods backGoods) throws Exception {
  990. String closedProducts = request.getParameter("closed_products");
  991. String closedFittings = request.getParameter("closed_fittings");
  992. if (!StringUtils.isNotEmpty(backGoods.getBackGoodsId().toString())) {
  993. return new ResponseJson(500, "该售后退货信息不能修改!", 500);
  994. }
  995. if (StringUtils.isNotEmpty(backGoods.getBackGoodsBackPostage().toString())) {
  996. backGoods.setBackGoodsBackPostage(backGoods.getBackGoodsBackPostage().intValue() * 100);
  997. }
  998. int num = backGoodsService.updateBackGoods(backGoods, closedProducts, closedFittings);
  999. if (num > 0) {
  1000. return new ResponseJson(200, "修改成功!", 200);
  1001. } else {
  1002. return new ResponseJson(500, "修改失败!", 500);
  1003. }
  1004. }
  1005. /**
  1006. * 进入修改补寄页面
  1007. * @param request
  1008. * @return
  1009. * @throws Exception
  1010. */
  1011. @RequiresPermissions("customer:update:reissue")
  1012. @RequestMapping("/_to_update_reissue")
  1013. public ModelAndView toUpdateReissue(HttpServletRequest request) throws Exception {
  1014. ModelAndView mv = new ModelAndView("cm/customer/update_reissue");
  1015. String customerId = request.getParameter("customerId");
  1016. mv.addObject("customerId", customerId);
  1017. return mv;
  1018. }
  1019. /**
  1020. * 进入修改补寄信息页面
  1021. * @param request
  1022. * @return
  1023. */
  1024. @ResponseBody
  1025. @RequiresPermissions("customer:update:reissue")
  1026. @RequestMapping("/get_reissue_info")
  1027. public ResponseJson getReissueInfo(HttpServletRequest request) {
  1028. String customerId = request.getParameter("customerId");
  1029. if (!StringUtils.isNotEmpty(customerId)) {
  1030. return new ResponseJson(500, "该客诉信息不存在!", 500);
  1031. }
  1032. Reissue reissue = new Reissue();
  1033. reissue.setCustomerId(Integer.parseInt(customerId));
  1034. //获取售后补寄信息
  1035. reissue = customerService.getReissue(reissue);
  1036. if (reissue == null) {
  1037. return new ResponseJson(500, "该客诉没有售后退货信息!", 500);
  1038. } else {
  1039. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  1040. rj.addResponseKeyValue("reissue", reissue);
  1041. return rj;
  1042. }
  1043. }
  1044. /**
  1045. * 修改售后补寄信息
  1046. *
  1047. * @param request
  1048. * @param reissue
  1049. * @return
  1050. * @throws Exception
  1051. */
  1052. @ResponseBody
  1053. @RequiresPermissions("customer:update:reissue")
  1054. @RequestMapping("/update_reissue_info")
  1055. public ResponseJson updateReissueInfo(HttpServletRequest request, Reissue reissue) throws Exception {
  1056. String provinceNumber = request.getParameter("reissueProvinceNumber");
  1057. String cityNumber = request.getParameter("reissueCityNumber");
  1058. String areaNumber = request.getParameter("reissueAreaNumber");
  1059. String mergeAddress = request.getParameter("merge_address");
  1060. if (!StringUtils.isNotEmpty(reissue.getReissueId().toString())) {
  1061. return new ResponseJson(500, "该售后补寄信息不能修改!", 500);
  1062. }
  1063. if (StringUtils.isNotEmpty(provinceNumber)) {
  1064. reissue.setProvinceNumber(Integer.parseInt(provinceNumber));
  1065. }
  1066. if (StringUtils.isNotEmpty(cityNumber)) {
  1067. reissue.setCityNumber(Integer.parseInt(cityNumber));
  1068. }
  1069. if (StringUtils.isNotEmpty(areaNumber)) {
  1070. reissue.setAreaNumber(Integer.parseInt(areaNumber));
  1071. }
  1072. if (StringUtils.isNotEmpty(mergeAddress)) {
  1073. reissue.setReissueSendMergeAddress(mergeAddress);
  1074. }
  1075. //修改售后补寄信息
  1076. int num = reissueService.updateReissueInfo(reissue);
  1077. if (num > 0) {
  1078. return new ResponseJson(200, "修改成功!", 200);
  1079. } else {
  1080. return new ResponseJson(500, "修改失败!", 500);
  1081. }
  1082. }
  1083. /**
  1084. * 进入修改退货页面
  1085. * @param request
  1086. * @return
  1087. * @throws Exception
  1088. */
  1089. @RequiresPermissions("customer:update:noreason")
  1090. @RequestMapping("/_update_noreason_back")
  1091. public ModelAndView toUpdateNoreasonBack(HttpServletRequest request) throws Exception {
  1092. ModelAndView mv = new ModelAndView("cm/customer/update_noreason_back");
  1093. String customerId = request.getParameter("customerId");
  1094. mv.addObject("customerId", customerId);
  1095. return mv;
  1096. }
  1097. /**
  1098. * 获取无理由退货信息
  1099. * @param request
  1100. * @return
  1101. * @throws Exception
  1102. */
  1103. @ResponseBody
  1104. @RequiresPermissions("customer:update:noreason")
  1105. @RequestMapping("/get_noreason_back")
  1106. public ResponseJson getNoreasonBack(HttpServletRequest request) throws Exception {
  1107. String customerId = request.getParameter("customerId");
  1108. if (!StringUtils.isNotEmpty(customerId)) {
  1109. return new ResponseJson(500, "该客诉信息不存在!", 500);
  1110. }
  1111. NoreasonBack noreasonBack = new NoreasonBack();
  1112. noreasonBack.setCustomerId(Integer.parseInt(customerId));
  1113. noreasonBack.setNoreasonBackState(1);
  1114. //获取无理由退货信息
  1115. noreasonBack = customerService.getNoreasonBack(noreasonBack);
  1116. if (noreasonBack == null) {
  1117. return new ResponseJson(500, "该客诉没有无理由售后退货信息!", 500);
  1118. } else {
  1119. ResponseJson rj = new ResponseJson(200, "查询成功", 200);
  1120. rj.addResponseKeyValue("noreasonBack", noreasonBack);
  1121. return rj;
  1122. }
  1123. }
  1124. /**
  1125. * 修改售后无理由退货信息
  1126. *
  1127. * @param request
  1128. * @param noreasonBack
  1129. * @return
  1130. * @throws Exception
  1131. */
  1132. @ResponseBody
  1133. @RequiresPermissions("customer:update:noreason")
  1134. @RequestMapping("/update_noreason")
  1135. public ResponseJson updateNoreason(HttpServletRequest request, NoreasonBack noreasonBack) throws Exception {
  1136. String closedProducts = request.getParameter("closed_products");
  1137. String closedFittings = request.getParameter("closed_fittings");
  1138. if (!StringUtils.isNotEmpty(noreasonBack.getNoreasonBackId().toString())) {
  1139. return new ResponseJson(500, "该售后无理由退货信息不能修改!", 500);
  1140. }
  1141. if (StringUtils.isNotEmpty(noreasonBack.getNoreasonBackBackPostage().toString())) {
  1142. noreasonBack.setNoreasonBackBackPostage(noreasonBack.getNoreasonBackBackPostage().intValue() * 100);
  1143. }
  1144. int num = noreasonBackService.updateNoreasonBack(noreasonBack, closedProducts, closedFittings);
  1145. if (num > 0) {
  1146. return new ResponseJson(200, "修改成功!", 200);
  1147. } else {
  1148. return new ResponseJson(500, "修改失败!", 500);
  1149. }
  1150. }
  1151. /**
  1152. * 同步百胜订单
  1153. * @return
  1154. * @throws Exception
  1155. */
  1156. @ResponseBody
  1157. @RequiresPermissions("customer:sync:order")
  1158. @RequestMapping("/sync_efast_order")
  1159. public ResponseJson syncEfastOrder() throws Exception {
  1160. int pageNo = 1;
  1161. int pageSize = 20;
  1162. boolean flag = false; //控制是否还需要获取百胜订单信息
  1163. String date = "";
  1164. synchronized (lock) {
  1165. //根据时间排序查询订单信息
  1166. List<SalesOrder> orderList = salesOrderService.listSalesOrder(new SalesOrder());
  1167. if (orderList != null && orderList.size() > 0) {
  1168. SalesOrder salesOrder = orderList.get(0);
  1169. date = salesOrder.getSalesCreateTime().toString();
  1170. } else {
  1171. date = "2016-04-01";
  1172. }
  1173. do {
  1174. //批量获取百胜订单信息
  1175. JSONObject obj = efastOrderService.listOrderInfoFormEfast(pageNo, pageSize, date);
  1176. if (obj == null) {
  1177. return new ResponseJson(200, "没有可同步订单!", 200);
  1178. }
  1179. int pageSize1 = obj.getInt("page_size"); //百胜返回数据条目数
  1180. if (pageSize <= pageSize1) {
  1181. flag = true;
  1182. pageNo++;
  1183. } else {
  1184. flag = false;
  1185. }
  1186. salesOrderService.addSalesOrderList(obj);
  1187. } while (flag); //百胜返回条目数如果等于设置的分页条目数,则继续查询下一页
  1188. return new ResponseJson(200, "同步成功!", 200);
  1189. }
  1190. }
  1191. }