2 Коммиты 7073ccf070 ... ef268a1984

Автор SHA1 Сообщение Дата
  liuzhiwei ef268a1984 Merge branch 'master' of http://git.iamberry.com/liuzhiwei/iamberry-common-tooth 7 лет назад
  liuzhiwei dfaa31a43a 添加了修改订单状态的方法 7 лет назад

+ 11 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/cart/CartService.java

@@ -1,6 +1,7 @@
 package com.iamberry.wechat.face.cart;
 
 import java.util.List;
+import java.util.Map;
 
 import com.iamberry.wechat.core.entity.PaperBean;
 import com.iamberry.wechat.core.entity.admin.ShopSystemRule;
@@ -137,4 +138,14 @@ public interface CartService {
 	 * @return
 	 */
 	public Integer selectOrderCount(ShopSalesOrderDto shopSalesOrderDto);
+
+	/**
+	 * 修改订单状态
+	 * @param orderId   订单号
+	 * @param status    订单原状态
+	 * @param remark    备注
+	 * @param operation 操作  1:取消订单,2:申请退款,3:取消退款,4:申请退货,5:取消申请退货,6:取消退货,7:申请换货,8:取消换货
+	 * @return
+	 */
+	Map<String,Object> updateOrderStatus(String orderId, Integer status, String remark, int operation);
 }

+ 153 - 2
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java

@@ -1,7 +1,10 @@
 package com.iamberry.wechat.service.cart;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -256,6 +259,154 @@ public class CartServiceImpl implements CartService {
 		// TODO Auto-generated method stub
 		return cartDao.selectOrderCount(shopSalesOrderDto);
 	}
-	
-	
+
+	@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) {
+						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) {
+						flag = true;
+					}
+				} else if (operation == 7) {	//申请换货
+					order.setSalesStatus(11);	//申请换货中
+					//修改订单状态
+					int num = cartDao.updateOrderByOrder(order);
+					if (num > 0) {
+						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;
+	}
 }

+ 7 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/cart/dao/CartDao.java

@@ -137,4 +137,11 @@ public interface CartDao {
 	 * @return
 	 */
 	public Integer selectOrderCount(ShopSalesOrderDto shopSalesOrderDto);
+
+	/**
+	 * 修改订单状态和备注信息
+	 * @param order
+	 * @return
+	 */
+	Integer updateOrderByOrder(Order order);
 }

+ 5 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/cart/dao/impl/CartDaoImpl.java

@@ -198,4 +198,9 @@ public class CartDaoImpl implements CartDao{
 		// TODO Auto-generated method stub
 		return cartMapper.selectOrderCount(shopSalesOrderDto);
 	}
+
+	@Override
+	public Integer updateOrderByOrder(Order order) {
+		return cartMapper.updateOrderByOrder(order);
+	}
 }

+ 7 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/CartMapper.java

@@ -85,4 +85,11 @@ public interface CartMapper {
 	 * @return
 	 */
 	public Integer selectOrderCount(ShopSalesOrderDto shopSalesOrderDto);
+
+	/**
+	 * 修改订单状态和备注信息
+	 * @param order
+	 * @return
+	 */
+	Integer updateOrderByOrder(Order order);
 }

+ 26 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/cartMapper.xml

@@ -300,6 +300,32 @@ PUBLIC
 			SALES_STATUS = #{oldStatus} 
 		</if>
 	</update>
+
+	<!-- 根据orderId修改订单状态 -->
+	<update id="updateOrderByOrder" parameterType="Order">
+		UPDATE
+			TB_IAMBERRY_SHOP_SALES_ORDER
+		<set>
+			SALES_STATUS = #{salesStatus},
+			<if test="salesReturnDate != null and salesReturnDate != ''">
+				SALES_RETURN_DATE = #{salesReturnDate},
+			</if>
+			<if test="couponId!=null and couponId!=''" >
+				SALES_COUPON_RECEIVE_ID=#{couponId},
+			</if>
+			<if test="salesReturnDes!=null and salesReturnDes!=''" >
+				SALES_RETURN_DES = #{salesReturnDes},
+			</if>
+			<if test="salesChangeOrderid != null and salesChangeOrderid != ''">
+				SALES_CHANGE_ORDERID = #{salesChangeOrderid},
+			</if>
+		</set>
+		WHERE
+			SALES_ORDERID = #{salesOrderid}
+		<if test="oldStatus!=null" >
+			AND SALES_STATUS = #{oldStatus}
+		</if>
+	</update>
 	
 	<!-- 根据openid和状态查询订单数量 -->
 	<select id="selectOrderCount" parameterType="ShopSalesOrderDto" resultType="Integer">