AdminOrderHandlers.java 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. package com.iamberry.wechat.handles.admin;
  2. import com.iamberry.app.tool.log.RatFWLogger;
  3. import com.iamberry.wechat.core.entity.OrderUtil;
  4. import com.iamberry.wechat.core.entity.ResultMsg;
  5. import com.iamberry.wechat.core.entity.drp.PlaceInfo;
  6. import com.iamberry.wechat.core.entity.member.CashLog;
  7. import com.iamberry.wechat.core.entity.member.Member;
  8. import com.iamberry.wechat.core.entity.mq.MQMessage;
  9. import com.iamberry.wechat.core.entity.order.MessageDto;
  10. import com.iamberry.wechat.core.entity.order.Order;
  11. import com.iamberry.wechat.core.entity.order.OrderActionDto;
  12. import com.iamberry.wechat.core.entity.order.OrderItem;
  13. import com.iamberry.wechat.core.entity.reback.RebackInfo;
  14. import com.iamberry.wechat.core.entity.relationship.DealerRelation;
  15. import com.iamberry.wechat.core.entity.relationship.WdRelation;
  16. import com.iamberry.wechat.face.drp.PlaceInfoService;
  17. import com.iamberry.wechat.face.efast.EfastRentService;
  18. import com.iamberry.wechat.face.member.MemberService;
  19. import com.iamberry.wechat.face.order.AdminOrderService;
  20. import com.iamberry.wechat.face.order.CodeService;
  21. import com.iamberry.wechat.face.reback.LoadRewardTaskService;
  22. import com.iamberry.wechat.face.reback.RebackServices;
  23. import com.iamberry.wechat.face.relationship.DealerRelationService;
  24. import com.iamberry.wechat.face.relationship.WdRelationService;
  25. import com.iamberry.wechat.handles.mq.MQServiceProxy;
  26. import com.iamberry.wechat.tools.DateTimeUtil;
  27. import com.iamberry.wechat.tools.NameUtils;
  28. import com.iamberry.wechat.tools.ResultInfo;
  29. import com.iamberry.wechat.utils.SendMessageUtil;
  30. import org.apache.commons.collections.map.HashedMap;
  31. import org.apache.commons.lang3.StringUtils;
  32. import org.springframework.beans.factory.annotation.Autowired;
  33. import org.springframework.stereotype.Controller;
  34. import org.springframework.web.bind.annotation.PathVariable;
  35. import org.springframework.web.bind.annotation.RequestMapping;
  36. import org.springframework.web.bind.annotation.RequestParam;
  37. import org.springframework.web.bind.annotation.ResponseBody;
  38. import org.springframework.web.servlet.ModelAndView;
  39. import javax.servlet.http.HttpServletRequest;
  40. import javax.servlet.http.HttpServletResponse;
  41. import java.io.IOException;
  42. import java.net.URLDecoder;
  43. import java.text.SimpleDateFormat;
  44. import java.util.Date;
  45. import java.util.List;
  46. import java.util.Map;
  47. import static com.iamberry.wechat.service.ImberryConfig.INFORM_SHIPPING;
  48. //import cn.jpush.api.common.connection.IHttpClient.RequestMethod;
  49. @Controller
  50. @RequestMapping("/admin/order")
  51. public class AdminOrderHandlers {
  52. @Autowired
  53. private AdminOrderService adminOrderService;
  54. @Autowired
  55. private OrderUtil orderUtil;
  56. @Autowired
  57. private SendMessageUtil sendMessageUtil;
  58. @Autowired
  59. private MemberService memberService;
  60. @Autowired
  61. private WdRelationService wdRelationService;
  62. @Autowired
  63. private DealerRelationService dealerRelationService;
  64. @Autowired
  65. private PlaceInfoService placeInfoService;
  66. @Autowired
  67. private RatFWLogger logger;
  68. @Autowired
  69. private MQServiceProxy mQservice;
  70. @Autowired
  71. private RebackServices rebackServices;
  72. @Autowired
  73. private EfastRentService efastRentService;
  74. @Autowired
  75. private CodeService codeService;
  76. /**
  77. * 后台进入订单列表功能
  78. *
  79. * @param request
  80. * @param pageSize
  81. * @param pageNO
  82. * @return ModelAndView
  83. * @throws Exception
  84. */
  85. @RequestMapping("/selectShopOrder")
  86. public ModelAndView selectShopOrder(HttpServletRequest request,
  87. @RequestParam(value = "pageSize", defaultValue = "20", required = false) Integer pageSize,
  88. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO) throws Exception {
  89. ModelAndView mv = new ModelAndView("admin/order/orderList");
  90. String orderStatus = request.getParameter("orderStatus");
  91. if (orderStatus == null || "".equals(orderStatus)) {
  92. orderStatus = "paySuccess";
  93. }
  94. // 订单状态,数字标识
  95. int status = -1;
  96. if (!orderStatus.equals("allOrder")) {
  97. status = orderUtil.getOrderStatusByStr(orderStatus);
  98. }
  99. Order order = new Order();
  100. order.setSalesStatus(status);
  101. order.getPage().setPageSize(pageSize);
  102. order.getPage().setPageNumber(pageNO);
  103. order.getPage().initRecordBegin();
  104. List<Order> orderList = this.adminOrderService.selectShopOrder(order);
  105. // 订单是否按照状态查询的, 用于页面
  106. if (status == -1) {
  107. mv.addObject("orderListIsStatus", false);
  108. for (Order orders : orderList) {
  109. // 用户昵称编码
  110. if (orders.getUserNickname() != null && !orders.getUserNickname().isEmpty()) {
  111. orders.setUserNickname(URLDecoder.decode(orders.getUserNickname(), "UTF-8"));
  112. }
  113. // 获取用户的操作权限
  114. orders.setOperations(orderUtil.orderStatusToOperation(orders.getSalesStatus(), orders.getSalesOrderid()));
  115. orders.setOrderLinkStatus(orderUtil.orderStatusToString(orders.getSalesStatus())); // 订单状态描述,中文
  116. // 遍历订单, 判断用户角色
  117. if (orders.getPlaceOpenID() != null && orders.getPlaceOpenID().equals(orders.getSalesOrderid())) {
  118. // 金牌会员
  119. orders.setUserResource("金牌会员");
  120. } else if (orders.getVipRole() != null && orders.getVipRole().equals("52") && orders.getUserResource().equals("3")) {
  121. // 金牌会员直属下线
  122. orders.setUserResource("金牌会员直属下线");
  123. } else {
  124. // 会员
  125. String role = "会员";
  126. switch (Integer.parseInt(orders.getUserResource())) {
  127. case 47:
  128. role = "合伙人下线";
  129. break;
  130. case 48:
  131. role = "门店下线";
  132. break;
  133. case 49:
  134. role = "微代理下线";
  135. break;
  136. case 51:
  137. role = "VIP会员下线";
  138. break;
  139. case 52:
  140. role = "金牌会员下线";
  141. break;
  142. case 53:
  143. role = "钻石下线";
  144. break;
  145. default:
  146. break;
  147. }
  148. orders.setUserResource(role);
  149. }
  150. }
  151. } else {
  152. mv.addObject("orderListIsStatus", true);
  153. for (Order orders : orderList) {
  154. // 用户昵称编码
  155. if (orders.getUserNickname() != null && !orders.getUserNickname().isEmpty()) {
  156. orders.setUserNickname(URLDecoder.decode(orders.getUserNickname(), "UTF-8"));
  157. }
  158. // 获取用户的操作权限
  159. orders.setOperations(orderUtil.orderStatusToOperation(orders.getSalesStatus(), orders.getSalesOrderid()));
  160. // 遍历订单, 判断用户角色
  161. if (orders.getPlaceOpenID() != null && orders.getPlaceOpenID().equals(orders.getSalesOrderid())) {
  162. // 金牌会员
  163. orders.setUserResource("金牌会员");
  164. } else if (orders.getVipRole() != null && orders.getVipRole().equals("52") && orders.getUserResource().equals("3")) {
  165. // 金牌会员直属下线
  166. orders.setUserResource("金牌会员直属下线");
  167. } else {
  168. // 会员
  169. String role = "会员";
  170. switch (Integer.parseInt(orders.getUserResource())) {
  171. case 47:
  172. role = "合伙人下线";
  173. break;
  174. case 48:
  175. role = "门店下线";
  176. break;
  177. case 49:
  178. role = "微代理下线";
  179. break;
  180. case 51:
  181. role = "VIP会员下线";
  182. break;
  183. case 52:
  184. role = "金牌会员下线";
  185. break;
  186. case 53:
  187. role = "钻石下线";
  188. break;
  189. default:
  190. break;
  191. }
  192. orders.setUserResource(role);
  193. }
  194. }
  195. }
  196. mv.addObject("orderList", orderList);
  197. mv.addObject("pageNO", pageNO);
  198. mv.addObject("orderStatus", status);// 订单状态
  199. mv.addObject("url", "/admin/order/selectShopOrder?orderStatus=" + orderStatus + "&pageSize=" + pageSize + "&pageNO=");
  200. mv.addObject("pageSize", this.adminOrderService.selectShopOrderCount(order));
  201. mv.addObject("orderStatusStr", orderUtil.orderStatusIntToOrderStatusString(status));// 订单状态描述(用于选中订单头)
  202. mv.addObject("orderLinkStatus", orderUtil.orderStatusToString(status));// 订单状态描述,中文(显示给用户看)
  203. mv.addObject("statusUrl", "/admin/order/selectShopOrder?bid=&sid=");
  204. return mv;
  205. }
  206. /**
  207. * 同步订单状态
  208. * @param request
  209. * @param orderId
  210. * @param type 1:销售订单
  211. * @throws Exception
  212. */
  213. @ResponseBody
  214. @RequestMapping("/select_efast_order/{orderId}/{type}")
  215. public ResultMsg selectEfastOrder(HttpServletRequest request,
  216. @PathVariable("orderId") String orderId,
  217. @PathVariable("type") Integer type) throws Exception {
  218. //efast的订单编号
  219. String efastOrderId = request.getParameter("efastOrderId");
  220. ResultMsg msg = new ResultMsg();
  221. if (!cn.jpush.api.utils.StringUtils.isNotEmpty(orderId) || type == null) {
  222. msg.setMessage("订单号或类型为空!");
  223. msg.setResultCode(ResultInfo.ERRORCODE);
  224. msg.setStatus(false);
  225. return msg;
  226. }
  227. //获取队列中的map集合
  228. Map<String, Object> queuesMap = new HashedMap();
  229. String id = efastOrderId;
  230. String EsastType = "1";
  231. //查询efast系统该订单的状态
  232. Map<String, Object> map = efastRentService.getEfastSendOrderInfo(id,EsastType);
  233. if (!(boolean) map.get("status")) {
  234. msg.setData("");
  235. msg.setMessage(map.get("result").toString());
  236. msg.setResultCode(ResultInfo.ERRORCODE);
  237. msg.setStatus(false);
  238. return msg;
  239. }
  240. Order order = new Order();
  241. order.setSalesOrderid(orderId);
  242. order.setSalesStatus(5);
  243. order.setSalesPostFirm((String) map.get("postFirm"));
  244. order.setSalesPostNum((String) map.get("postNum"));
  245. order.setOldStatus(2);
  246. //order.set
  247. int flag = adminOrderService.updateOrderDeliver(order);
  248. if (flag < 1){
  249. msg.setData("");
  250. msg.setMessage("修改订单状态失败");
  251. msg.setResultCode(ResultInfo.ERRORCODE);
  252. msg.setStatus(false);
  253. return msg;
  254. }
  255. Order or = new Order();
  256. or = adminOrderService.getShopOrderByOrderId(orderId);
  257. Member member = memberService.getMemberByUserOpenId(or.getSalesOpenid());
  258. if (member == null || 1 == member.getUserStatus() || 0 == member.getUserStatus()){ //未关注或者取消关注的,将发送手机短信
  259. logger.info("短信通知:"+ or.getSalesOpenid() +" 用户的订单已发货");
  260. String phone = or.getSalesAddressTel();
  261. codeService.informShipping(phone,INFORM_SHIPPING);
  262. }else if(2 == member.getUserStatus()){ //已关注的用户推送信息到公众号
  263. logger.info("公众号推送物流信息: "+ or.getSalesOpenid() +" 用户的订单已发货");
  264. //消息内容
  265. String data = ResultInfo.ORDERPACKAGETEMP;
  266. data = data.replaceFirst("firstValueOrder", ResultInfo.SHIPMENTMESSAGE)
  267. .replaceFirst("orderIdValueOrder", orderId)
  268. .replaceFirst("orderValuePackageId", SendMessageUtil.hashmap.get(map.get("postFirm")) + ":" + map.get("postNum"))
  269. .replaceFirst("orderRemarkValue", ResultInfo.INTOSHOP);
  270. sendMessageUtil.sendTemplateMessageToOpenid(data, or.getSalesOpenid(), ResultInfo.PAGE_SHIPMENT + orderId, 2);
  271. }
  272. msg.setData("");
  273. msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
  274. msg.setResultCode(ResultInfo.SUCCESSCODE);
  275. msg.setStatus(true);
  276. return msg;
  277. }
  278. /**
  279. * 订单详细信息
  280. *
  281. * @param request
  282. * @param orderId
  283. * @return ModelAndView
  284. * @throws Exception
  285. */
  286. @RequestMapping("/getShopOrderByOrderId/{orderId}")
  287. public ModelAndView getShopOrderByOrderId(HttpServletRequest request,
  288. @PathVariable("orderId") String orderId) throws Exception {
  289. ModelAndView mv = new ModelAndView("admin/order/order");
  290. if (null != orderId && !"".equals(orderId)) {
  291. Order order = this.adminOrderService.getShopOrderByOrderId(orderId);
  292. List<OrderItem> orderItemList = this.adminOrderService.getShopOrderItemByOrderId(orderId);
  293. // 用户昵称编码
  294. if (order.getUserNickname() != null && !order.getUserNickname().isEmpty()) {
  295. order.setUserNickname(URLDecoder.decode(order.getUserNickname(), "UTF-8"));
  296. }
  297. // 获取用户的操作权限
  298. order.setOperations(orderUtil.orderStatusToOperation(order.getSalesStatus(), order.getSalesOrderid()));
  299. order.setOrderLinkStatus(orderUtil.orderStatusToString(order.getSalesStatus())); // 订单状态描述,中文
  300. if (order.getSalesStatus() == 2) {
  301. // 给百胜推送信息
  302. try {
  303. MQMessage message = new MQMessage();
  304. message.setServiceToMessage(orderId);
  305. message.setServiceOtherMessage("efast.trade.detail.get");
  306. message.setServiceIsSend(2); // 没有推送的信息
  307. message.setServiceStatus(1); // 推送成功
  308. message.setServiceType(1); // 添加订单信息
  309. message.setServiceHandlerObjectName("efastOrderServiceImpl");
  310. message.setServiceHandlerMethodName("selectEfastSendOrderInfo");
  311. mQservice.insertMQMessage(message);
  312. } catch (Exception e) {
  313. // TODO: handle exception
  314. }
  315. } else if (order.getSalesStatus() == 8) {
  316. // 给百胜推送信息
  317. try {
  318. MQMessage message = new MQMessage();
  319. message.setServiceToMessage(orderId);
  320. message.setServiceOtherMessage("efast.order.return.info.fetch");
  321. message.setServiceIsSend(2); // 没有推送的信息
  322. message.setServiceStatus(1); // 推送成功
  323. message.setServiceType(1); // 添加订单信息
  324. message.setServiceHandlerObjectName("efastOrderServiceImpl");
  325. message.setServiceHandlerMethodName("selectEfastReturnOrderInfo");
  326. mQservice.insertMQMessage(message);
  327. } catch (Exception e) {
  328. // TODO: handle exception
  329. }
  330. }
  331. mv.addObject("order", order);
  332. mv.addObject("orderItemList", orderItemList);
  333. }
  334. return mv;
  335. }
  336. @RequestMapping(value = "/selectShopOrderByOrderId")
  337. public ModelAndView selectShopOrderByOrderId(HttpServletRequest request,
  338. @RequestParam(value = "pageSize", defaultValue = "20", required = false) Integer pageSize,
  339. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  340. OrderActionDto actionDto) throws Exception {
  341. ModelAndView mv = new ModelAndView("admin/order/orderList");
  342. Order order = new Order();
  343. String orderStatus = request.getParameter("orderStatus");
  344. //url需要进行拼接,拼接的内容是页面上的时间条件
  345. StringBuffer url = new StringBuffer("/admin/order/selectShopOrderByOrderId?orderStatus=" + actionDto.getOrderStatus());
  346. // 判断是否输入数据
  347. if (!(actionDto.getText() == null || actionDto.getText().isEmpty())) {
  348. url.append("&text=" + actionDto.getText());
  349. }
  350. //分页并带条件查询接收参数
  351. String beginTime = request.getParameter("beginDate");
  352. String endTime = request.getParameter("endDate");
  353. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  354. String salesAddressTel = request.getParameter("salesAddressTel");
  355. String salesAddressName = request.getParameter("salesAddressName");
  356. String salesAddressInfo = request.getParameter("salesAddressInfo");
  357. if (salesAddressTel != null && !"".equals(salesAddressTel)) {
  358. order.setSalesAddressTel(salesAddressTel);
  359. mv.addObject("salesAddressTel", salesAddressTel);
  360. url.append("&salesAddressTel=" + salesAddressTel);
  361. }
  362. if (salesAddressName != null && !"".equals(salesAddressName)) {
  363. order.setSalesAddressName(salesAddressName);
  364. mv.addObject("salesAddressName", salesAddressName);
  365. url.append("&salesAddressName=" + salesAddressName);
  366. }
  367. if (salesAddressInfo != null && !"".equals(salesAddressInfo)) {
  368. order.setSalesAddressInfo(salesAddressInfo);
  369. mv.addObject("salesAddressInfo", salesAddressInfo);
  370. url.append("&salesAddressInfo=" + salesAddressInfo);
  371. }
  372. if (null != beginTime && !"".equals(beginTime)) {
  373. if (!request.getMethod().equalsIgnoreCase("post")) {
  374. actionDto.setBeginDate(format.parse(new String(beginTime.getBytes("ISO-8859-1"), "UTF-8")));
  375. } else {
  376. actionDto.setBeginDate(format.parse(beginTime));
  377. }
  378. }
  379. if (null != endTime && !"".equals(endTime)) {
  380. if (!request.getMethod().equalsIgnoreCase("post")) {
  381. actionDto.setEndDate(format.parse(new String(endTime.getBytes("ISO-8859-1"), "UTF-8")));
  382. } else {
  383. actionDto.setEndDate(format.parse(endTime));
  384. }
  385. }
  386. if (null != actionDto.getBeginDate()) {
  387. url.append("&beginDate=" + format.format(actionDto.getBeginDate()));
  388. mv.addObject("beginDate", format.format(actionDto.getBeginDate()));
  389. }
  390. if (null != actionDto.getEndDate()) {
  391. url.append("&endDate=" + format.format(actionDto.getEndDate()));
  392. mv.addObject("endDate", format.format(actionDto.getEndDate()));
  393. }
  394. url.append("&pageSize=" + pageSize + "&pageNO=");
  395. if (orderStatus == null || "".equals(orderStatus)) {
  396. orderStatus = "paySuccess";
  397. }
  398. // 订单状态,数字标识
  399. int status = -1;
  400. if (!orderStatus.equals("allOrder")) {
  401. status = orderUtil.getOrderStatusByStr(orderStatus);
  402. }
  403. order.setSalesStatus(status);
  404. order.setSalesOrderid(actionDto.getText());
  405. order.setBeginDate(actionDto.getBeginDate());
  406. order.setEndDate(actionDto.getEndDate());
  407. order.getPage().setPageSize(pageSize);
  408. order.getPage().setPageNumber(pageNO);
  409. order.getPage().initRecordBegin();
  410. List<Order> orderList = this.adminOrderService.selectShopOrderByOrderId(order);
  411. // 订单是否按照状态查询的, 用于页面
  412. if (status == -1) {
  413. mv.addObject("orderListIsStatus", false);
  414. for (Order orders : orderList) {
  415. // 用户昵称编码
  416. if (orders.getUserNickname() != null && !orders.getUserNickname().isEmpty()) {
  417. orders.setUserNickname(URLDecoder.decode(orders.getUserNickname(), "UTF-8"));
  418. }
  419. // 获取用户的操作权限
  420. orders.setOperations(orderUtil.orderStatusToOperation(orders.getSalesStatus(), orders.getSalesOrderid()));
  421. orders.setOrderLinkStatus(orderUtil.orderStatusToString(orders.getSalesStatus())); // 订单状态描述,中文
  422. }
  423. } else {
  424. mv.addObject("orderListIsStatus", true);
  425. for (Order orders : orderList) {
  426. // 用户昵称编码
  427. if (orders.getUserNickname() != null && !orders.getUserNickname().isEmpty()) {
  428. orders.setUserNickname(URLDecoder.decode(orders.getUserNickname(), "UTF-8"));
  429. }
  430. // 获取用户的操作权限
  431. orders.setOperations(orderUtil.orderStatusToOperation(orders.getSalesStatus(), orders.getSalesOrderid()));
  432. }
  433. }
  434. // 时间区间的处理
  435. String beginDateTime = "";
  436. SimpleDateFormat simple = null;
  437. if (actionDto.getBeginDate() != null) {
  438. simple = new SimpleDateFormat("yyyy-MM-dd");
  439. beginDateTime = simple.format(actionDto.getBeginDate());
  440. }
  441. String endDate = "";
  442. if (actionDto.getEndDate() != null) {
  443. if (simple == null) {
  444. simple = new SimpleDateFormat("yyyy-MM-dd");
  445. }
  446. endDate = simple.format(actionDto.getEndDate());
  447. }
  448. mv.addObject("orderList", orderList);
  449. mv.addObject("pageNO", pageNO);
  450. mv.addObject("orderStatus", status);// 订单状态
  451. mv.addObject("url", url.toString());
  452. mv.addObject("pageSize", this.adminOrderService.selectShopOrderCount(order));
  453. mv.addObject("orderStatusStr", orderUtil.orderStatusIntToOrderStatusString(status));// 订单状态描述(用于选中订单头)
  454. mv.addObject("orderLinkStatus", orderUtil.orderStatusToString(status));// 订单状态描述,中文(显示给用户看)
  455. mv.addObject("statusUrl", "/admin/order/selectShopOrderByOrderId?bid=&sid=");
  456. mv.addObject("beginDate", beginDateTime);
  457. mv.addObject("endDate", endDate);
  458. mv.addObject("selectInput", actionDto.getText());
  459. return mv;
  460. }
  461. /**
  462. * 操作订单
  463. *
  464. * @return
  465. * @throws Exception
  466. */
  467. @RequestMapping("/{action}/{orderId}")
  468. public synchronized ModelAndView actionOrder(
  469. @PathVariable("action") String action,
  470. @PathVariable("orderId") String orderId,
  471. OrderActionDto actionDto
  472. ) throws Exception {
  473. ModelAndView mv = new ModelAndView("admin/msg/msg");
  474. Order order = new Order();
  475. order.setSalesOrderid(orderId);
  476. // 订单状态,数字标识
  477. order.setSalesPostFirm(actionDto.getPostFirm());
  478. order.setSalesPostNum(actionDto.getPostNum());
  479. // 判断当前的订单,是否支持希望进行的操作
  480. Order currentOrder = adminOrderService.selectOrderStatusByOrderId(orderId);
  481. Integer orderStatus = currentOrder.getSalesStatus();
  482. order.setOldStatus(orderStatus);
  483. if (!orderUtil.orderStatusIntToOrderStatusString(orderStatus).equals(actionDto.getOrderStatus())) {
  484. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  485. return mv;
  486. }
  487. switch (orderStatus) {
  488. case 0: // 取消的订单,不支持任何修改订单状态的操作
  489. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,取消的订单不能操作!"));
  490. return mv;
  491. case 1: // 待支付(管理员存在操作权限:取消订单,如果取消订单,订单状态修改为0)
  492. if (!orderUtil.getOrderActin()[0].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
  493. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  494. return mv;
  495. }
  496. if (!orderUtil.orderStatusIntToOrderStatusString(0).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
  497. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  498. return mv;
  499. }
  500. order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
  501. // 执行修改操作
  502. if (adminOrderService.updateOrderStatusByOrderId(order)) {
  503. mv.addObject("msgObj", new MessageDto(true, "取消订单成功", "恭喜您!订单:" + orderId + "取消成功,本订单将不能操作!"));
  504. return mv;
  505. } else {
  506. mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
  507. return mv;
  508. }
  509. case 2: // 已支付、待发货(管理员的操作为:确认发货)
  510. if (!orderUtil.getOrderActin()[2].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
  511. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  512. return mv;
  513. }
  514. if (!orderUtil.orderStatusIntToOrderStatusString(5).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
  515. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  516. return mv;
  517. }
  518. // 执行修改操作
  519. order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
  520. if (adminOrderService.deliverOrderByOrderId(order)) {
  521. mv.addObject("msgObj", new MessageDto(true, "操作成功", "请到百胜系统确认该订单是否已经确认,如果没有确认,该订单仍是待发货状态!"));
  522. logger.info("准备为用户推送模版信息!");
  523. // 给百胜推送信息
  524. try {
  525. MQMessage message = new MQMessage();
  526. message.setServiceToMessage(orderId);
  527. message.setServiceOtherMessage(actionDto.getPostFirm() + "-" + actionDto.getPostNum());
  528. message.setServiceIsSend(2); // 没有推送的信息
  529. message.setServiceStatus(1); // 推送成功
  530. message.setServiceType(1); // 添加订单信息
  531. message.setServiceHandlerObjectName("efastOrderServiceImpl");
  532. message.setServiceHandlerMethodName("sendOrderInfoToEfast");
  533. mQservice.insertMQMessage(message);
  534. } catch (Exception e) {
  535. // TODO: handle exception
  536. }
  537. //给用户发送消息-已发货的通知
  538. //消息内容
  539. String data = ResultInfo.ORDERPACKAGETEMP;
  540. data = data.replaceFirst("firstValueOrder", ResultInfo.SHIPMENTMESSAGE)
  541. .replaceFirst("orderIdValueOrder", orderId)
  542. .replaceFirst("orderValuePackageId", SendMessageUtil.hashmap.get(actionDto.getPostFirm()) + ":" + actionDto.getPostNum())
  543. .replaceFirst("orderRemarkValue", ResultInfo.INTOSHOP);
  544. sendMessageUtil.sendTemplateMessageToOpenid(data, currentOrder.getSalesOpenid(), ResultInfo.PAGE_SHIPMENT + orderId, 2);
  545. return mv;
  546. } else {
  547. mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
  548. return mv;
  549. }
  550. case 3: // 退款申请中(管理员可以操作:确认退款)
  551. // 只有两种操作 : 确认退款、驳回退款
  552. if (orderUtil.getOrderActin()[4].equals(action)) {
  553. // 驳回退款
  554. if (!orderUtil.orderStatusIntToOrderStatusString(2).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
  555. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  556. return mv;
  557. }
  558. order.setSalesStatus(2);
  559. if (adminOrderService.updateOrderStatusByOrderId(order)) {// 驳回退款
  560. mv.addObject("msgObj", new MessageDto(true, "驳回退款成功!", "驳回退款成功,订单进入待发货状态!"));
  561. return mv;
  562. } else {
  563. mv.addObject("msgObj", new MessageDto(false, "对不起,驳回退款订单失败", "对不起,对不起,驳回退款订单失败,请稍后重试!"));
  564. return mv;
  565. }
  566. } else if (orderUtil.getOrderActin()[5].equals(action)) {
  567. // 同意退款 , 需要回滚积分
  568. if (!orderUtil.orderStatusIntToOrderStatusString(4).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
  569. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  570. return mv;
  571. }
  572. order.setSalesStatus(4);
  573. if (adminOrderService.updateOrderStatusByOrderId(order)) {
  574. //将返利表中待入账改为已入账
  575. RebackInfo rabackInfo = new RebackInfo();
  576. rabackInfo.setOrderId(order.getSalesOrderid());
  577. rabackInfo.setStatus(3);
  578. //根据orderId查询订单所有信息
  579. Order orderInfo = adminOrderService.getShopOrderByOrderId(orderId);
  580. Member member = new Member();
  581. //判断该订单是否用过余额支付,如果有,则退款后该支付的余额会退回到用户余额中
  582. if (orderInfo != null && orderInfo.getBalancePayAmount() != null) {
  583. member.setUserOpenid(orderInfo.getSalesOpenid());
  584. member.setUserIncome(orderInfo.getBalancePayAmount());
  585. adminOrderService.updateUserByUserId(member);
  586. //将数据存入日志中
  587. CashLog cashLog = new CashLog();
  588. cashLog.setCashLogsOpenid(orderInfo.getSalesOpenid());
  589. cashLog.setCashLogsOrderid(orderId);
  590. cashLog.setCashLogsNum(orderInfo.getBalancePayAmount());
  591. cashLog.setCashLogsType(1);
  592. cashLog.setCashLogsIntroduction("退款");
  593. cashLog.setCashLogsResType(5);
  594. cashLog.setCashLogsCreateDate(new Date());
  595. adminOrderService.addCashLog(cashLog);
  596. }
  597. rebackServices.updateStatus(rabackInfo);
  598. mv.addObject("msgObj", new MessageDto(true, "订单退款成功", "恭喜您!订单退款成功,订单将封存!"));
  599. updateRebate(order, 3);
  600. return mv;
  601. } else {
  602. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  603. return mv;
  604. }
  605. } else {
  606. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  607. return mv;
  608. }
  609. case 4: // 已退款(管理员通过申请退款,此时订单任何人不能操作)
  610. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,已退款的订单不能操作!"));
  611. return mv;
  612. case 5: // 已发货(管理员不具有权限)
  613. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,已发货的订单不能操作!"));
  614. return mv;
  615. case 6: // 申请退货中(只有管理员能操作 : 确认退货)
  616. if (!orderUtil.getOrderActin()[6].equals(action) && !orderUtil.getOrderActin()[10].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
  617. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  618. return mv;
  619. }
  620. if (!orderUtil.orderStatusIntToOrderStatusString(7).equals(actionDto.getToOrderStatus())
  621. && !orderUtil.orderStatusIntToOrderStatusString(5).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
  622. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  623. return mv;
  624. }
  625. // 执行修改操作
  626. order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
  627. if (adminOrderService.updateOrderStatusByOrderId(order)) {
  628. if (orderUtil.orderStatusIntToOrderStatusString(7).equals(actionDto.getToOrderStatus())) {
  629. mv.addObject("msgObj", new MessageDto(true, "订单申请退货成功", "恭喜您!同意订单:" + orderId + "退货,等待收到货物后确认退货!"));
  630. } else {
  631. mv.addObject("msgObj", new MessageDto(true, "成功驳回订单退货", "订单:" + orderId + "退货被驳回,状态返回已发货!"));
  632. }
  633. return mv;
  634. } else {
  635. mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
  636. return mv;
  637. }
  638. case 7: // 退货中(管理员具有操作能力:确认退货)
  639. if (!orderUtil.getOrderActin()[7].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
  640. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  641. return mv;
  642. }
  643. if (!orderUtil.orderStatusIntToOrderStatusString(8).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
  644. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  645. return mv;
  646. }
  647. // 执行修改操作
  648. order.setSalesStatus(8);
  649. if (adminOrderService.updateOrderStatusByOrderId(order)) {
  650. //将返利表中待入账改为已入账
  651. RebackInfo rabackInfo = new RebackInfo();
  652. rabackInfo.setOrderId(order.getSalesOrderid());
  653. rabackInfo.setStatus(3);
  654. rebackServices.updateStatus(rabackInfo);
  655. //根据orderId查询订单所有信息
  656. Order orderInfo = adminOrderService.getShopOrderByOrderId(orderId);
  657. Member memberInfo = new Member();
  658. //判断该订单是否用过余额支付,如果有,则退款后该支付的余额会退回到用户余额中
  659. if (orderInfo != null && orderInfo.getBalancePayAmount() != null) {
  660. memberInfo.setUserOpenid(orderInfo.getSalesOpenid());
  661. memberInfo.setUserIncome(orderInfo.getBalancePayAmount());
  662. adminOrderService.updateUserByUserId(memberInfo);
  663. //将数据存入日志中
  664. CashLog cashLog = new CashLog();
  665. cashLog.setCashLogsOpenid(orderInfo.getSalesOpenid());
  666. cashLog.setCashLogsOrderid(orderId);
  667. cashLog.setCashLogsNum(orderInfo.getBalancePayAmount());
  668. cashLog.setCashLogsType(1);
  669. cashLog.setCashLogsIntroduction("退货");
  670. cashLog.setCashLogsResType(5);
  671. cashLog.setCashLogsCreateDate(new Date());
  672. adminOrderService.addCashLog(cashLog);
  673. }
  674. mv.addObject("msgObj", new MessageDto(true, "确认订单退货成功", "恭喜您!同意订单:" + orderId + "退货,订单关闭!"));
  675. updateRebate(order, 3);
  676. try {
  677. MQMessage message = new MQMessage();
  678. message.setServiceToMessage(orderId);
  679. message.setServiceOtherMessage(currentOrder.getSalesPostFirm() + "-" + currentOrder.getSalesPostNum());
  680. message.setServiceIsSend(2); // 没有推送的信息
  681. message.setServiceStatus(1); // 推送成功
  682. message.setServiceType(1); // 添加订单信息
  683. message.setServiceHandlerObjectName("efastOrderServiceImpl");
  684. message.setServiceHandlerMethodName("returnOrderInfoToEfast");
  685. mQservice.insertMQMessage(message);
  686. } catch (Exception e) {
  687. // TODO: handle exception
  688. }
  689. //推送金额变动消息
  690. Member member = memberService.getMemberByUserOpenId(currentOrder.getSalesOpenid());
  691. if (member != null || member.getUserResType() != null) {
  692. String toopenid = "";
  693. switch (member.getUserResType().intValue()) {//用户来源
  694. case 2: //用户来源 微代理
  695. WdRelation wdrelation = wdRelationService.getWdRelationByOpenid(currentOrder.getSalesOpenid());
  696. Member fatherMember = memberService.getMemberByUserId(wdrelation.getWdFirst()); //微代理父节点信息
  697. if (fatherMember != null && StringUtils.isNotEmpty(fatherMember.getUserOpenid())) {
  698. toopenid = fatherMember.getUserOpenid();
  699. }
  700. break;
  701. case 3: //用户来源 线下
  702. DealerRelation dealerrelation = dealerRelationService.getDealerRelationById(member.getUserDealers());
  703. int Dealerid = 0;
  704. if (dealerrelation != null) {
  705. if (dealerrelation.getDealerThird() != null) { //第三极
  706. Dealerid = dealerrelation.getDealerThird();
  707. } else if (dealerrelation.getDealerSecond() != null) { //第二级
  708. Dealerid = dealerrelation.getDealerSecond();
  709. } else if (dealerrelation.getDealerFifth() != null) { //第一级
  710. Dealerid = dealerrelation.getDealerFifth();
  711. }
  712. }
  713. PlaceInfo fatherPlace = placeInfoService.getPlaceInfoById(Dealerid);//分销父节点信息
  714. if (fatherPlace != null) {
  715. toopenid = fatherPlace.getOpenid();
  716. }
  717. break;
  718. }
  719. //发送消息
  720. String temp = ResultInfo.INCOMEREMINDTEMP;
  721. temp = temp.replaceFirst("firstValueIamberry", ResultInfo.NEXTUSERTUIHUOMESSAGE)
  722. .replaceFirst("accountValueIamberry", URLDecoder.decode(member.getUserNickname(), "UTF-8"))
  723. .replaceFirst("timeValueIamberry", DateTimeUtil.format(new Date(), NameUtils.getConfig("DATE_TIME_FORMAT")))
  724. .replaceFirst("typeValueIamberry", "用户退货")
  725. .replaceFirst("remarkValueIamberry", ResultInfo.INTOSHOP);
  726. sendMessageUtil.sendTemplateMessageToOpenid(temp, toopenid, ResultInfo.TUIHUI_SHIPMENT, 3);
  727. }
  728. return mv;
  729. } else {
  730. mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
  731. return mv;
  732. }
  733. case 8: // 订单退货,订单关闭(管理员收到货后,确认退货,订单状态修改为此,订单不对外提供操作能力)
  734. mv.addObject("msgObj", new MessageDto(false, "对不起,操作订单失败", "对不起,订单退货,订单关闭,本订单不能操作!"));
  735. return mv;
  736. case 9: // 换货中(管理员对申请换货的订单,确认换货时,订单状态为此,此时只有管理员具有操作权限,只能确认换货,录入物流信息,并重新计算订单关闭的时间,待入账积分的时间要修改)
  737. if (!orderUtil.getOrderActin()[9].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
  738. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  739. return mv;
  740. }
  741. if (!orderUtil.orderStatusIntToOrderStatusString(5).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
  742. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  743. return mv;
  744. }
  745. // 执行修改操作
  746. if ("2".equals(currentOrder.getSalesProxyReward().toString())) {
  747. order.setSalesStatus(orderUtil.getOrderStatusByStr("inFinish"));
  748. } else {
  749. order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
  750. }
  751. if (adminOrderService.deliverOrderByOrderId(order)) {
  752. mv.addObject("msgObj", new MessageDto(true, "订单发货成功", "恭喜您!订单:" + orderId + "订单发货成功!"));
  753. try {
  754. MQMessage message = new MQMessage();
  755. message.setServiceToMessage(orderId);
  756. message.setServiceOtherMessage("efast.trade.new.add");
  757. message.setServiceIsSend(2); // 没有推送的信息
  758. message.setServiceStatus(1); // 推送成功
  759. message.setServiceType(1); // 添加订单信息
  760. message.setServiceHandlerObjectName("efastOrderServiceImpl");
  761. message.setServiceHandlerMethodName("exchangeOrderInfoToEfast");
  762. mQservice.insertMQMessage(message);
  763. } catch (Exception e) {
  764. System.out.println("===========pay 201 插入返利到百胜失败==============");
  765. }
  766. return mv;
  767. } else {
  768. mv.addObject("msgObj", new MessageDto(false, "对不起,订单发货失败", "对不起,订单发货失败,请稍后重试!"));
  769. return mv;
  770. }
  771. case 10: // 换货完成,当用户对换货中的订单,点击确认换货时,并录入物流信息,此订单进入已发货状态
  772. break;
  773. case 11: // 在订单为已发货时,用户具有的权限,用户申请换货
  774. if (!orderUtil.getOrderActin()[8].equals(action) && !orderUtil.getOrderActin()[11].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
  775. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  776. return mv;
  777. }
  778. if (!orderUtil.orderStatusIntToOrderStatusString(9).equals(actionDto.getToOrderStatus())
  779. && !orderUtil.orderStatusIntToOrderStatusString(5).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
  780. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
  781. return mv;
  782. }
  783. // 执行修改操作
  784. if (!orderUtil.orderStatusIntToOrderStatusString(9).equals(actionDto.getToOrderStatus())) {
  785. if ("2".equals(currentOrder.getSalesProxyReward().toString())) {
  786. order.setSalesStatus(orderUtil.getOrderStatusByStr("inFinish"));
  787. } else {
  788. order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
  789. }
  790. } else {
  791. order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
  792. }
  793. if (adminOrderService.updateOrderStatusByOrderId(order)) {
  794. if (orderUtil.orderStatusIntToOrderStatusString(9).equals(actionDto.getToOrderStatus())) {
  795. mv.addObject("msgObj", new MessageDto(true, "同意换货成功", "恭喜您!同意订单:" + orderId + "换货,请收货后录入物流信息并同意换货!"));
  796. } else {
  797. mv.addObject("msgObj", new MessageDto(true, "驳回换货成功", "您已驳回订单:" + orderId + "换货,订单状态改为已发货!"));
  798. }
  799. return mv;
  800. } else {
  801. mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
  802. return mv;
  803. }
  804. default: // 报错
  805. mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误!"));
  806. return mv;
  807. }
  808. return mv;
  809. }
  810. /**
  811. * 修改返利表的返现状态
  812. *
  813. * @param order
  814. * @param status
  815. */
  816. public void updateRebate(Order order, int status) {
  817. RebackInfo rabackInfo = new RebackInfo();
  818. rabackInfo.setOrderId(order.getSalesOrderid());
  819. rabackInfo.setStatus(status);
  820. LoadRewardTaskService.updateStatus(rabackInfo);
  821. }
  822. /**
  823. * 订单备注
  824. *
  825. * @throws IOException
  826. */
  827. @RequestMapping(value = "/remark/{id}", produces = {"application/json;charset=UTF-8"})
  828. @ResponseBody
  829. public String orderRemark(OrderActionDto actionDto, @PathVariable("id") String orderId, HttpServletResponse response) throws IOException {
  830. String remark = "";
  831. // 订单备注
  832. if (actionDto.getRemarkColor() == null) {
  833. actionDto.setRemarkColor(1);
  834. }
  835. if (actionDto.getRemark() == null || actionDto.getRemark().isEmpty()) {
  836. return "{\"status\":\"false\",\"info\":\"备注信息不能为空!\"}";
  837. }
  838. if (actionDto.getRemark().length() > 100) {
  839. return "{'\"status\":\"false\",\"info\":\"备注信息不能超过100个字符!\"}";
  840. }
  841. //查询该订单的状态
  842. Order order = adminOrderService.selectOrderStatusByOrderId(orderId);
  843. if (null == order) {
  844. return "{\"status\":true,\"info\":\"该订单不存在!\"}";
  845. }
  846. if (!"8".equals(order.getSalesStatus().toString())) {
  847. remark = actionDto.getRemark();
  848. }
  849. // update到数据库
  850. if (adminOrderService.updateOrderAdminRemarkByOrderId(remark, orderId, actionDto.getRemarkColor())) {
  851. return "{\"status\":true,\"info\":\"备注成功!\"}";
  852. } else {
  853. return "{\"status\":\"false\",\"info\":\"备注失败,请稍后重试!\"}";
  854. }
  855. }
  856. }