|
@@ -1,12 +1,19 @@
|
|
|
package com.iamberry.wechat.service.cart;
|
|
|
|
|
|
+import java.text.DecimalFormat;
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
+import com.iamberry.app.tool.log.RatFWLogger;
|
|
|
import com.iamberry.wechat.core.entity.product.ProductColor;
|
|
|
import com.iamberry.wechat.core.entity.product.ProductFittings;
|
|
|
import com.iamberry.wechat.core.entity.product.SalesUserGift;
|
|
|
+import com.iamberry.wechat.face.order.AdminOrderService;
|
|
|
import com.iamberry.wechat.tools.ResultInfo;
|
|
|
+import com.iamberry.wechat.tools.SendMessageUtil;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -51,6 +58,12 @@ public class CartServiceImpl implements CartService {
|
|
|
private RebackServices rebackServices;
|
|
|
@Autowired
|
|
|
ProductInfoService productInfoService;
|
|
|
+ @Autowired
|
|
|
+ private AdminOrderService adminOrderService;
|
|
|
+ @Autowired
|
|
|
+ private RatFWLogger logger;
|
|
|
+ @Autowired
|
|
|
+ private SendMessageUtil sendMessageUtil;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -312,4 +325,214 @@ public class CartServiceImpl implements CartService {
|
|
|
public CartDto getCartByOpenId(CartDto cartDto) {
|
|
|
return cartDao.getCartByOpenId(cartDto);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> updateOrderStatus(String orderId, Integer status, String remark, int operation) {
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ String txtOpera = getOrderOperation(operation);//获取操作信息
|
|
|
+ boolean flag = false;
|
|
|
+ StringBuilder msg = new StringBuilder();
|
|
|
+ Order order = new Order();
|
|
|
+ order.setSalesOrderid(orderId);
|
|
|
+ order.setOldStatus(status);
|
|
|
+ if (StringUtils.isNotEmpty(remark)) {
|
|
|
+ order.setSalesReturnDes(remark);
|
|
|
+ }
|
|
|
+ switch (status) { //通过原始订单状态分配可执行的操作
|
|
|
+ case 1: //待支付
|
|
|
+ if (operation == 1) { //取消订单
|
|
|
+ order.setSalesStatus(0); //订单取消
|
|
|
+ //修改订单状态
|
|
|
+ int num = cartDao.updateOrderByOrder(order);
|
|
|
+ if (num > 0) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ msg.append("该订单不支持");
|
|
|
+ msg.append(txtOpera);
|
|
|
+ msg.append("操作,请重新确认!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2: //已支付待发货
|
|
|
+ if (operation == 2) { //申请退款
|
|
|
+ order.setSalesStatus(3); //退款申请中
|
|
|
+ //修改订单状态
|
|
|
+ int num = cartDao.updateOrderByOrder(order);
|
|
|
+ if (num > 0) {
|
|
|
+ //推送微信发货消息
|
|
|
+ //给用户发送消息-已发货的通知
|
|
|
+ DecimalFormat df=new DecimalFormat("0.00");
|
|
|
+ Order order2 = adminOrderService.selectOrderStatusByOrderId(order.getSalesOrderid());
|
|
|
+ String payMoney = df.format((float)order2.getSalesYetAmount()/100) + "元";
|
|
|
+ //获取当前订单订单项
|
|
|
+ List<OrderItem> itemList = adminOrderService.getShopOrderItemByOrderId(order.getSalesOrderid());
|
|
|
+ try {
|
|
|
+ sendMessageUtil.orderApplyRefund(
|
|
|
+ "尊敬的用户,我们已收到您的退款申请,我们正在积极处理:",
|
|
|
+ payMoney,
|
|
|
+ itemList.get(0).getItemProductName(),
|
|
|
+ order.getSalesOrderid(),
|
|
|
+ ResultInfo.sendRemark1,
|
|
|
+ order2.getSalesOpenid(),
|
|
|
+ ResultInfo.ORDER_DETAIL+order.getSalesOrderid()
|
|
|
+ );
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.info("订单号:"+ orderId +"的订单驳回退款,发送微信消息失败!");
|
|
|
+ }
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ msg.append("该订单不支持");
|
|
|
+ msg.append(txtOpera);
|
|
|
+ msg.append("操作,请重新确认!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 3: //退款申请中
|
|
|
+ if (operation == 3) { //取消退款
|
|
|
+ order.setSalesStatus(2); //已支付,待发货
|
|
|
+ //修改订单状态
|
|
|
+ int num = cartDao.updateOrderByOrder(order);
|
|
|
+ if (num > 0) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ msg.append("该订单不支持");
|
|
|
+ msg.append(txtOpera);
|
|
|
+ msg.append("操作,请重新确认!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 5: //已发货
|
|
|
+ if (operation == 4) { //申请退货
|
|
|
+ order.setSalesStatus(6); //申请退货中
|
|
|
+ //修改订单状态
|
|
|
+ int num = cartDao.updateOrderByOrder(order);
|
|
|
+ if (num > 0) {
|
|
|
+ DecimalFormat df=new DecimalFormat("0.00");
|
|
|
+ Order order2 = adminOrderService.selectOrderStatusByOrderId(order.getSalesOrderid());
|
|
|
+ //获取当前订单订单项
|
|
|
+ List<OrderItem> itemList = adminOrderService.getShopOrderItemByOrderId(orderId);
|
|
|
+ String payMoney = df.format((float)order2.getSalesYetAmount()/100) + "元";
|
|
|
+ int productNum = 0;
|
|
|
+ for (OrderItem item : itemList) {
|
|
|
+ productNum += item.getItemNum();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ sendMessageUtil.orderApplyReturn(
|
|
|
+ "尊敬的用户,已收到您的【退货申请】",
|
|
|
+ orderId,
|
|
|
+ payMoney,
|
|
|
+ productNum+"件",order2.getSalesReturnDes(),
|
|
|
+ ResultInfo.returnRemark,
|
|
|
+ order2.getSalesOpenid(),
|
|
|
+ ResultInfo.ORDER_DETAIL+orderId
|
|
|
+ );
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.info("订单号:"+ orderId +"的订单申请退货,发送微信消息失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } else if (operation == 7) { //申请换货
|
|
|
+ order.setSalesStatus(11); //申请换货中
|
|
|
+ //修改订单状态
|
|
|
+ int num = cartDao.updateOrderByOrder(order);
|
|
|
+ if (num > 0) {
|
|
|
+ Order order2 = adminOrderService.selectOrderStatusByOrderId(orderId);
|
|
|
+ //获取当前订单订单项
|
|
|
+ List<OrderItem> itemList = adminOrderService.getShopOrderItemByOrderId(orderId);
|
|
|
+ try {
|
|
|
+ sendMessageUtil.orderApplyBarter(
|
|
|
+ "尊敬的用户,已收到您的【换货申请】,我们正在确认换货信息。",
|
|
|
+ orderId,
|
|
|
+ itemList.get(0).getItemProductName(),
|
|
|
+ ResultInfo.exchangeRemark,
|
|
|
+ order2.getSalesOpenid(),
|
|
|
+ ResultInfo.ORDER_DETAIL+orderId
|
|
|
+ );
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.info("订单号:"+ orderId +"的订单申请换货,发送微信消息失败!");
|
|
|
+ }
|
|
|
+
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ msg.append("该订单不支持");
|
|
|
+ msg.append(txtOpera);
|
|
|
+ msg.append("操作,请重新确认!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 6: //申请退货中
|
|
|
+ if (operation == 5) { //取消申请退货
|
|
|
+ order.setSalesStatus(5); //已发货
|
|
|
+ //修改订单状态
|
|
|
+ int num = cartDao.updateOrderByOrder(order);
|
|
|
+ if (num > 0) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ msg.append("该订单不支持");
|
|
|
+ msg.append(txtOpera);
|
|
|
+ msg.append("操作,请重新确认!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 7: //退货中
|
|
|
+ if (operation == 6) { //取消退货
|
|
|
+ order.setSalesStatus(5); //已发货
|
|
|
+ //修改订单状态
|
|
|
+ int num = cartDao.updateOrderByOrder(order);
|
|
|
+ if (num > 0) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ msg.append("该订单不支持");
|
|
|
+ msg.append(txtOpera);
|
|
|
+ msg.append("操作,请重新确认!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 11: //申请换货中
|
|
|
+ if (operation == 8) { //取消换货
|
|
|
+ order.setSalesStatus(5); //已发货
|
|
|
+ //修改订单状态
|
|
|
+ int num = cartDao.updateOrderByOrder(order);
|
|
|
+ if (num > 0) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ msg.append("该订单不支持");
|
|
|
+ msg.append(txtOpera);
|
|
|
+ msg.append("操作,请重新确认!");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ msg.append("该订单不支持");
|
|
|
+ msg.append(txtOpera);
|
|
|
+ msg.append("操作,请重新确认!");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ map.put("flag",flag);
|
|
|
+ map.put("msg",msg);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取用户对订单的操作
|
|
|
+ * @param operation
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String getOrderOperation(int operation) {
|
|
|
+ String txtOpera = "";
|
|
|
+ switch (operation) {
|
|
|
+ case 1:txtOpera = "取消订单";break;
|
|
|
+ case 2:txtOpera = "申请退款";break;
|
|
|
+ case 3:txtOpera = "取消退款";break;
|
|
|
+ case 4:txtOpera = "申请退货";break;
|
|
|
+ case 5:txtOpera = "取消申请退货";break;
|
|
|
+ case 6:txtOpera = "取消退货";break;
|
|
|
+ case 7:txtOpera = "申请换货";break;
|
|
|
+ case 8:txtOpera = "取消换货";break;
|
|
|
+ default:txtOpera = "取消订单";break;
|
|
|
+ }
|
|
|
+ return txtOpera;
|
|
|
+ }
|
|
|
}
|