1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336 |
- package com.iamberry.wechat.handles.admin;
- import com.iamberry.app.tool.log.RatFWLogger;
- import com.iamberry.wechat.core.entity.OrderUtil;
- import com.iamberry.wechat.core.entity.ResultMsg;
- import com.iamberry.wechat.core.entity.drp.PlaceInfo;
- import com.iamberry.wechat.core.entity.member.CashLog;
- import com.iamberry.wechat.core.entity.member.Member;
- import com.iamberry.wechat.core.entity.mq.MQMessage;
- import com.iamberry.wechat.core.entity.order.*;
- import com.iamberry.wechat.core.entity.reback.RebackInfo;
- import com.iamberry.wechat.core.entity.relationship.DealerRelation;
- import com.iamberry.wechat.core.entity.relationship.WdRelation;
- import com.iamberry.wechat.face.drp.PlaceInfoService;
- import com.iamberry.wechat.face.efast.EfastRentService;
- import com.iamberry.wechat.face.member.MemberService;
- import com.iamberry.wechat.face.order.AdminOrderService;
- import com.iamberry.wechat.face.order.CodeService;
- import com.iamberry.wechat.face.porduct.ProductColorService;
- import com.iamberry.wechat.face.reback.LoadRewardTaskService;
- import com.iamberry.wechat.face.reback.RebackServices;
- import com.iamberry.wechat.face.relationship.DealerRelationService;
- import com.iamberry.wechat.face.relationship.WdRelationService;
- import com.iamberry.wechat.handles.mq.MQServiceProxy;
- import com.iamberry.wechat.tools.NameUtils;
- import com.iamberry.wechat.tools.ObjectExcelView;
- import com.iamberry.wechat.tools.ResultInfo;
- import com.iamberry.wechat.tools.SendMessageUtil;
- import org.apache.commons.collections.map.HashedMap;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.servlet.ModelAndView;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.net.URLDecoder;
- import java.text.DecimalFormat;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import static com.iamberry.wechat.service.ImberryConfig.INFORM_SHIPPING;
- //import cn.jpush.api.common.connection.IHttpClient.RequestMethod;
- @Controller
- @RequestMapping("/admin/order")
- public class AdminOrderHandlers {
- @Autowired
- private AdminOrderService adminOrderService;
- @Autowired
- private OrderUtil orderUtil;
- @Autowired
- private SendMessageUtil sendMessageUtil;
- @Autowired
- private MemberService memberService;
- @Autowired
- private WdRelationService wdRelationService;
- @Autowired
- private DealerRelationService dealerRelationService;
- @Autowired
- private PlaceInfoService placeInfoService;
- @Autowired
- private RatFWLogger logger;
- @Autowired
- private MQServiceProxy mQservice;
- @Autowired
- private RebackServices rebackServices;
- @Autowired
- private EfastRentService efastRentService;
- @Autowired
- private CodeService codeService;
- @Autowired
- private ProductColorService productColorService;
- /**
- * 后台进入订单列表功能
- *
- * @param request
- * @param pageSize
- * @param pageNO
- * @return ModelAndView
- * @throws Exception
- */
- @RequestMapping("/selectShopOrder")
- public ModelAndView selectShopOrder(HttpServletRequest request,
- @RequestParam(value = "pageSize", defaultValue = "20", required = false) Integer pageSize,
- @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO) throws Exception {
- ModelAndView mv = new ModelAndView("admin/order/orderList");
- String orderStatus = request.getParameter("orderStatus");
- if (orderStatus == null || "".equals(orderStatus)) {
- orderStatus = "paySuccess";
- }
- // 订单状态,数字标识
- int status = -1;
- if (!orderStatus.equals("allOrder")) {
- status = orderUtil.getOrderStatusByStr(orderStatus);
- }
- Order order = new Order();
- order.setSalesStatus(status);
- order.getPage().setPageSize(pageSize);
- order.getPage().setPageNumber(pageNO);
- order.getPage().initRecordBegin();
- List<Order> orderList = this.adminOrderService.selectShopOrder(order);
- // 订单是否按照状态查询的, 用于页面
- if (status == -1) {
- mv.addObject("orderListIsStatus", false);
- for (Order orders : orderList) {
- // 用户昵称编码
- if (orders.getUserNickname() != null && !orders.getUserNickname().isEmpty()) {
- orders.setUserNickname(URLDecoder.decode(orders.getUserNickname(), "UTF-8"));
- }
- // 获取用户的操作权限
- orders.setOperations(orderUtil.orderStatusToOperation(orders.getSalesStatus(), orders.getSalesOrderid(), orders.getSalesIsRfund()));
- orders.setOrderLinkStatus(orderUtil.orderStatusToString(orders.getSalesStatus())); // 订单状态描述,中文
- // 遍历订单, 判断用户角色
- if (orders.getPlaceOpenID() != null && orders.getPlaceOpenID().equals(orders.getSalesOrderid())) {
- // 金牌会员
- orders.setUserResource("金牌会员");
- } else if (orders.getVipRole() != null && orders.getVipRole().equals("52") && orders.getUserResource().equals("3")) {
- // 金牌会员直属下线
- orders.setUserResource("金牌会员直属下线");
- } else {
- // 会员
- String role = "会员";
- switch (Integer.parseInt(orders.getUserResource())) {
- case 47:
- role = "合伙人下线";
- break;
- case 48:
- role = "门店下线";
- break;
- case 49:
- role = "微代理下线";
- break;
- case 51:
- role = "VIP会员下线";
- break;
- case 52:
- role = "金牌会员下线";
- break;
- case 53:
- role = "钻石下线";
- break;
- default:
- break;
- }
- orders.setUserResource(role);
- }
- }
- } else {
- mv.addObject("orderListIsStatus", true);
- for (Order orders : orderList) {
- // 用户昵称编码
- if (orders.getUserNickname() != null && !orders.getUserNickname().isEmpty()) {
- orders.setUserNickname(URLDecoder.decode(orders.getUserNickname(), "UTF-8"));
- }
- // 获取用户的操作权限
- orders.setOperations(orderUtil.orderStatusToOperation(orders.getSalesStatus(), orders.getSalesOrderid(), orders.getSalesIsRfund()));
- // 遍历订单, 判断用户角色
- if (orders.getPlaceOpenID() != null && orders.getPlaceOpenID().equals(orders.getSalesOrderid())) {
- // 金牌会员
- orders.setUserResource("金牌会员");
- } else if (orders.getVipRole() != null && orders.getVipRole().equals("52") && orders.getUserResource().equals("3")) {
- // 金牌会员直属下线
- orders.setUserResource("金牌会员直属下线");
- } else {
- // 会员
- String role = "会员";
- switch (Integer.parseInt(orders.getUserResource())) {
- case 47:
- role = "合伙人下线";
- break;
- case 48:
- role = "门店下线";
- break;
- case 49:
- role = "微代理下线";
- break;
- case 51:
- role = "VIP会员下线";
- break;
- case 52:
- role = "金牌会员下线";
- break;
- case 53:
- role = "钻石下线";
- break;
- default:
- break;
- }
- orders.setUserResource(role);
- }
- }
- }
- mv.addObject("orderList", orderList);
- mv.addObject("pageNO", pageNO);
- mv.addObject("orderStatus", status);// 订单状态
- mv.addObject("url", "/admin/order/selectShopOrder?orderStatus=" + orderStatus + "&pageSize=" + pageSize + "&pageNO=");
- mv.addObject("pageSize", this.adminOrderService.selectShopOrderCount(order));
- mv.addObject("orderStatusStr", orderUtil.orderStatusIntToOrderStatusString(status));// 订单状态描述(用于选中订单头)
- mv.addObject("orderLinkStatus", orderUtil.orderStatusToString(status));// 订单状态描述,中文(显示给用户看)
- mv.addObject("statusUrl", "/admin/order/selectShopOrder?bid=&sid=");
- return mv;
- }
- /**
- * 同步订单状态
- * @param request
- * @param orderId
- * @param type 1:销售订单,2:代理商采购订单
- * @throws Exception
- */
- @ResponseBody
- @RequestMapping("/select_efast_order/{orderId}/{type}")
- public ResultMsg selectEfastOrder(HttpServletRequest request,
- @PathVariable("orderId") String orderId,
- @PathVariable("type") Integer type) throws Exception {
- //efast的订单编号
- String efastOrderId = request.getParameter("efastOrderId");
- ResultMsg msg = new ResultMsg();
- if (!cn.jpush.api.utils.StringUtils.isNotEmpty(orderId) || type == null) {
- msg.setMessage("订单号或类型为空!");
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- return msg;
- }
- //获取队列中的map集合
- Map<String, Object> queuesMap = new HashedMap();
- String id = efastOrderId;
- String EsastType = "1";
- //查询efast系统该订单的状态
- Map<String, Object> map = efastRentService.getEfastSendOrderInfo(id,EsastType);
- if (!(boolean) map.get("status")) {
- msg.setData("");
- msg.setMessage(map.get("result").toString());
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- return msg;
- }
- //获取订单信息
- Order or = adminOrderService.getShopOrderByOrderId(orderId);
- Order order = new Order();
- order.setSalesOrderid(orderId);
- order.setSalesStatus(5);
- order.setSalesPostFirm((String) map.get("postFirm"));
- order.setSalesPostNum((String) map.get("postNum"));
- order.setOldStatus(2);
- order.setSalesOpenid(or.getSalesOpenid());
- //order.set
- int flag = adminOrderService.updateOrderDeliver(order);
- if (flag < 1){
- msg.setMessage("修改订单状态失败");
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- return msg;
- }
- Member member = memberService.getMemberByUserOpenId(or.getSalesOpenid());
- if (member == null || 1 == member.getUserStatus() || 0 == member.getUserStatus()){ //未关注或者取消关注的,将发送手机短信
- logger.info("短信通知:"+ or.getSalesOpenid() +" 用户的订单已发货");
- String phone = or.getSalesAddressTel();
- codeService.informShipping(phone,INFORM_SHIPPING);
- }else if(2 == member.getUserStatus()){ //已关注的用户推送信息到公众号
- logger.info("公众号推送物流信息: "+ or.getSalesOpenid() +" 用户的订单已发货");
- //消息内容
- String data = ResultInfo.ORDERPACKAGETEMP;
- data = data.replaceFirst("firstValueOrder", ResultInfo.SHIPMENTMESSAGE)
- .replaceFirst("orderIdValueOrder", orderId)
- .replaceFirst("orderValuePackageId", SendMessageUtil.hashmap.get(map.get("postFirm")) + ":" + map.get("postNum"))
- .replaceFirst("orderRemarkValue", ResultInfo.INTOSHOP);
- sendMessageUtil.sendTemplateMessageToOpenid(data, or.getSalesOpenid(), ResultInfo.PAGE_SHIPMENT + orderId, 2);
- }
- msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- return msg;
- }
- /**
- * 订单详细信息
- *
- * @param request
- * @param orderId
- * @return ModelAndView
- * @throws Exception
- */
- @RequestMapping("/getShopOrderByOrderId/{orderId}")
- public ModelAndView getShopOrderByOrderId(HttpServletRequest request,
- @PathVariable("orderId") String orderId) throws Exception {
- ModelAndView mv = new ModelAndView("admin/order/order");
- if (null != orderId && !"".equals(orderId)) {
- Order order = this.adminOrderService.getShopOrderByOrderId(orderId);
- List<OrderItem> orderItemList = this.adminOrderService.getShopOrderItemByOrderId(orderId);
- // 用户昵称编码
- if (order.getUserNickname() != null && !order.getUserNickname().isEmpty()) {
- order.setUserNickname(URLDecoder.decode(order.getUserNickname(), "UTF-8"));
- }
- // 获取用户的操作权限
- order.setOperations(orderUtil.orderStatusToOperation(order.getSalesStatus(), order.getSalesOrderid(), order.getSalesIsRfund()));
- order.setOrderLinkStatus(orderUtil.orderStatusToString(order.getSalesStatus())); // 订单状态描述,中文
- if (order.getSalesStatus() == 2) {
- // 给百胜推送信息
- // try {
- // MQMessage message = new MQMessage();
- // message.setServiceToMessage(orderId);
- // message.setServiceOtherMessage("efast.trade.detail.get");
- // message.setServiceIsSend(2); // 没有推送的信息
- // message.setServiceStatus(1); // 推送成功
- // message.setServiceType(1); // 添加订单信息
- // message.setServiceHandlerObjectName("efastOrderServiceImpl");
- // message.setServiceHandlerMethodName("selectEfastSendOrderInfo");
- // mQservice.insertMQMessage(message);
- // } catch (Exception e) {
- // // TODO: handle exception
- // }
- } else if (order.getSalesStatus() == 8) {
- // 给百胜推送信息
- // try {
- // MQMessage message = new MQMessage();
- // message.setServiceToMessage(orderId);
- // message.setServiceOtherMessage("efast.order.return.info.fetch");
- // message.setServiceIsSend(2); // 没有推送的信息
- // message.setServiceStatus(1); // 推送成功
- // message.setServiceType(1); // 添加订单信息
- // message.setServiceHandlerObjectName("efastOrderServiceImpl");
- // message.setServiceHandlerMethodName("selectEfastReturnOrderInfo");
- // mQservice.insertMQMessage(message);
- // } catch (Exception e) {
- // // TODO: handle exception
- // }
- }
- mv.addObject("order", order);
- mv.addObject("orderItemList", orderItemList);
- }
- return mv;
- }
- @RequestMapping(value = "/selectShopOrderByOrderId")
- public ModelAndView selectShopOrderByOrderId(HttpServletRequest request,
- @RequestParam(value = "pageSize", defaultValue = "20", required = false) Integer pageSize,
- @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
- OrderActionDto actionDto) throws Exception {
- ModelAndView mv = new ModelAndView("admin/order/orderList");
- Order order = new Order();
- String orderStatus = request.getParameter("orderStatus");
- //url需要进行拼接,拼接的内容是页面上的时间条件
- StringBuffer url = new StringBuffer("/admin/order/selectShopOrderByOrderId?orderStatus=" + actionDto.getOrderStatus());
- // 判断是否输入数据
- if (!(actionDto.getText() == null || actionDto.getText().isEmpty())) {
- url.append("&text=" + actionDto.getText());
- }
- //分页并带条件查询接收参数
- String beginTime = request.getParameter("beginDate");
- String endTime = request.getParameter("endDate");
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- String salesAddressTel = request.getParameter("salesAddressTel");
- String salesAddressName = request.getParameter("salesAddressName");
- String salesAddressInfo = request.getParameter("salesAddressInfo");
- String userNickname = request.getParameter("userNickname");
- if (salesAddressTel != null && !"".equals(salesAddressTel)) {
- order.setSalesAddressTel(salesAddressTel);
- mv.addObject("salesAddressTel", salesAddressTel);
- url.append("&salesAddressTel=" + salesAddressTel);
- }
- if (salesAddressName != null && !"".equals(salesAddressName)) {
- order.setSalesAddressName(salesAddressName);
- mv.addObject("salesAddressName", salesAddressName);
- url.append("&salesAddressName=" + salesAddressName);
- }
- if (salesAddressInfo != null && !"".equals(salesAddressInfo)) {
- order.setSalesAddressInfo(salesAddressInfo);
- mv.addObject("salesAddressInfo", salesAddressInfo);
- url.append("&salesAddressInfo=" + salesAddressInfo);
- }
- if (userNickname != null && !"".equals(userNickname)) {
- order.setUserNickname(userNickname);
- mv.addObject("userNickname", userNickname);
- url.append("&userNickname=" + userNickname);
- }
- if (null != beginTime && !"".equals(beginTime)) {
- if (!request.getMethod().equalsIgnoreCase("post")) {
- actionDto.setBeginDate(format.parse(new String(beginTime.getBytes("ISO-8859-1"), "UTF-8")));
- } else {
- actionDto.setBeginDate(format.parse(beginTime));
- }
- }
- if (null != endTime && !"".equals(endTime)) {
- if (!request.getMethod().equalsIgnoreCase("post")) {
- actionDto.setEndDate(format.parse(new String(endTime.getBytes("ISO-8859-1"), "UTF-8")));
- } else {
- actionDto.setEndDate(format.parse(endTime));
- }
- }
- if (null != actionDto.getBeginDate()) {
- url.append("&beginDate=" + format.format(actionDto.getBeginDate()));
- mv.addObject("beginDate", format.format(actionDto.getBeginDate()));
- }
- if (null != actionDto.getEndDate()) {
- url.append("&endDate=" + format.format(actionDto.getEndDate()));
- mv.addObject("endDate", format.format(actionDto.getEndDate()));
- }
- url.append("&pageSize=" + pageSize + "&pageNO=");
- if (orderStatus == null || "".equals(orderStatus)) {
- orderStatus = "paySuccess";
- }
- // 订单状态,数字标识
- int status = -1;
- if (!orderStatus.equals("allOrder")) {
- status = orderUtil.getOrderStatusByStr(orderStatus);
- }
- order.setSalesStatus(status);
- order.setSalesOrderid(actionDto.getText());
- order.setBeginDate(actionDto.getBeginDate());
- order.setEndDate(actionDto.getEndDate());
- order.getPage().setPageSize(pageSize);
- order.getPage().setPageNumber(pageNO);
- order.getPage().initRecordBegin();
- List<Order> orderList = this.adminOrderService.selectShopOrderByOrderId(order);
- // 订单是否按照状态查询的, 用于页面
- if (status == -1) {
- mv.addObject("orderListIsStatus", false);
- for (Order orders : orderList) {
- // 用户昵称编码
- if (orders.getUserNickname() != null && !orders.getUserNickname().isEmpty()) {
- orders.setUserNickname(URLDecoder.decode(orders.getUserNickname(), "UTF-8"));
- }
- // 获取用户的操作权限
- orders.setOperations(orderUtil.orderStatusToOperation(orders.getSalesStatus(), orders.getSalesOrderid(), orders.getSalesIsRfund()));
- orders.setOrderLinkStatus(orderUtil.orderStatusToString(orders.getSalesStatus())); // 订单状态描述,中文
- }
- } else {
- mv.addObject("orderListIsStatus", true);
- for (Order orders : orderList) {
- // 用户昵称编码
- if (orders.getUserNickname() != null && !orders.getUserNickname().isEmpty()) {
- orders.setUserNickname(URLDecoder.decode(orders.getUserNickname(), "UTF-8"));
- }
- // 获取用户的操作权限
- orders.setOperations(orderUtil.orderStatusToOperation(orders.getSalesStatus(), orders.getSalesOrderid(), orders.getSalesIsRfund()));
- }
- }
- // 时间区间的处理
- String beginDateTime = "";
- SimpleDateFormat simple = null;
- if (actionDto.getBeginDate() != null) {
- simple = new SimpleDateFormat("yyyy-MM-dd");
- beginDateTime = simple.format(actionDto.getBeginDate());
- }
- String endDate = "";
- if (actionDto.getEndDate() != null) {
- if (simple == null) {
- simple = new SimpleDateFormat("yyyy-MM-dd");
- }
- endDate = simple.format(actionDto.getEndDate());
- }
- mv.addObject("orderList", orderList);
- mv.addObject("pageNO", pageNO);
- mv.addObject("orderStatus", status);// 订单状态
- mv.addObject("url", url.toString());
- mv.addObject("pageSize", this.adminOrderService.selectShopOrderCount(order));
- mv.addObject("orderStatusStr", orderUtil.orderStatusIntToOrderStatusString(status));// 订单状态描述(用于选中订单头)
- mv.addObject("orderLinkStatus", orderUtil.orderStatusToString(status));// 订单状态描述,中文(显示给用户看)
- mv.addObject("statusUrl", "/admin/order/selectShopOrderByOrderId?bid=&sid=");
- mv.addObject("beginDate", beginDateTime);
- mv.addObject("endDate", endDate);
- mv.addObject("selectInput", actionDto.getText());
- return mv;
- }
- /**
- * 操作订单
- *
- * @return
- * @throws Exception
- */
- @RequestMapping("/{action}/{orderId}")
- public synchronized ModelAndView actionOrder(
- @PathVariable("action") String action,
- @PathVariable("orderId") String orderId,
- OrderActionDto actionDto
- ) throws Exception {
- ModelAndView mv = new ModelAndView("admin/msg/msg");
- DecimalFormat df=new DecimalFormat("0.00");
- Order order = new Order();
- order.setSalesOrderid(orderId);
- // 订单状态,数字标识
- order.setSalesPostFirm(actionDto.getPostFirm());
- order.setSalesPostNum(actionDto.getPostNum());
- // 判断当前的订单,是否支持希望进行的操作
- Order currentOrder = adminOrderService.selectOrderStatusByOrderId(orderId);
- //获取当前订单订单项
- List<OrderItem> itemList = adminOrderService.getShopOrderItemByOrderId(orderId);
- Integer orderStatus = currentOrder.getSalesStatus();
- order.setOldStatus(orderStatus);
- order.setSalesOpenid(currentOrder.getSalesOpenid());
- if (!orderUtil.orderStatusIntToOrderStatusString(orderStatus).equals(actionDto.getOrderStatus())) {
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- switch (orderStatus) {
- case 0: // 取消的订单,不支持任何修改订单状态的操作
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,取消的订单不能操作!"));
- return mv;
- case 1: // 待支付(管理员存在操作权限:取消订单,如果取消订单,订单状态修改为0)
- if (!orderUtil.getOrderActin()[0].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- if (!orderUtil.orderStatusIntToOrderStatusString(0).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
- // 执行修改操作
- if (adminOrderService.updateOrderStatusByOrderId(order)) {
- mv.addObject("msgObj", new MessageDto(true, "取消订单成功", "恭喜您!订单:" + orderId + "取消成功,本订单将不能操作!"));
- return mv;
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
- return mv;
- }
- case 2: // 已支付、待发货(管理员的操作为:确认发货)
- if (!orderUtil.getOrderActin()[2].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- if (!orderUtil.orderStatusIntToOrderStatusString(5).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- // 执行修改操作
- order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
- if (adminOrderService.deliverOrderByOrderId(order)) {
- mv.addObject("msgObj", new MessageDto(true, "操作成功", "订单已发货"));
- //logger.info("准备为用户推送模版信息!");
- // 给百胜推送信息
- /* try {
- MQMessage message = new MQMessage();
- message.setServiceToMessage(orderId);
- message.setServiceOtherMessage(actionDto.getPostFirm() + "-" + actionDto.getPostNum());
- message.setServiceIsSend(2); // 没有推送的信息
- message.setServiceStatus(1); // 推送成功
- message.setServiceType(1); // 添加订单信息
- message.setServiceHandlerObjectName("efastOrderServiceImpl");
- message.setServiceHandlerMethodName("sendOrderInfoToEfast");
- mQservice.insertMQMessage(message);
- } catch (Exception e) {
- // TODO: handle exception
- }*/
- //给用户发送消息-已发货的通知
- try {
- sendMessageUtil.orderSendSuccess("尊敬的朵粉,您的订单已发货,物流信息:",orderId,SendMessageUtil.hashmap.get(actionDto.getPostFirm()),
- actionDto.getPostNum(),currentOrder.getSalesAddressInfo(),"如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",currentOrder.getSalesOpenid(),null);
- } catch (Exception e) {
- logger.info("订单号:"+ orderId +"的订单驳回退款,发送微信消息失败!");
- }
- /*//消息内容
- String data = ResultInfo.ORDERPACKAGETEMP;
- data = data.replaceFirst("firstValueOrder", ResultInfo.SHIPMENTMESSAGE)
- .replaceFirst("orderIdValueOrder", orderId)
- .replaceFirst("orderValuePackageId", SendMessageUtil.hashmap.get(actionDto.getPostFirm()) + ":" + actionDto.getPostNum())
- .replaceFirst("orderRemarkValue", ResultInfo.INTOSHOP);
- sendMessageUtil.sendTemplateMessageToOpenid(data, currentOrder.getSalesOpenid(), ResultInfo.PAGE_SHIPMENT + orderId, 2);*/
- return mv;
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
- return mv;
- }
- case 3: // 退款申请中(管理员可以操作:确认退款、驳回退款)
- order.setSalesAuditRemark(actionDto.getSalesAuditRemark());
- // 只有两种操作 : 确认退款、驳回退款
- if (orderUtil.getOrderActin()[4].equals(action)) {
- // 驳回退款
- if (!orderUtil.orderStatusIntToOrderStatusString(2).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- order.setSalesStatus(2);
- if (adminOrderService.updateOrderStatusByOrderId(order)) {// 驳回退款
- String payMoney = df.format((float)currentOrder.getSalesYetAmount()/100) + "元";
- try {
- //sendMessageUtil.orderApplyRefund("尊敬的朵粉,您的退款申请被退回。",payMoney,itemList.get(0).getItemProductName(),orderId,
- // "请确认您的退款申请信息填写无误。如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",currentOrder.getSalesOpenid(),ResultInfo.ORDER_DETAIL + orderId);
- sendMessageUtil.refundToDismiss("尊敬的朵粉,您的退款申请被退回。",payMoney,itemList.get(0).getItemProductName(),orderId,
- "请确认您的退款申请信息填写无误。 如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",currentOrder.getSalesOpenid(),ResultInfo.ORDER_DETAIL + orderId);
- } catch (Exception e) {
- logger.info("订单号:"+ orderId +"的订单驳回退款,发送微信消息失败!");
- }
- mv.addObject("msgObj", new MessageDto(true, "驳回退款成功!", "驳回退款成功,订单进入待发货状态!"));
- return mv;
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,驳回退款订单失败", "对不起,对不起,驳回退款订单失败,请稍后重试!"));
- return mv;
- }
- } else if (orderUtil.getOrderActin()[5].equals(action)) {
- // 同意退款 , 需要回滚积分
- if (!orderUtil.orderStatusIntToOrderStatusString(4).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- order.setSalesStatus(4);
- if (adminOrderService.updateOrderStatusByOrderId(order)) {
- List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(order.getSalesOrderid());
- /*调整库存 - 同意退款,库存返回*/
- for (int i = 0; i < orderItemList.size(); i++) {
- Integer fl = productColorService.updateMinusSoldNum(orderItemList.get(i).getItemColorId(),orderItemList.get(i).getItemNum());
- if (fl < 1) {
- logger.info("退款修改数量失败,订单号为:" +orderItemList.get(i).getItemSalesOrderid() );
- }else{
- logger.info("退款修改数量成功,订单号为:" +orderItemList.get(i).getItemSalesOrderid()
- +";颜色id为:"+orderItemList.get(i).getItemColorId()+"的数量加上"+orderItemList.get(i).getItemNum());
- }
- }
- /*调整库存*/
- //将返利表中待入账改为已入账
- RebackInfo rabackInfo = new RebackInfo();
- rabackInfo.setOrderId(order.getSalesOrderid());
- rabackInfo.setStatus(3);
- //根据orderId查询订单所有信息
- Order orderInfo = adminOrderService.getShopOrderByOrderId(orderId);
- Member member = new Member();
- //判断该订单是否用过余额支付,如果有,则退款后该支付的余额会退回到用户余额中
- if (orderInfo != null && orderInfo.getBalancePayAmount() != null) {
- member.setUserOpenid(orderInfo.getSalesOpenid());
- member.setUserIncome(orderInfo.getBalancePayAmount());
- adminOrderService.updateUserByUserId(member);
- //将数据存入日志中
- CashLog cashLog = new CashLog();
- cashLog.setCashLogsOpenid(orderInfo.getSalesOpenid());
- cashLog.setCashLogsOrderid(orderId);
- cashLog.setCashLogsNum(orderInfo.getBalancePayAmount());
- cashLog.setCashLogsType(1);
- cashLog.setCashLogsIntroduction("退款");
- cashLog.setCashLogsResType(5);
- cashLog.setCashLogsCreateDate(new Date());
- adminOrderService.addCashLog(cashLog);
- }
- rebackServices.updateStatus(rabackInfo);
- String payMoney = df.format((float)currentOrder.getSalesYetAmount()/100) + "元";
- try {
- sendMessageUtil.orderApplyRefund("尊敬的朵粉,您的退款申请已通过。",payMoney,itemList.get(0).getItemProductName(),orderId,
- "退款金额将在三个工作日内退款到您的支付账户。如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",currentOrder.getSalesOpenid(),ResultInfo.ORDER_DETAIL + orderId);
- } catch (Exception e) {
- logger.info("订单号:"+ orderId +"的订单同意退款,发送微信消息失败!");
- }
- mv.addObject("msgObj", new MessageDto(true, "订单退款成功", "请联系财务部门,将此订单退款!"));
- updateRebate(order, 3);
- return mv;
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- case 4: // 已退款(管理员通过申请退款,此时订单任何人不能操作)
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,已退款的订单不能操作!"));
- return mv;
- case 5: // 已发货(管理员不具有权限)
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,已发货的订单不能操作!"));
- return mv;
- case 6: // 申请退货中(只有管理员能操作 : 确认退货)
- order.setSalesAuditRemark(actionDto.getSalesAuditRemark());
- if (!orderUtil.getOrderActin()[6].equals(action) && !orderUtil.getOrderActin()[10].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- if (!orderUtil.orderStatusIntToOrderStatusString(7).equals(actionDto.getToOrderStatus())
- && !orderUtil.orderStatusIntToOrderStatusString(5).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- // 执行修改操作
- order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
- if (adminOrderService.updateOrderStatusByOrderId(order)) {
- if (orderUtil.orderStatusIntToOrderStatusString(7).equals(actionDto.getToOrderStatus())) {
- String payMoney = df.format((float)currentOrder.getSalesYetAmount()/100) + "元";
- int productNum = 0;
- for (OrderItem item : itemList) {
- productNum += item.getItemNum();
- }
- try {
- sendMessageUtil.orderApplyReturn("尊敬的朵粉,soodo上朵已通过您的【退货申请】",orderId,payMoney,productNum+"件",currentOrder.getSalesReturnDes(),
- "请您尽快联系客服人员处理,根据客服人员指引将机器寄回。对此结果,soodo上朵深表歉意,我们会继续提升,期待下一次相遇!",currentOrder.getSalesOpenid(),ResultInfo.ORDER_DETAIL + orderId);
- } catch (Exception e) {
- logger.info("订单号:"+ orderId +"的订单同意退货,发送微信消息失败!");
- }
- mv.addObject("msgObj", new MessageDto(true, "订单申请退货成功", "恭喜您!同意订单:" + orderId + "退货,等待收到货物后确认退货!"));
- } else {
- String payMoney = df.format((float)currentOrder.getSalesYetAmount()/100) + "元";
- int productNum = 0;
- for (OrderItem item : itemList) {
- productNum += item.getItemNum();
- }
- try {
- sendMessageUtil.orderApplyReturn("尊敬的朵粉,您的【退货申请】没有通过。",orderId,payMoney,productNum+"件",currentOrder.getSalesReturnDes(),
- "请确认您的退货申请信息填写无误。如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!",currentOrder.getSalesOpenid(),ResultInfo.ORDER_DETAIL + orderId);
- } catch (Exception e) {
- logger.info("订单号:"+ orderId +"的订单驳回退货,发送微信消息失败!");
- }
- mv.addObject("msgObj", new MessageDto(true, "成功驳回订单退货", "订单:" + orderId + "退货被驳回,状态返回已发货!"));
- }
- return mv;
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
- return mv;
- }
- case 7: // 退货中(管理员具有操作能力:确认退货)
- if (!orderUtil.getOrderActin()[7].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- if (!orderUtil.orderStatusIntToOrderStatusString(8).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- // 执行修改操作
- order.setSalesStatus(8);
- if (adminOrderService.updateOrderStatusByOrderId(order)) {
- //将返利表中待入账改为已入账
- RebackInfo rabackInfo = new RebackInfo();
- rabackInfo.setOrderId(order.getSalesOrderid());
- rabackInfo.setStatus(3);
- rebackServices.updateStatus(rabackInfo);
- //根据orderId查询订单所有信息
- Order orderInfo = adminOrderService.getShopOrderByOrderId(orderId);
- Member memberInfo = new Member();
- //判断该订单是否用过余额支付,如果有,则退款后该支付的余额会退回到用户余额中
- if (orderInfo != null && orderInfo.getBalancePayAmount() != null) {
- memberInfo.setUserOpenid(orderInfo.getSalesOpenid());
- memberInfo.setUserIncome(orderInfo.getBalancePayAmount());
- adminOrderService.updateUserByUserId(memberInfo);
- //将数据存入日志中
- CashLog cashLog = new CashLog();
- cashLog.setCashLogsOpenid(orderInfo.getSalesOpenid());
- cashLog.setCashLogsOrderid(orderId);
- cashLog.setCashLogsNum(orderInfo.getBalancePayAmount());
- cashLog.setCashLogsType(1);
- cashLog.setCashLogsIntroduction("退货");
- cashLog.setCashLogsResType(5);
- cashLog.setCashLogsCreateDate(new Date());
- adminOrderService.addCashLog(cashLog);
- }
- mv.addObject("msgObj", new MessageDto(true, "确认订单退货成功", "恭喜您!同意订单:" + orderId + "退货,订单关闭!"));
- updateRebate(order, 3);
- // try {
- // MQMessage message = new MQMessage();
- // message.setServiceToMessage(orderId);
- // message.setServiceOtherMessage(currentOrder.getSalesPostFirm() + "-" + currentOrder.getSalesPostNum());
- // message.setServiceIsSend(2); // 没有推送的信息
- // message.setServiceStatus(1); // 推送成功
- // message.setServiceType(1); // 添加订单信息
- // message.setServiceHandlerObjectName("efastOrderServiceImpl");
- // message.setServiceHandlerMethodName("returnOrderInfoToEfast");
- // mQservice.insertMQMessage(message);
- // } catch (Exception e) {
- // // TODO: handle exception
- // }
- //推送金额变动消息
- Member member = memberService.getMemberByUserOpenId(currentOrder.getSalesOpenid());
- if (member != null || member.getUserResType() != null) {
- String toopenid = "";
- switch (member.getUserResType().intValue()) {//用户来源
- case 2: //用户来源 微代理
- WdRelation wdrelation = wdRelationService.getWdRelationByOpenid(currentOrder.getSalesOpenid());
- Member fatherMember = memberService.getMemberByUserId(wdrelation.getWdFirst()); //微代理父节点信息
- if (fatherMember != null && StringUtils.isNotEmpty(fatherMember.getUserOpenid())) {
- toopenid = fatherMember.getUserOpenid();
- }
- break;
- case 3: //用户来源 线下
- DealerRelation dealerrelation = dealerRelationService.getDealerRelationById(member.getUserDealers());
- int Dealerid = 0;
- if (dealerrelation != null) {
- if (dealerrelation.getDealerThird() != null) { //第三极
- Dealerid = dealerrelation.getDealerThird();
- } else if (dealerrelation.getDealerSecond() != null) { //第二级
- Dealerid = dealerrelation.getDealerSecond();
- } else if (dealerrelation.getDealerFifth() != null) { //第一级
- Dealerid = dealerrelation.getDealerFifth();
- }
- }
- PlaceInfo fatherPlace = placeInfoService.getPlaceInfoById(Dealerid);//分销父节点信息
- if (fatherPlace != null) {
- toopenid = fatherPlace.getOpenid();
- }
- break;
- }
- String payMoney = df.format((float)currentOrder.getSalesYetAmount()/100) + "元";
- int productNum = 0;
- for (OrderItem item : itemList) {
- productNum += item.getItemNum();
- }
- try {
- sendMessageUtil.orderApplyReturn("尊敬的朵粉,soodo上朵已收到您寄回的产品",orderId,payMoney,productNum+"件",currentOrder.getSalesReturnDes(),
- "退款金额将在三个工作日内退款到您的支付账户。对此结果,soodo上朵深表歉意,我们会继续提升,期待下一次相遇!",currentOrder.getSalesOpenid(),ResultInfo.ORDER_DETAIL + orderId);
- } catch (Exception e) {
- logger.info("订单号:"+ orderId +"的订单退货,后台确认收货,发送微信消息失败!");
- }
- }
- return mv;
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
- return mv;
- }
- case 8: // 订单退货,订单关闭(管理员收到货后,确认退货,订单状态修改为此,订单不对外提供操作能力)
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作订单失败", "对不起,订单退货,订单关闭,本订单不能操作!"));
- return mv;
- case 9: // 换货中(管理员对申请换货的订单,确认换货时,订单状态为此,此时只有管理员具有操作权限,只能确认换货,录入物流信息,并重新计算订单关闭的时间,待入账积分的时间要修改)
- if (!orderUtil.getOrderActin()[9].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- if (!orderUtil.orderStatusIntToOrderStatusString(5).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- // 执行修改操作
- if ("2".equals(currentOrder.getSalesProxyReward().toString())) {
- order.setSalesStatus(orderUtil.getOrderStatusByStr("inFinish"));
- } else {
- order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
- }
- if (adminOrderService.deliverOrderByOrderId(order)) {
- mv.addObject("msgObj", new MessageDto(true, "订单发货成功", "恭喜您!订单:" + orderId + "订单发货成功!"));
- // try {
- // MQMessage message = new MQMessage();
- // message.setServiceToMessage(orderId);
- // message.setServiceOtherMessage("efast.trade.new.add");
- // message.setServiceIsSend(2); // 没有推送的信息
- // message.setServiceStatus(1); // 推送成功
- // message.setServiceType(1); // 添加订单信息
- // message.setServiceHandlerObjectName("efastOrderServiceImpl");
- // message.setServiceHandlerMethodName("exchangeOrderInfoToEfast");
- // mQservice.insertMQMessage(message);
- // } catch (Exception e) {
- // System.out.println("===========pay 201 插入返利到百胜失败==============");
- // }
- return mv;
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,订单发货失败", "对不起,订单发货失败,请稍后重试!"));
- return mv;
- }
- case 10: // 换货完成,当用户对换货中的订单,点击确认换货时,并录入物流信息,此订单进入已发货状态
- break;
- case 11: // 在订单为已发货时,用户具有的权限,用户申请换货
- if (!orderUtil.getOrderActin()[8].equals(action) && !orderUtil.getOrderActin()[11].equals(action)) {// 判断当前请求操作是否相符, 否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- if (!orderUtil.orderStatusIntToOrderStatusString(9).equals(actionDto.getToOrderStatus())
- && !orderUtil.orderStatusIntToOrderStatusString(5).equals(actionDto.getToOrderStatus())) {// 判断请求修改的订单状态是否相符,否则提示不成功
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
- return mv;
- }
- // 执行修改操作
- if (!orderUtil.orderStatusIntToOrderStatusString(9).equals(actionDto.getToOrderStatus())) {
- if ("2".equals(currentOrder.getSalesProxyReward().toString())) {
- order.setSalesStatus(orderUtil.getOrderStatusByStr("inFinish"));
- } else {
- order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
- }
- } else {
- order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
- }
- if (adminOrderService.updateOrderStatusByOrderId(order)) {
- if (orderUtil.orderStatusIntToOrderStatusString(9).equals(actionDto.getToOrderStatus())) {
- try {
- sendMessageUtil.orderApplyBarter("尊敬的朵粉,您的【换货申请】通过。",orderId,itemList.get(0).getItemProductName(),
- "如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",currentOrder.getSalesOpenid(),ResultInfo.ORDER_DETAIL + orderId);
- } catch (Exception e) {
- logger.info("订单号:"+ orderId +"的订单同意换货,发送微信消息失败!");
- }
- mv.addObject("msgObj", new MessageDto(true, "同意换货成功", "恭喜您!同意订单:" + orderId + "换货,请收货后录入物流信息并同意换货!"));
- } else {
- try {
- sendMessageUtil.orderApplyBarter("尊敬的朵粉,您的【换货申请】没有通过。",orderId,itemList.get(0).getItemProductName(),
- "请确认您的换货申请信息填写无误。如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",currentOrder.getSalesOpenid(),ResultInfo.ORDER_DETAIL + orderId);
- } catch (Exception e) {
- logger.info("订单号:"+ orderId +"的订单驳回换货,发送微信消息失败!");
- }
- mv.addObject("msgObj", new MessageDto(true, "驳回换货成功", "您已驳回订单:" + orderId + "换货,订单状态改为已发货!"));
- }
- return mv;
- } else {
- mv.addObject("msgObj", new MessageDto(false, "对不起,取消订单失败", "对不起,取消订单失败,请稍后重试!"));
- return mv;
- }
- default: // 报错
- mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误!"));
- return mv;
- }
- return mv;
- }
- /**
- * 修改返利表的返现状态
- *
- * @param order
- * @param status
- */
- public void updateRebate(Order order, int status) {
- RebackInfo rabackInfo = new RebackInfo();
- rabackInfo.setOrderId(order.getSalesOrderid());
- rabackInfo.setStatus(status);
- LoadRewardTaskService.updateStatus(rabackInfo);
- }
- @ResponseBody
- @RequestMapping("/markRefund/{orderId}")
- public ResultMsg markRefund(HttpServletRequest request,
- @PathVariable("orderId") String orderId) throws Exception {
- ResultMsg msg = new ResultMsg();
- //查询该订单的状态
- Order order = adminOrderService.selectOrderStatusByOrderId(orderId);
- if (order == null) {
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- msg.setMessage("该订单不存在,请重新操作!");
- return msg;
- }
- //4:已退款,8:订单退货,订单关闭
- if (order.getSalesStatus() != 4 && order.getSalesStatus() != 8) {
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- msg.setMessage("该订单不支持标记已退款!");
- return msg;
- }
- if (order.getSalesIsRfund() != null && order.getSalesIsRfund() == 2) {
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- msg.setMessage("该订单已标记退款,不能重复标记!");
- return msg;
- }
- Order orderInfo = new Order();
- orderInfo.setSalesOrderid(orderId);
- orderInfo.setSalesIsRfund(2);
- //修改订单退款状态
- int num = adminOrderService.updateOrderRfund(orderInfo);
- if (num > 0) {
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- } else {
- msg.setResultCode(ResultInfo.ERRORCODE);
- msg.setStatus(false);
- msg.setMessage("标记退款失败,请重新标记!");
- }
- return msg;
- }
- /**
- * 订单备注
- *
- * @throws IOException
- */
- @RequestMapping(value = "/remark/{id}", produces = {"application/json;charset=UTF-8"})
- @ResponseBody
- public String orderRemark(OrderActionDto actionDto, @PathVariable("id") String orderId, HttpServletResponse response) throws IOException {
- String remark = "";
- // 订单备注
- if (actionDto.getRemarkColor() == null) {
- actionDto.setRemarkColor(1);
- }
- if (actionDto.getRemark() == null || actionDto.getRemark().isEmpty()) {
- return "{\"status\":\"false\",\"info\":\"备注信息不能为空!\"}";
- }
- if (actionDto.getRemark().length() > 100) {
- return "{'\"status\":\"false\",\"info\":\"备注信息不能超过100个字符!\"}";
- }
- //查询该订单的状态
- Order order = adminOrderService.selectOrderStatusByOrderId(orderId);
- if (null == order) {
- return "{\"status\":true,\"info\":\"该订单不存在!\"}";
- }
- if (!"8".equals(order.getSalesStatus().toString())) {
- remark = actionDto.getRemark();
- }
- // update到数据库
- if (adminOrderService.updateOrderAdminRemarkByOrderId(remark, orderId, actionDto.getRemarkColor())) {
- return "{\"status\":true,\"info\":\"备注成功!\"}";
- } else {
- return "{\"status\":\"false\",\"info\":\"备注失败,请稍后重试!\"}";
- }
- }
- /**
- * 查询待发货事项、申请退款订单、申请退货订单、申请换货订单数量
- */
- @ResponseBody
- @RequestMapping(value = "/selectTodo")
- public ResultMsg selectTodo(HttpServletRequest request){
- ResultMsg msg = new ResultMsg();
- //查询待发货事项、申请退款订单、申请退货订单、申请换货订单 的数量
- NumberBacklogDto numberBacklogDto = adminOrderService.selectNumberBacklog();
- msg.setResultCode(ResultInfo.SUCCESSCODE);
- msg.setStatus(true);
- msg.setData(numberBacklogDto);
- return msg;
- }
- /**
- * 下载导出订单
- */
- @ResponseBody
- @RequestMapping(value = "/download_order")
- public ModelAndView downloadOrder(HttpServletRequest request,Order order){
- List<Order> orderList = adminOrderService.getOrderListToExcel(order);
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- // 准备model
- Map<String, Object> model = new HashMap<String, Object>();
- model.put("fileName", "上朵销售数据"); // 下载文件名称
- // 标题
- List<String> titles = new ArrayList<String>();
- titles.add("时间");
- titles.add("产品类型");
- titles.add("产品名称");
- titles.add("产品颜色");
- titles.add("数量");
- titles.add("订单金额");
- titles.add("支付金额");
- titles.add("订单状态");
- titles.add("优惠券使用");
- titles.add("订单编号");
- titles.add("收货人");
- titles.add("昵称");
- titles.add("手机号码");
- titles.add("地址");
- titles.add("邮寄方式");
- titles.add("渠道层级");
- titles.add("渠道名称");
- model.put("titles", titles);
- List<List<Object>> countexts = new ArrayList<List<Object>>();
- for (Order info : orderList) {
- Integer num=0;
- for (int i=0; i<info.getOrderItemList().size(); i++) {
- num += info.getOrderItemList().get(i).getItemNum();
- }
- Integer offerAmount = info.getSalesAmount() - info.getSalesYetAmount(); //优惠金额
- Integer oneOfferAmount = offerAmount/num; //单个优惠金额
- for (OrderItem item:info.getOrderItemList()) {
- List<Object> row = new ArrayList<Object>();
- row.add(info.getSalesCreateDate() == null ? "":formatter.format(info.getSalesCreateDate()));
- row.add(item.getProductTypeName() == null ? "":item.getProductTypeName());
- row.add(item.getItemProductName() == null ? "":item.getItemProductName());
- row.add(item.getProductColor() == null ? "":item.getProductColor());
- row.add(item.getItemNum() == null ? "":item.getItemNum());
- row.add(item.getItemTotal() == null ? "":item.getItemTotal()/100); //订单金额
- if(info.getCouponId() != null){ //支付金额
- row.add((item.getItemTotal() - (oneOfferAmount*item.getItemNum()))/100);
- }else{
- row.add(item.getItemTotal() == null ? "":item.getItemTotal()/100);
- }
- String statusString = "";
- switch (info.getSalesStatus()){
- case 0:
- statusString = "取消订单";
- break;
- case 1:
- statusString = "待支付";
- break;
- case 2:
- statusString = "已支付、待发货";
- break;
- case 3:
- statusString = "退款申请中";
- break;
- case 4:
- statusString = "已退款";
- break;
- case 5:
- statusString = "已发货";
- break;
- case 6:
- statusString = "申请退货中";
- break;
- case 7:
- statusString = "退货中";
- break;
- case 8:
- statusString = "订单退货";
- break;
- case 9:
- statusString = "换货中";
- break;
- case 10:
- statusString = "换货完成";
- break;
- case 11:
- statusString = "申请换货中";
- break;
- case 12:
- statusString = "订单完成";
- break;
- }
- row.add(statusString); //订单状态
- if(info.getCouponId() != null){
- row.add("是");
- }else{
- row.add("否");
- }
- row.add(info.getSalesOrderid() == null ? "":info.getSalesOrderid());
- row.add(info.getSalesAddressName() == null ? "":info.getSalesAddressName());
- row.add(info.getUserNickname() == null ? "":info.getUserNickname());
- row.add(info.getSalesAddressTel() == null ? "":info.getSalesAddressTel());
- row.add(info.getSalesAddressInfo() == null ? "":info.getSalesAddressInfo());
- if(info.getSalesTransportationType() == 2){ // 1:邮寄 2:自提
- row.add("自提");
- }else{
- row.add("邮寄");
- }
- if(info.getSalesChannelType() != null) { //1:主渠道 2:子渠道
- if (info.getSalesChannelType() == 1) {
- row.add("主渠道");
- }else if (info.getSalesChannelType() == 2){
- row.add("子渠道");
- }else{
- row.add("");
- }
- }else{
- row.add("");
- }
- row.add(info.getSalesChannelName() == null ? "":info.getSalesChannelName());
- countexts.add(row);
- }
- }
- model.put("varList", countexts);
- ObjectExcelView erv = new ObjectExcelView();
- SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
- String name = "";
- if(order.getBeginDate() != null){
- name += sd.format(order.getBeginDate());
- }else{
- name += "2018-01-01";
- }
- name += "-";
- if( order.getEndDate() != null){
- name += sd.format(order.getEndDate());
- }else{
- name += sd.format(new Date());
- }
- erv.setName(name);
- ModelAndView mv = new ModelAndView(erv, model);
- return mv;
- }
- /**
- * 下载导出订单
- */
- @ResponseBody
- @RequestMapping(value = "/download_order2")
- public ModelAndView downloadOrder2(HttpServletRequest request,Order order){
- List<Order> orderList = adminOrderService.getPaySuccessOrderByOrderId(order);
- for (Order or: orderList) {
- List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(or.getSalesOrderid());
- or.setOrderItemList(orderItemList);
- }
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- // 准备model
- Map<String, Object> model = new HashMap<String, Object>();
- model.put("fileName", "上朵销售数据"); // 下载文件名称
- // 标题
- List<String> titles = new ArrayList<String>();
- titles.add("订单编号");
- titles.add("日期");
- titles.add("姓名");
- titles.add("电话号码");
- titles.add("地址");
- titles.add("产品");
- titles.add("颜色");
- titles.add("数量");
- titles.add("支付金额");
- titles.add("订单状态");
- titles.add("快递单号");
- titles.add("物流公司");
- model.put("titles", titles);
- List<List<Object>> countexts = new ArrayList<List<Object>>();
- for (Order info : orderList) {
- Integer salesYetAmount = info.getSalesYetAmount(); //付款金额
- for (int i=0; i<info.getOrderItemList().size(); i++) {
- OrderItem item = info.getOrderItemList().get(i);
- List<Object> row = new ArrayList<Object>();
- row.add(info.getSalesOrderid() == null ? "":info.getSalesOrderid());
- row.add(info.getSalesCreateDate() == null ? "":formatter.format(info.getSalesCreateDate()));
- row.add(info.getSalesAddressName() == null ? "":info.getSalesAddressName());
- row.add(info.getSalesAddressTel() == null ? "":info.getSalesAddressTel());
- row.add(info.getSalesAddressInfo() == null ? "":info.getSalesAddressInfo());
- row.add(item.getItemProductName() == null ? "":item.getItemProductName());
- row.add(item.getProductColor() == null ? "":item.getProductColor());
- row.add(item.getItemNum() == null ? "":item.getItemNum());
- if(salesYetAmount >= item.getItemTotal()){
- salesYetAmount = salesYetAmount - item.getItemTotal();
- row.add(item.getItemTotal()/100); //订单金额
- }else{
- row.add(salesYetAmount/100); //订单金额
- salesYetAmount = 0;
- }
- String statusString = "";
- switch (info.getSalesStatus()){
- case 0:
- statusString = "取消订单";
- break;
- case 1:
- statusString = "待支付";
- break;
- case 2:
- statusString = "已支付、待发货";
- break;
- case 3:
- statusString = "退款申请中";
- break;
- case 4:
- statusString = "已退款";
- break;
- case 5:
- statusString = "已发货";
- break;
- case 6:
- statusString = "申请退货中";
- break;
- case 7:
- statusString = "退货中";
- break;
- case 8:
- statusString = "订单退货";
- break;
- case 9:
- statusString = "换货中";
- break;
- case 10:
- statusString = "换货完成";
- break;
- case 11:
- statusString = "申请换货中";
- break;
- case 12:
- statusString = "订单完成";
- break;
- }
- row.add(statusString); //订单状态
- row.add(info.getSalesPostFirm() == null ? "":info.getSalesPostFirm());
- row.add(info.getSalesPostNum() == null ? "":info.getSalesPostNum());
- countexts.add(row);
- }
- }
- model.put("varList", countexts);
- ObjectExcelView erv = new ObjectExcelView();
- ModelAndView mv = new ModelAndView(erv, model);
- return mv;
- }
- }
|