AdminCustomerController.java 52 KB

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