Browse Source

上加商品

wangxiaoming 7 years ago
parent
commit
66739ece2e

+ 20 - 2
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/CartDto.java

@@ -45,6 +45,10 @@ public class CartDto implements Serializable{
 	
 	
 	private String productColor;			//产品颜色
 	private String productColor;			//产品颜色
 
 
+	private Integer colorAllNum;	//产品总数量
+
+	private Integer colorSoldNum;	//产品售出数量
+
 	
 	
 	public String getProductColor() {
 	public String getProductColor() {
 		return productColor;
 		return productColor;
@@ -166,6 +170,20 @@ public class CartDto implements Serializable{
 	public void setProductIntroduceImg(String productIntroduceImg) {
 	public void setProductIntroduceImg(String productIntroduceImg) {
 		this.productIntroduceImg = productIntroduceImg;
 		this.productIntroduceImg = productIntroduceImg;
 	}
 	}
-	
-	
+
+	public Integer getColorAllNum() {
+		return colorAllNum;
+	}
+
+	public void setColorAllNum(Integer colorAllNum) {
+		this.colorAllNum = colorAllNum;
+	}
+
+	public Integer getColorSoldNum() {
+		return colorSoldNum;
+	}
+
+	public void setColorSoldNum(Integer colorSoldNum) {
+		this.colorSoldNum = colorSoldNum;
+	}
 }
 }

+ 1 - 0
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -24,6 +24,7 @@ public class ResultInfo {
 	public  static String withdrawCountOutError = "";
 	public  static String withdrawCountOutError = "";
 	public  static String cartEmptyError = "";
 	public  static String cartEmptyError = "";
 	public  static String cartNoStatusError = "商品已下架";
 	public  static String cartNoStatusError = "商品已下架";
+	public  static String cartNoNumError = "商品已售空";
 	public  static String userMoneyOutError = "";
 	public  static String userMoneyOutError = "";
 	public  static String userNoDrpError = "";
 	public  static String userNoDrpError = "";
 	
 	

+ 17 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/porduct/ProductColorService.java

@@ -66,4 +66,21 @@ public interface ProductColorService {
 	 * @return
 	 * @return
 	 */
 	 */
 	public Integer updateProductColorById(ProductColor productColor);
 	public Integer updateProductColorById(ProductColor productColor);
+
+	/**
+	 * 修改库存数量
+	 * @param colorId
+	 * @param num
+	 * @return
+	 */
+	Integer updateAddSoldNum(Integer colorId, Integer num);
+
+	/**
+	 * 售出修改数量
+	 * @param colorId
+	 * @param num
+	 * @return
+	 */
+	Integer updateMinusSoldNum(Integer colorId, Integer num);
+
 }
 }

+ 16 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ProductColorMapper.java

@@ -83,4 +83,20 @@ public interface ProductColorMapper {
 	 * @Time   2017年2月16日
 	 * @Time   2017年2月16日
 	 */
 	 */
 	List<ProductColor> getColor(Integer productId);
 	List<ProductColor> getColor(Integer productId);
+
+	/**
+	 * 修改库存数量
+	 * @param colorId
+	 * @param num
+	 * @return
+	 */
+	Integer updateAddSoldNum(Integer colorId, Integer num);
+
+	/**
+	 * 售出修改数量
+	 * @param colorId
+	 * @param num
+	 * @return
+	 */
+	Integer updateMinusSoldNum(Integer colorId, Integer num);
 }
 }

+ 7 - 4
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/cartMapper.xml

@@ -253,11 +253,14 @@ PUBLIC
 	<select id="selectCartItemByListId" parameterType="java.util.List" resultType="CartDto">
 	<select id="selectCartItemByListId" parameterType="java.util.List" resultType="CartDto">
 		SELECT 
 		SELECT 
 			C.CART_ID cartId, G.PRODUCT_ID cartProductId, pc.COLOR_ID cartColorId, PC.color_status productStatus,
 			C.CART_ID cartId, G.PRODUCT_ID cartProductId, pc.COLOR_ID cartColorId, PC.color_status productStatus,
-			C.CART_NUM cartNum, G.PRODUCT_NAME productName, pc.COLOR_DISCOUNT productPrice, 
-
+			C.CART_NUM cartNum, G.PRODUCT_NAME productName, pc.COLOR_DISCOUNT productPrice,
 			pc.color_img productIntroduceImg,
 			pc.color_img productIntroduceImg,
-			pc.COLOR_PRICE productDiscount, PC.COLOR_69CODE productRemark,
-			pc.COLOR_NAME productColor, G.PRODUCT_TYPE productType 
+			pc.COLOR_PRICE productDiscount,
+			PC.COLOR_69CODE productRemark,
+			pc.COLOR_NAME productColor,
+			pc.color_all_num colorAllNum,
+			pc.color_sold_num colorSoldNum,
+			G.PRODUCT_TYPE productType
 		FROM 
 		FROM 
 			TB_IAMBERRY_SHOP_CART C 
 			TB_IAMBERRY_SHOP_CART C 
 		LEFT JOIN TB_IAMBERRY_PRODUCT_INFO G ON C.CART_PRODUCT_ID = G.PRODUCT_ID 
 		LEFT JOIN TB_IAMBERRY_PRODUCT_INFO G ON C.CART_PRODUCT_ID = G.PRODUCT_ID 

+ 22 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/productColorMapper.xml

@@ -148,4 +148,26 @@
  		</set>
  		</set>
 		WHERE COLOR_ID = #{colorId}
 		WHERE COLOR_ID = #{colorId}
 	</update>
 	</update>
+
+
+	<!-- 修改库存数量 -->
+	<update id="updateAddSoldNum" parameterType="Integer">
+		UPDATE TB_IAMBERRY_PRODUCT_COLOR
+		<set>
+			color_sold_num = color_sold_num + #{colorId},
+			COLOR_UPDATE_TIME=NOW()
+		</set>
+		WHERE COLOR_ID = #{colorId}
+	</update>
+
+	<!-- 售出修改数量 -->
+	<update id="updateMinusSoldNum" parameterType="Integer">
+		UPDATE TB_IAMBERRY_PRODUCT_COLOR
+		<set>
+			color_sold_num = color_sold_num - #{colorId},
+			COLOR_UPDATE_TIME=NOW()
+		</set>
+		WHERE COLOR_ID = #{colorId}
+	</update>
+
 </mapper>
 </mapper>

+ 12 - 1
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/product/ProductColorServiceImpl.java

@@ -61,5 +61,16 @@ public class ProductColorServiceImpl implements ProductColorService {
 		// TODO Auto-generated method stub
 		// TODO Auto-generated method stub
 		return productColorMapper.updateProductColorById(productColor);
 		return productColorMapper.updateProductColorById(productColor);
 	}
 	}
-	
+
+	@Override
+	public Integer updateAddSoldNum(Integer colorId, Integer num) {
+		return productColorMapper.updateAddSoldNum(colorId,num);
+	}
+
+	@Override
+	public Integer updateMinusSoldNum(Integer colorId, Integer num) {
+		return productColorMapper.updateMinusSoldNum(colorId,num);
+	}
+
+
 }
 }

+ 16 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java

@@ -16,6 +16,7 @@ import com.iamberry.wechat.face.efast.EfastRentService;
 import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.order.CodeService;
 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.LoadRewardTaskService;
 import com.iamberry.wechat.face.reback.RebackServices;
 import com.iamberry.wechat.face.reback.RebackServices;
 import com.iamberry.wechat.face.relationship.DealerRelationService;
 import com.iamberry.wechat.face.relationship.DealerRelationService;
@@ -87,6 +88,8 @@ public class AdminOrderHandlers {
 
 
     @Autowired
     @Autowired
     private CodeService codeService;
     private CodeService codeService;
+    @Autowired
+    private ProductColorService productColorService;
 
 
 
 
     /**
     /**
@@ -638,6 +641,19 @@ public class AdminOrderHandlers {
                     }
                     }
                     order.setSalesStatus(4);
                     order.setSalesStatus(4);
                     if (adminOrderService.updateOrderStatusByOrderId(order)) {
                     if (adminOrderService.updateOrderStatusByOrderId(order)) {
+                        List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(order.getSalesOrderid());
+                        /*调整库存 - 同意退款,库存返回*/
+                        for (int i = 0; i < orderItemList.size(); i++) {
+                            Integer fl = productColorService.updateAddSoldNum(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();
                         RebackInfo rabackInfo = new RebackInfo();
                         rabackInfo.setOrderId(order.getSalesOrderid());
                         rabackInfo.setOrderId(order.getSalesOrderid());

+ 44 - 31
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -1,57 +1,36 @@
 package com.iamberry.wechat.handles.order;
 package com.iamberry.wechat.handles.order;
-import java.io.IOException;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 
 
-import com.iamberry.wechat.core.entity.customized.CustomizedTooth;
-import com.iamberry.wechat.core.entity.integral.StayIntegral;
-import com.iamberry.wechat.core.entity.mq.MQMessage;
-import com.iamberry.wechat.core.entity.product.ProductColor;
-import com.iamberry.wechat.core.entity.product.QrcodeGift;
-import com.iamberry.wechat.face.customized.CustomizedToothService;
-import com.iamberry.wechat.face.integral.UseIntegralService;
-import com.iamberry.wechat.face.mq.EfastOrderService;
-import com.iamberry.wechat.face.order.AdminOrderService;
-import com.iamberry.wechat.face.porduct.ProductColorService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.iamberry.wechat.core.entity.PageBean;
+import com.iamberry.app.tool.log.RatFWLogger;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.core.entity.cart.CartDto;
 import com.iamberry.wechat.core.entity.cart.CartDto;
 import com.iamberry.wechat.core.entity.cart.OrderPayDto;
 import com.iamberry.wechat.core.entity.cart.OrderPayDto;
 import com.iamberry.wechat.core.entity.cart.SendPayDto;
 import com.iamberry.wechat.core.entity.cart.SendPayDto;
-import com.iamberry.wechat.core.entity.cart.ShopSalesOrderDto;
 import com.iamberry.wechat.core.entity.cart.TempOrderDto;
 import com.iamberry.wechat.core.entity.cart.TempOrderDto;
-import com.iamberry.wechat.core.entity.cart.UserGiftDto;
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
 import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
 import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
-import com.iamberry.wechat.core.entity.member.CashLog;
+import com.iamberry.wechat.core.entity.customized.CustomizedTooth;
+import com.iamberry.wechat.core.entity.integral.StayIntegral;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.OrderItem;
 import com.iamberry.wechat.core.entity.order.OrderItem;
 import com.iamberry.wechat.core.entity.pay.PayResult;
 import com.iamberry.wechat.core.entity.pay.PayResult;
-import com.iamberry.wechat.core.entity.product.Product;
+import com.iamberry.wechat.core.entity.product.ProductColor;
 import com.iamberry.wechat.face.admin.SystemService;
 import com.iamberry.wechat.face.admin.SystemService;
 import com.iamberry.wechat.face.cart.CartService;
 import com.iamberry.wechat.face.cart.CartService;
 import com.iamberry.wechat.face.cart.ProductInfoService;
 import com.iamberry.wechat.face.cart.ProductInfoService;
 import com.iamberry.wechat.face.coupon.CouponItemService;
 import com.iamberry.wechat.face.coupon.CouponItemService;
 import com.iamberry.wechat.face.coupon.CouponTypeService;
 import com.iamberry.wechat.face.coupon.CouponTypeService;
+import com.iamberry.wechat.face.customized.CustomizedToothService;
 import com.iamberry.wechat.face.home.HomeService;
 import com.iamberry.wechat.face.home.HomeService;
+import com.iamberry.wechat.face.integral.UseIntegralService;
 import com.iamberry.wechat.face.member.CashLogService;
 import com.iamberry.wechat.face.member.CashLogService;
 import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.face.member.MemberService;
+import com.iamberry.wechat.face.mq.EfastOrderService;
+import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.pay.PayService;
 import com.iamberry.wechat.face.pay.PayService;
+import com.iamberry.wechat.face.porduct.ProductColorService;
 import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
 import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
 import com.iamberry.wechat.face.reback.RebackServices;
 import com.iamberry.wechat.face.reback.RebackServices;
 import com.iamberry.wechat.handles.mq.MQServiceProxy;
 import com.iamberry.wechat.handles.mq.MQServiceProxy;
@@ -59,6 +38,20 @@ import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.OrderNOUtil;
 import com.iamberry.wechat.tools.OrderNOUtil;
 import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.tools.ValidatorUtil;
 import com.iamberry.wechat.tools.ValidatorUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 
 /**
 /**
  * @author 何秀刚
  * @author 何秀刚
@@ -69,7 +62,8 @@ import com.iamberry.wechat.tools.ValidatorUtil;
 @Controller
 @Controller
 @RequestMapping("/wechat/order")
 @RequestMapping("/wechat/order")
 public class OrderHandler {
 public class OrderHandler {
-
+	@Autowired
+	private RatFWLogger ratFWLogger;
 
 
 	@Autowired
 	@Autowired
 	private CartService cartService;
 	private CartService cartService;
@@ -112,6 +106,8 @@ public class OrderHandler {
 
 
 	@Autowired
 	@Autowired
 	private CustomizedToothService customizedToothService;
 	private CustomizedToothService customizedToothService;
+	@Autowired
+	private AdminOrderService adminOrderService;
 
 
 	/**
 	/**
 	 * 支付前,调用方法
 	 * 支付前,调用方法
@@ -206,6 +202,10 @@ public class OrderHandler {
 
 
 		List<CartDto> tempCarts = new ArrayList<CartDto>();
 		List<CartDto> tempCarts = new ArrayList<CartDto>();
 		for (CartDto cartDto : cartDtos) {
 		for (CartDto cartDto : cartDtos) {
+			if((cartDto.getColorAllNum() - cartDto.getColorSoldNum()) < 1){
+				msg.setMessage(ResultInfo.cartNoNumError);
+				return msg;
+			}
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				total += cartDto.getCartNum() * cartDto.getProductPrice();
 				total += cartDto.getCartNum() * cartDto.getProductPrice();
 				sum++;
 				sum++;
@@ -663,6 +663,19 @@ public class OrderHandler {
 		}
 		}
 
 
 		if(updateFlase){
 		if(updateFlase){
+			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) {
+					ratFWLogger.info("售出修改数量失败,订单号为:" +orderItemList.get(i).getItemSalesOrderid() );
+				}else{
+					ratFWLogger.info("售出修改数量成功,订单号为:" +orderItemList.get(i).getItemSalesOrderid()
+							+";颜色id为:"+orderItemList.get(i).getItemColorId()+"的数量减去"+orderItemList.get(i).getItemNum());
+				}
+			}
+			/*调整库存*/
+
 			//设置订单状态,还有优惠券id
 			//设置订单状态,还有优惠券id
 			order.setSalesStatus(2);
 			order.setSalesStatus(2);
 			cartService.updateOrderStatus(order);
 			cartService.updateOrderStatus(order);

+ 17 - 10
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java

@@ -40,6 +40,7 @@ import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.order.AdminProbationOrderService;
 import com.iamberry.wechat.face.order.AdminProbationOrderService;
 import com.iamberry.wechat.face.order.CodeService;
 import com.iamberry.wechat.face.order.CodeService;
 import com.iamberry.wechat.face.order.ProbationShopOrderService;
 import com.iamberry.wechat.face.order.ProbationShopOrderService;
+import com.iamberry.wechat.face.porduct.ProductColorService;
 import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
 import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
 import com.iamberry.wechat.face.receive.ChargReceiveService;
 import com.iamberry.wechat.face.receive.ChargReceiveService;
 import com.iamberry.wechat.handles.mq.MQServiceProxy;
 import com.iamberry.wechat.handles.mq.MQServiceProxy;
@@ -128,6 +129,8 @@ public class ResponseWechatPayHandler {
 	private ApparatusService apparatusService;
 	private ApparatusService apparatusService;
 	@Autowired
 	@Autowired
 	private ChargReceiveService chargReceiveService;
 	private ChargReceiveService chargReceiveService;
+	@Autowired
+	private ProductColorService productColorService;
 
 
 	/**
 	/**
 	 * 销售订单支付回调方法 -- tooth订单返回
 	 * 销售订单支付回调方法 -- tooth订单返回
@@ -156,7 +159,6 @@ public class ResponseWechatPayHandler {
 //System.out.println("===========pay 117==============");
 //System.out.println("===========pay 117==============");
 				
 				
 				if (orderIdMD5.equals(wpr.getOutTradeNo())) {
 				if (orderIdMD5.equals(wpr.getOutTradeNo())) {
-
 					/*免费领取充电器支付邮费---start*/
 					/*免费领取充电器支付邮费---start*/
 					if (orderIdMD5.startsWith("mflq")) {
 					if (orderIdMD5.startsWith("mflq")) {
 						ChargerReceive cr = new ChargerReceive();
 						ChargerReceive cr = new ChargerReceive();
@@ -187,15 +189,6 @@ public class ResponseWechatPayHandler {
 						// 修改订单状态
 						// 修改订单状态
 						int count = cartService.updateOrderStatus(order);
 						int count = cartService.updateOrderStatus(order);
 
 
-						//发送短信给运营部
-						/*ShopSystemRule rule = cartService.getReluByRid(241);
-						try {
-							String text = MessageFormat.format(ImberryConfig.ORDER_UPDATE_STATUS_TEXT, "发货");
-							codeService.informShipping(rule.getRuleDesc(),text);
-						} catch (Exception e) {
-							System.out.println("订单换货发送消息失败!");
-						}*/
-
 						/*计算使用优惠券优惠的金额*/
 						/*计算使用优惠券优惠的金额*/
 						Integer couponAmount = 0;
 						Integer couponAmount = 0;
 
 
@@ -255,6 +248,20 @@ public class ResponseWechatPayHandler {
 						ratFWLogger.info("积分是否入账:" + flag);
 						ratFWLogger.info("积分是否入账:" + flag);
 						/*----------计算积分-----------*/
 						/*----------计算积分-----------*/
 
 
+
+						/*调整库存*/
+						for (int i = 0; i < orderItemList.size(); i++) {
+							Integer fl = productColorService.updateMinusSoldNum(orderItemList.get(i).getItemColorId(),orderItemList.get(i).getItemNum());
+							if (fl < 1) {
+								ratFWLogger.info("售出修改数量失败,订单号为:" +orderItemList.get(i).getItemSalesOrderid() );
+							}else{
+								ratFWLogger.info("售出修改数量成功,订单号为:" +orderItemList.get(i).getItemSalesOrderid()
+										+";颜色id为:"+orderItemList.get(i).getItemColorId()+"的数量减去"+orderItemList.get(i).getItemNum());
+							}
+						}
+						/*调整库存*/
+
+
 						if (count < 1) {
 						if (count < 1) {
 							resXml = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文有误]]></return_msg></xml>";
 							resXml = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文有误]]></return_msg></xml>";
 						}
 						}