Browse Source

修改了生成订单的方法

liuzhiwei 7 years ago
parent
commit
dd854085fc

+ 36 - 9
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/product/SalesUserGift.java

@@ -17,7 +17,42 @@ public class SalesUserGift implements java.io.Serializable {
     private Integer userGiftCount;      //赠送产品数量
     private Integer userStatus;         //状态    1:使用,2:停用
     private Date userCreateTime;        //创建时间
-    private String productName;        //产品名称
+    private String giftName;            //赠品名称
+    private String giftColorName;       //赠品颜色名称
+    private Integer giftChildType;      //赠品类型
+    private String giftProductPic;      //赠品图文
+
+    public String getGiftName() {
+        return giftName;
+    }
+
+    public void setGiftName(String giftName) {
+        this.giftName = giftName;
+    }
+
+    public String getGiftColorName() {
+        return giftColorName;
+    }
+
+    public void setGiftColorName(String giftColorName) {
+        this.giftColorName = giftColorName;
+    }
+
+    public Integer getGiftChildType() {
+        return giftChildType;
+    }
+
+    public void setGiftChildType(Integer giftChildType) {
+        this.giftChildType = giftChildType;
+    }
+
+    public String getGiftProductPic() {
+        return giftProductPic;
+    }
+
+    public void setGiftProductPic(String giftProductPic) {
+        this.giftProductPic = giftProductPic;
+    }
 
     public Integer getUserId() {
         return userId;
@@ -82,12 +117,4 @@ public class SalesUserGift implements java.io.Serializable {
     public void setUserCreateTime(Date userCreateTime) {
         this.userCreateTime = userCreateTime;
     }
-
-    public String getProductName() {
-        return productName;
-    }
-
-    public void setProductName(String productName) {
-        this.productName = productName;
-    }
 }

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

@@ -13,6 +13,7 @@ import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.core.entity.mq.MQMessage;
 import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.OrderItem;
+import com.iamberry.wechat.core.entity.product.SalesUserGift;
 
 public interface CartService {
 	
@@ -151,4 +152,11 @@ public interface CartService {
 	 * @return
 	 */
 	public Order getOrderRecentAddress(String openid);
+
+	/**
+	 * 查询购买产品的赠品信息
+	 * @param cartColorId
+	 * @return
+	 */
+	List<SalesUserGift> listGift(Integer cartColorId);
 }

+ 7 - 0
iamberry-wechat-interface/src/main/java/com/iamberry/wechat/face/phone/PhoneCodeService.java

@@ -15,4 +15,11 @@ public interface PhoneCodeService {
      * @return
      */
     public ResponseJson validCode(String phone, String code);
+
+    /**
+     * 发送手机验证码
+     * @param phone
+     * @return
+     */
+    public ResponseJson sms(String phone);
 }

+ 6 - 1
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java

@@ -3,6 +3,7 @@ package com.iamberry.wechat.service.cart;
 import java.util.Date;
 import java.util.List;
 
+import com.iamberry.wechat.core.entity.product.SalesUserGift;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -270,5 +271,9 @@ public class CartServiceImpl implements CartService {
 	public Order getOrderRecentAddress(String openid){
 		return cartDao.getRecentOrderAddress(openid);
 	}
-	
+
+	@Override
+	public List<SalesUserGift> listGift(Integer cartColorId) {
+		return cartDao.listGift(cartColorId);
+	}
 }

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

@@ -12,6 +12,7 @@ import com.iamberry.wechat.core.entity.coupon.CouponItem;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.OrderItem;
+import com.iamberry.wechat.core.entity.product.SalesUserGift;
 
 public interface CartDao {
 	
@@ -152,4 +153,11 @@ public interface CartDao {
 	 * @return
 	 */
 	public Order getRecentOrderAddress(String openid);
+
+	/**
+	 * 查询购买产品的赠品信息
+	 * @param cartColorId
+	 * @return
+	 */
+	List<SalesUserGift> listGift(Integer cartColorId);
 }

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

@@ -3,6 +3,7 @@ package com.iamberry.wechat.service.cart.dao.impl;
 import java.util.List;
 import java.util.Map;
 
+import com.iamberry.wechat.core.entity.product.SalesUserGift;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
@@ -207,4 +208,9 @@ public class CartDaoImpl implements CartDao{
 	public Order getRecentOrderAddress(String openid){
 		return orderMapper.getOrderAddressInfo(openid);
 	}
+
+	@Override
+	public List<SalesUserGift> listGift(Integer cartColorId) {
+		return cartMapper.listGift(cartColorId);
+	}
 }

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

@@ -10,6 +10,7 @@ import com.iamberry.wechat.core.entity.cart.ShopSalesOrderDto;
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.core.entity.order.Order;
+import com.iamberry.wechat.core.entity.product.SalesUserGift;
 
 public interface CartMapper {
 
@@ -99,4 +100,11 @@ public interface CartMapper {
 	 * @return
 	 */
 	public List<ShopSalesOrderDto> getOrderList(ShopSalesOrderDto shopSalesOrderDto);
+
+	/**
+	 * 查询购买产品的赠品信息
+	 * @param cartColorId
+	 * @return
+	 */
+	List<SalesUserGift> listGift(Integer cartColorId);
 }

+ 15 - 1
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/PhoneCodeMapper.java

@@ -12,5 +12,19 @@ public interface PhoneCodeMapper {
      * @param phoneCode
      * @return
      */
-    public PhoneCode getPhoneCode(PhoneCode phoneCode);
+    PhoneCode getPhoneCode(PhoneCode phoneCode);
+
+    /**
+     * 添加手机验证码信息
+     * @param phoneCode
+     * @return
+     */
+    Integer addPhoneCode(PhoneCode phoneCode);
+
+    /**
+     * 修改手机验证码
+     * @param phoneCode
+     * @return
+     */
+    Integer updatePhoneCode(PhoneCode phoneCode);
 }

+ 16 - 12
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/cartMapper.xml

@@ -44,21 +44,25 @@ PUBLIC
 		<collection property="salesUserGiftList" column="color_id" ofType="SalesUserGift" select="listGift"/>
 	</resultMap>
 
+	<!-- 查询购买产品的赠品信息 -->
 	<select id="listGift" resultType="SalesUserGift" parameterType="Integer">
 		SELECT
-		ug.user_id userId,
-		ug.user_product_id userProductId,
-		ug.user_color_id userColorId,
-		ug.user_gift_id userGiftId,
-		ug.user_gift_color userGiftColor,
-		ug.user_gift_count userGiftCount,
-		ug.user_status userStatus,
-		ug.user_create_time userCreateTime,
-		pi.product_name productName
+			ug.user_id userId,
+			ug.user_product_id userProductId,
+			ug.user_color_id userColorId,
+			ug.user_gift_id userGiftId,
+			ug.user_gift_color userGiftColor,
+			ug.user_gift_count userGiftCount,
+			ug.user_status userStatus,
+			ug.user_create_time userCreateTime,
+			pi.product_name giftName,
+			pc.color_name giftColorName,
+			pi.product_child_type giftChildType,
+			pc.color_product_pic giftProductPic
 		FROM
-		tb_iamberry_sales_user_gift ug
-		LEFT JOIN tb_iamberry_product_color pc on pc.color_id = #{cartColorId}
-		LEFT JOIN tb_iamberry_product_info pi on pi.product_id = pc.color_product_id
+			tb_iamberry_sales_user_gift ug
+		LEFT JOIN tb_iamberry_product_color pc on pc.color_id = ug.user_gift_color
+		LEFT JOIN tb_iamberry_product_info pi on pi.product_id = pc.user_gift_id
 		WHERE
 		ug.user_color_id = #{cartColorId}
 	</select>

+ 5 - 2
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/orderMapper.xml

@@ -49,14 +49,17 @@ PUBLIC
 		 		(
 			 		ITEM_SALES_ORDERID, ITEM_PRODUCT_ID, ITEM_NUM, ITEM_TOTAL, ITEM_CREATE_DATE,
 			 		ITEM_PRODUCT_NAME, ITEM_PRODUCT_DISCOUNT, ITEM_PRODUCT_PRICE, ITEM_PRODUCT_PIC,
-			 		ITEM_PRODUCT_TYPE 
+			 		ITEM_PRODUCT_TYPE, ITEM_COLOR_ID, ITEM_PRODUCT_COLOR, ITEM_PRODUCT_CHILD_TYPE,
+					ITEM_IS_SOURCE
 				)
 		 VALUES 
 		  	<foreach collection="list" item="item" separator=",">
 				(
 					#{item.itemSalesOrderid}, #{item.itemProductId}, #{item.itemNum}, 
 					#{item.itemTotal}, NOW(), #{item.itemProductName}, #{item.itemProductDiscount},
-					#{item.itemProductPrice}, #{item.itemProductPic}, #{item.itemProductType}
+					#{item.itemProductPrice}, #{item.itemProductPic}, #{item.itemProductType},
+					#{item.itemColorId}, #{item.itemProductColor}, #{item.itemProductChildType},
+					#{item.itemIsSource}
 				)
 	        </foreach>
 	</insert>

+ 23 - 0
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/phoneCodeMapper.xml

@@ -14,4 +14,27 @@
       WHERE
         code_tel = #{codeTel}
     </select>
+
+    <!-- 添加手机验证码信息 -->
+    <insert id="addPhoneCode" parameterType="PhoneCode" useGeneratedKeys="true" keyProperty="codeId">
+        INSERT INTO tb_iamberry_phone_code
+        (
+            code_tel,code_phone_code,code_send_time,code_create_time
+        )
+        VALUES
+        (
+          #{codeTel},#{codePhoneCode},NOW(),NOW()
+        )
+    </insert>
+
+    <!-- 修改手机验证码 -->
+    <update id="updatePhoneCode" parameterType="PhoneCode">
+      UPDATE
+        tb_iamberry_phone_code
+      SET
+        code_phone_code = #{codePhoneCode},
+        code_send_time = NOW()
+      WHERE
+        code_id = #{codeId}
+    </update>
 </mapper>

+ 40 - 0
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/phone/PhoneCodeServiceImpl.java

@@ -38,6 +38,46 @@ public class PhoneCodeServiceImpl implements PhoneCodeService {
     private static String ENCODING = "UTF-8";
     private static Random rnd = new Random();
 
+    public ResponseJson sms(String phone) {
+
+        // TODO Auto-generated method stub
+        ResponseJson json = new ResponseJson();
+        if (StringUtils.isEmpty(phone)) {
+            json.setReturnCode(2);
+            json.addResponseKeyValue("Phone Empty!");
+            return json;
+        }
+        PhoneCode phoneCode = new PhoneCode();
+        phoneCode.setCodePhoneCode(phone);
+        phoneCode = phoneCodeMapper.getPhoneCode(phoneCode);
+        if(phoneCode != null){
+            if(phoneCode.getCodeSendTime().getTime() < new Date().getTime()+ 60000
+                    && phoneCode.getCodeSendTime().getTime() > new Date().getTime() - 60000){
+                json.setReturnCode(3);
+                json.addResponseKeyValue("60秒内只能申请一次验证码");
+                return json;
+            }
+        }
+
+        // 获取验证码
+        String code = getRandomCode(4);
+        json = sendCMS(phone, code);
+        if (json.getReturnCode() != 200) {
+            json = sendCMS(phone, code);
+        }
+        //添加验证码到数据库
+        PhoneCode addPhoneCode = new PhoneCode();
+        addPhoneCode.setCodeTel(phone);
+        addPhoneCode.setCodePhoneCode(code);
+        if(phoneCode == null){
+            phoneCodeMapper.addPhoneCode(addPhoneCode);
+        }else{
+            addPhoneCode.setCodeId(phoneCode.getCodeId());
+            phoneCodeMapper.updatePhoneCode(addPhoneCode);
+        }
+        return json;
+    }
+
     /**
      * 发送短信验证码 封装返回前台参数
      * @param phone		手机号码

+ 34 - 2
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -12,6 +12,7 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.iamberry.wechat.core.entity.product.SalesUserGift;
 import com.iamberry.wechat.tools.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -144,7 +145,7 @@ public class OrderHandler {
 			return msg;
 		}
 		// 根据购物车ID,查询数据库中对应的产品信息(ID、产品状态)
-		List<CartDto> cartDtos = cartService.selectCartItemByListId(cartIntList);
+		List<CartDto> cartDtos = cartService.listCartByIds(cartIntList);
 		if (cartDtos == null || cartDtos.size() <= 0) {
 			msg.setMessage(ResultInfo.cartEmptyError);
 			return msg;
@@ -155,11 +156,22 @@ public class OrderHandler {
 		
 		List<CartDto> tempCarts = new ArrayList<CartDto>();
 		for (CartDto cartDto : cartDtos) {
+			switch (cartDto.getCartIsSource()) {
+				case 1:
+					cartDto = cartService.selectCartProductColor(cartDto);
+					break;
+				case 2:
+					cartDto = cartService.getCartProductFitting(cartDto);
+			}
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				total += cartDto.getCartNum() * cartDto.getProductPrice();
 				sum++;
 				tempCarts.add(cartDto);
 			}
+			//查询产品赠品信息
+			List<SalesUserGift> giftList = cartService.listGift(cartDto.getCartColorId());
+			cartDto.setSalesUserGiftList(giftList);
+
 		}
 		if (sum <= 0) {
 			msg.setMessage(ResultInfo.cartEmptyError);
@@ -167,7 +179,7 @@ public class OrderHandler {
 		}
 		
 		//未使用的优惠券
-		CouponItemDto cDto = new CouponItemDto();	
+		CouponItemDto cDto = new CouponItemDto();
 		cDto.setUseropenid(member.getUserOpenid());
 		cDto.setCouponUseStatus(1);
 		cDto.setBeginDate(new Date());
@@ -309,6 +321,26 @@ public class OrderHandler {
 				item.setItemIsSource(cartDto.getCartIsSource());
 				list.add(item);
 			}
+			//查询产品赠品信息
+			List<SalesUserGift> giftList = cartService.listGift(cartDto.getCartColorId());
+			if (giftList != null && giftList.size() > 0) {
+				for (SalesUserGift gift : giftList) {
+					OrderItem item = new OrderItem();
+					item.setItemNum(gift.getUserGiftCount());
+					item.setItemProductDiscount(0);
+					item.setItemProductId(gift.getUserProductId());
+					item.setItemProductName(gift.getGiftName());
+					item.setItemProductPic(gift.getGiftProductPic());
+					item.setItemSalesOrderid(order.getSalesOrderid());
+					item.setItemTotal(0);
+					item.setItemProductPrice(0);
+					item.setItemColorId(gift.getUserColorId());
+					item.setItemProductColor(gift.getGiftColorName());
+					item.setItemProductChildType(gift.getGiftChildType());
+					item.setItemIsSource(1);
+					list.add(item);
+				}
+			}
 		}
 		
 		// 准备订单对象

+ 28 - 0
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/warranty/WarrantyCardHandler.java

@@ -179,6 +179,34 @@ public class WarrantyCardHandler {
     }
 
     /**
+     * 发送手机验证码
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/send_phone_code")
+    public ResultMsg sendPhoneCode(HttpServletRequest request) throws Exception {
+        ResultMsg msg = new ResultMsg();
+        String phone = request.getParameter("phone");
+        if (phone == null || "".equals(phone)) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("手机号码不能为空!");
+            return msg;
+        }
+        //发送手机验证码
+        ResponseJson json = phoneCodeService.sms(phone);
+        if (json.getReturnCode() == 200) {
+            msg.setStatus(true);
+        } else {
+            msg.setStatus(false);
+        }
+        msg.setResultCode(json.getReturnCode().toString());
+        return msg;
+    }
+
+    /**
      * 获取ip地址
      * @param request
      * @return