Przeglądaj źródła

上朵分销系统

wangxiaoming 6 lat temu
rodzic
commit
7cf3c97dd9
16 zmienionych plików z 210 dodań i 21 usunięć
  1. 10 0
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/OrderPayDto.java
  2. 8 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/channel/ChannelAdminService.java
  3. 8 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/order/AdminOrderService.java
  4. 7 1
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/channel/ChannelAdminServiceImpl.java
  5. 7 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/AdminOrderMapper.java
  6. 8 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ChannelAdminMapper.java
  7. 22 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/adminOrderMapper.xml
  8. 30 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/channelAdminMapper.xml
  9. 2 1
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/orderMapper.xml
  10. 5 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/AdminOrderServiceImpl.java
  11. 7 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/AdminOrderDao.java
  12. 5 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/impl/AdminOrderDaoImpl.java
  13. 22 1
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/channel/ChannelAdminHandler.java
  14. 21 13
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java
  15. 34 3
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java
  16. 14 2
      tooth-wechat-web/src/main/java/com/iamberry/wechat/utils/StitchAttrUtil.java

+ 10 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/OrderPayDto.java

@@ -39,6 +39,8 @@ public class OrderPayDto implements java.io.Serializable{
 	
 	private boolean disable;	//是否可以使用优惠券
 
+	private String channelName;	//自提地点
+
 	public boolean isDisable() {
 		return disable;
 	}
@@ -126,4 +128,12 @@ public class OrderPayDto implements java.io.Serializable{
 	public void setIsCustomize(String isCustomize) {
 		this.isCustomize = isCustomize;
 	}
+
+	public String getChannelName() {
+		return channelName;
+	}
+
+	public void setChannelName(String channelName) {
+		this.channelName = channelName;
+	}
 }

+ 8 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/channel/ChannelAdminService.java

@@ -33,6 +33,14 @@ public interface ChannelAdminService {
      * @return  channelAdmin
      */
     ChannelAdmin  getChannelAdminById(Integer  id);
+
+    /**
+     * 查询提货列表数量
+     * @param  order
+     * @return  channelAdmin
+     */
+    Integer  listOrderCount(Order order);
+
     /**
      * 增加数据
      * @param  channelAdmin

+ 8 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/order/AdminOrderService.java

@@ -233,4 +233,12 @@ public interface AdminOrderService {
 	 * @return
 	 */
 	List<Order> getOrderListToExcel(Order order);
+
+	/**
+	 * 获取交易成功的订单
+	 * @param orderId
+	 * @return
+	 */
+	Order getPaySuccessOrderByOrderId(String orderId);
+
 }

+ 7 - 1
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/channel/ChannelAdminServiceImpl.java

@@ -36,7 +36,7 @@ public class ChannelAdminServiceImpl  implements ChannelAdminService {
     public PagedResult<Order> listOrderPage(PageRequest<Order> pageRequest) {
         PageHelper.startPage(pageRequest.getPageNO(), pageRequest.getPageSize(), pageRequest.isPageTotal());
         List<Order> detedctList = channelAdminMapper.listOrderPage(pageRequest.getData());
-        return PageUtil.getPage(detedctList);
+         return PageUtil.getPage(detedctList);
     }
 
     /**
@@ -48,6 +48,12 @@ public class ChannelAdminServiceImpl  implements ChannelAdminService {
     public  ChannelAdmin  getChannelAdminById(Integer  id){
         return  channelAdminMapper.getChannelAdminById(id);
     }
+
+    @Override
+    public Integer listOrderCount(Order order) {
+        return  channelAdminMapper.listOrderCount(order);
+    }
+
     /**
      * 增加数据
      * @param  channelAdmin

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

@@ -223,4 +223,11 @@ public interface AdminOrderMapper {
 	 * @return
 	 */
 	List<Order> getOrderListToExcel(Order order);
+
+	/**
+	 * 获取交易成功的订单
+	 * @param orderId
+	 * @return
+	 */
+	Order getPaySuccessOrderByOrderId(String orderId);
 }

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

@@ -26,6 +26,14 @@ public interface ChannelAdminMapper {
      * @return  channelAdmin
      */
     ChannelAdmin  getChannelAdminById(Integer  id);
+
+    /**
+     * 查询提货列表数量
+     * @param  order
+     * @return  channelAdmin
+     */
+    Integer  listOrderCount(Order order);
+
     /**
      * 增加数据
      * @param  channelAdmin

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

@@ -993,5 +993,27 @@
 	</select>
 
 
+	<!-- 根据orderId查询订单信息 -->
+	<select id="getPaySuccessOrderByOrderId" parameterType="String" resultType="Order">
+		SELECT O.SALES_ORDERID salesOrderid, U.USER_NICKNAME userNickname, O.SALES_STATUS salesStatus,
+		O.SALES_YET_AMOUNT salesYetAmount, O.SALES_INTEGRAL_NUM salesIntegralNum, O.SALES_RATE_AMOUNT salesRateAmount,
+		O.SALES_POST_FIRM salesPostFirm, O.SALES_POST_NUM salesPostNum, O.SALES_CREATE_DATE salesCreateDate,
+		O.SALES_ADDRESS_POSTNUM salesAddressPostnum,  O.SALES_REWARD_INTEGRAL_NUM salesRewardIntegralNum,
+		O.SALES_ADDRESS_NAME salesAddressName, O.SALES_ADDRESS_TEL salesAddressTel, O.SALES_SEND_DATE salesSendDate,
+		O.SALES_USER_REMARK salesUserRemark, O.SALES_COLOR_TYPE salesColorType, O.SALES_ADMIN_REMARK salesAdminRemark,
+		O.SALES_RETURN_DES salesReturnDes, O.SALES_ADDRESS_INFO salesAddressInfo, O.SALES_RETURN_DATE salesReturnDate,
+		O.SALES_AMOUNT salesAmount, O.SALES_TRANSACTION_DATE salesTransactionDate, O.SALES_OPENID salesOpenid,
+		O.SALES_COUPON_RECEIVE_ID couponId, O.SALES_BALANCE_AMOUNT balancePayAmount, O.SALES_IS_RFUND salesIsRfund
+		FROM
+		TB_IAMBERRY_SHOP_SALES_ORDER O LEFT JOIN TB_IAMBERRY_USER_USERINFO U
+		ON O.SALES_OPENID = U.USER_OPENID
+		WHERE
+		O.SALES_ORDERID = #{0}
+		AND
+		O.SALES_ORDER_TYPE = 1
+		AND
+		O.sales_status IN (2,5,9,10,11,12)
+	</select>
+
 
 </mapper>

+ 30 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/channelAdminMapper.xml

@@ -50,6 +50,35 @@
         where t.channel_admin_id= #{channelAdminId}
     </select>
 
+    <select id="listOrderCount" resultType="Integer" parameterType="Order" >
+        SELECT
+          COUNT(so.sales_orderid)
+        FROM
+          tb_iamberry_shop_sales_order so
+        LEFT JOIN tb_iamberry_main_channel mc ON so.sales_channel_type = 1 AND so.sales_channel_id = mc.main_channel_id
+        LEFT JOIN tb_iamberry_child_channel cc ON so.sales_channel_type = 2 AND so.sales_channel_id = cc.child_channel_id
+        <where>
+            <if test="channelIds != null ">
+                (mc.main_channel_id in
+                <foreach collection="channelIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach >
+                OR cc.main_channel_id in
+                <foreach collection="channelIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach >
+                )
+            </if >
+            <if test="salesTransportationType != null ">
+                AND so.sales_transportation_type = #{salesTransportationType}
+            </if >
+            <if test="salesStatus != null ">
+                AND so.sales_status = #{salesStatus}
+            </if >
+        </where>
+    </select>
+
+
     <insert id="save" parameterType="ChannelAdmin" >
         insert into
         tb_iamberry_channel_admin
@@ -149,6 +178,7 @@
                 AND so.sales_status = #{salesStatus}
             </if >
         </where>
+        ORDER BY so.sales_orderid DESC
     </select>
 
 </mapper>

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

@@ -134,7 +134,8 @@ PUBLIC
 	from 
 	tb_iamberry_shop_sales_order
     where  
-    sales_openid=#{openid}
+    	sales_openid=#{openid}
+    AND sales_transportation_type = 1
     order by sales_create_date desc
     limit 0,1
 	</select>

+ 5 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/AdminOrderServiceImpl.java

@@ -789,4 +789,9 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	public List<Order> getOrderListToExcel(Order order) {
 		return adminOrderDao.getOrderListToExcel(order);
 	}
+
+	@Override
+	public Order getPaySuccessOrderByOrderId(String orderId) {
+		return this.adminOrderDao.getPaySuccessOrderByOrderId(orderId);
+	}
 }

+ 7 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/AdminOrderDao.java

@@ -240,4 +240,11 @@ public interface AdminOrderDao {
 	 * @return
 	 */
 	List<Order> getOrderListToExcel(Order order);
+
+	/**
+	 * 获取交易成功的订单
+	 * @param orderId
+	 * @return
+	 */
+	Order getPaySuccessOrderByOrderId(String orderId);
 }

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

@@ -345,4 +345,9 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 	public List<Order> getOrderListToExcel(Order order) {
 		return adminOrderMapper.getOrderListToExcel(order);
 	}
+
+	@Override
+	public Order getPaySuccessOrderByOrderId(String orderId) {
+		return this.adminOrderMapper.getPaySuccessOrderByOrderId(orderId);
+	}
 }

+ 22 - 1
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/channel/ChannelAdminHandler.java

@@ -3,6 +3,7 @@ package com.iamberry.wechat.handles.channel;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.core.entity.channel.ChannelAdmin;
+import com.iamberry.wechat.core.entity.channel.ChildChannel;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.OrderItem;
@@ -15,6 +16,7 @@ import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.utils.StitchAttrUtil;
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +27,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Controller
 @RequestMapping("/wechat/channelAdmin")
@@ -88,13 +92,30 @@ public class ChannelAdminHandler {
         PageRequest<Order> pageRequest = new PageRequest<>(order, pageNO, pageSize, totalNum == 0);
         // 查询订单列表
         PagedResult<Order> result = channelAdminService.listOrderPage(pageRequest);
+        Boolean lastPage = StitchAttrUtil.getSa().getLastPage(result);
+
         List<Order> orderList = result.getDataList();
         for (Order or :orderList) {
             List<OrderItem>orderItemList = adminOrderService.getShopOrderItemByOrderId(or.getSalesOrderid());
             or.setOrderItemList(orderItemList);
         }
+
+        Order or = new Order();
+        or.setChannelIds(ids);
+        or.setSalesTransportationType(2);
+        or.setSalesStatus(2);
+        Integer dfStatus = channelAdminService.listOrderCount(or);
+        or.setSalesStatus(5);
+        Integer yfStatus = channelAdminService.listOrderCount(or);
+
+        Map<String,Object> map = new HashMap<>();
+        map.put("orderList",orderList);
+        map.put("lastPage",lastPage);
+        map.put("dfStatus",dfStatus);
+        map.put("yfStatus",yfStatus);
+
         msg = ResultMsg.getSuccess();
-        msg.setData(orderList);
+        msg.setData(map);
         return msg;
     }
 

+ 21 - 13
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java

@@ -549,20 +549,28 @@ public class MQTask implements InitializingBean {
 		logger.info("上朵分销返利订单处理时间为:"+num + "天");
 		for (ChannelRebate cr:channelRebateList) {
 			Order order = adminOrderService.getShopOrderByOrderId(cr.getSalesOrderid());
-			Calendar calendar = Calendar.getInstance();
-			calendar.setTime(order.getSalesCreateDate());
-			calendar.add(Calendar.DATE, num);
-			if(calendar.getTime().getTime() < new Date().getTime()){	//如果订单时间+10天 小于 当前时间,那么表示该返利状态更改为已返利(2)
-				ChannelRebate newCr = new ChannelRebate();
-				newCr.setRebateId(cr.getRebateId());
-				newCr.setRebackStatus(2);
-				//newCr.setRebackTime(new Date());
-				Integer flag = channelRebateService.update(newCr);
-				if(flag > 0){
-					logger.info("上朵分销返利成功,订单号为:"+cr.getSalesOrderid()+"--返利id为:"+cr.getRebateId());
-				}else{
-					logger.info("上朵分销返利失败,订单号为:"+cr.getSalesOrderid()+"--返利id为:"+cr.getRebateId());
+			Integer status = order.getSalesStatus();
+			//状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货  6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成 11:申请换货中 12:订单完成
+			if(status == 5 ||   status == 9 || status == 10 ||  status == 11 ||  status == 12){
+				Calendar calendar = Calendar.getInstance();
+				calendar.setTime(order.getSalesCreateDate());
+				calendar.add(Calendar.DATE, num);
+				if(calendar.getTime().getTime() < new Date().getTime()){	//如果订单时间+10天 小于 当前时间,那么表示该返利状态更改为已返利(2)
+					ChannelRebate newCr = new ChannelRebate();
+					newCr.setRebateId(cr.getRebateId());
+					newCr.setRebackStatus(2);
+					//newCr.setRebackTime(new Date());
+					Integer flag = channelRebateService.update(newCr);
+					if(flag > 0){
+						logger.info("上朵分销返利成功,订单号为:"+cr.getSalesOrderid()+"--返利id为:"+cr.getRebateId());
+					}else{
+						logger.info("上朵分销返利失败,订单号为:"+cr.getSalesOrderid()+"--返利id为:"+cr.getRebateId());
+					}
 				}
+			}else{
+//				if(status > 2){
+//					logger.info("上朵分销返利记录,订单号为:"+cr.getSalesOrderid()+"--返利id为:"+cr.getRebateId()+"==订单状态为:"+status);
+//				}
 			}
 		}
 		logger.info("上朵分销返利任务结束");

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

@@ -9,6 +9,8 @@ import com.iamberry.wechat.core.entity.cart.SendPayDto;
 import com.iamberry.wechat.core.entity.cart.TempOrderDto;
 import com.iamberry.wechat.core.entity.channel.ChannelPrice;
 import com.iamberry.wechat.core.entity.channel.ChannelRebate;
+import com.iamberry.wechat.core.entity.channel.ChildChannel;
+import com.iamberry.wechat.core.entity.channel.MainChannel;
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
 import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
@@ -24,6 +26,8 @@ import com.iamberry.wechat.face.cart.CartService;
 import com.iamberry.wechat.face.cart.ProductInfoService;
 import com.iamberry.wechat.face.channel.ChannelPriceService;
 import com.iamberry.wechat.face.channel.ChannelRebateService;
+import com.iamberry.wechat.face.channel.ChildChannelService;
+import com.iamberry.wechat.face.channel.MainChannelService;
 import com.iamberry.wechat.face.coupon.CouponItemService;
 import com.iamberry.wechat.face.coupon.CouponTypeService;
 import com.iamberry.wechat.face.customized.CustomizedToothService;
@@ -113,6 +117,10 @@ public class OrderHandler {
 	private ChannelPriceService channelPriceService;
 	@Autowired
 	private ChannelRebateService channelRebateService;
+	@Autowired
+	private MainChannelService mainChannelService;
+	@Autowired
+	private ChildChannelService childChannelService;
 
 	/**
 	 * 支付前,调用方法
@@ -140,6 +148,16 @@ public class OrderHandler {
 			isCustomize = "1";
 		}
 
+		if(channelType > 0 && channelId > 0){
+			if(channelType == 1){
+						MainChannel mainChannel = mainChannelService.getMainChannelById(channelId);
+				dto.setChannelName(mainChannel.getMainChannelName());
+			}else{
+				ChildChannel childChannel = childChannelService.getChildChannelById(channelId);
+				dto.setChannelName( childChannel.getChildChannelName());
+			}
+		}
+
 		if (cartIds == null || isCustomize==null) {
 			msg.setMessage(ResultInfo.cartEmptyError);
 			return msg;
@@ -479,7 +497,7 @@ public class OrderHandler {
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				cartIds.add(cartDto.getCartId());
 				Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
-
+				Integer discount = 0,price=0;
 				total += subTotal;
 
 				/*上朵分销,*/
@@ -487,6 +505,8 @@ public class OrderHandler {
 					ChannelPrice channelPrice = channelPriceService.getChannelPriceByChannel(temp.getChannelId(),temp.getChannelType(),cartDto.getCartColorId());
 					if(channelPrice != null){
 						subTotal = cartDto.getCartNum() * channelPrice.getChannelPriceOffer();
+						discount = channelPrice.getChannelPriceOffer();
+						price =channelPrice.getChannelOriginalPrice();
 					}
 				}
 				channelTotal += subTotal;
@@ -494,14 +514,25 @@ public class OrderHandler {
 
 				OrderItem item = new OrderItem();
 				item.setItemNum(cartDto.getCartNum());
-				item.setItemProductDiscount(cartDto.getProductPrice());
+
+				if(discount > 0 ){
+					item.setItemProductDiscount(discount);
+				}else{
+					item.setItemProductDiscount(cartDto.getProductPrice());
+				}
+
 				item.setItemProductId(cartDto.getCartProductId());
 				item.setItemProductName(cartDto.getProductName());
 				item.setItemProductPic(cartDto.getProductIntroduceImg());
 				item.setItemSalesOrderid(order.getSalesOrderid());
 				item.setItemTotal(subTotal);
 				item.setItemProductType(cartDto.getProductType());
-				item.setItemProductPrice(cartDto.getProductDiscount());
+				if(price > 0 ){
+					item.setItemProductPrice(price);
+				}else{
+					item.setItemProductPrice(cartDto.getProductDiscount());
+				}
+
 				item.setItemColorId(cartDto.getCartColorId());
 				list.add(item);
 

+ 14 - 2
tooth-wechat-web/src/main/java/com/iamberry/wechat/utils/StitchAttrUtil.java

@@ -32,8 +32,6 @@ public class StitchAttrUtil {
      */
     private final String noProperty[] = {
             "serialVersionUID",
-            "awaitingSignclosedProductInfoList",
-            "signclosedProductInfoList",
             "page"
     };
 
@@ -123,6 +121,20 @@ public class StitchAttrUtil {
     }
 
     /**
+     * 判断是否还有下一页
+     * @param pagedResult
+     * @return
+     */
+    public boolean getLastPage( PagedResult<?> pagedResult){
+        /* 当前页 >= 总页面数目 */
+        if(pagedResult.getPageNO() >=  pagedResult.getPages()){
+            return false;
+        }else{
+            return true;
+        }
+    }
+
+    /**
      * 添加组装时被过滤的属性名称
      * @param pros
      */