wangxiaoming 6 tahun lalu
induk
melakukan
41936959ac

+ 7 - 1
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/order/Order.java

@@ -4,8 +4,10 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.iamberry.wechat.core.entity.PageBean;
 import com.iamberry.wechat.core.entity.order.OrderItem;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * 销售订单表 实体类
@@ -60,8 +62,10 @@ public class Order implements java.io.Serializable{
 	private List<OrderItem> orderItemList = new ArrayList<OrderItem>();	//订单项实体类
 	private List<OrderOperation> operations;	//订单操作工具类
 	private String orderLinkStatus;			//订单状态描述
-	
+
+	@DateTimeFormat(pattern="yyyy-MM-dd")
 	private Date beginDate;	//开始时间
+	@DateTimeFormat(pattern="yyyy-MM-dd")
 	private Date endDate;		//结束时间
 	private Integer selectDateType; 		//按照什么时间查询   订单修改时间=1,订单创建时间=2
 
@@ -470,4 +474,6 @@ public class Order implements java.io.Serializable{
 	public void setSalesChannelName(String salesChannelName) {
 		this.salesChannelName = salesChannelName;
 	}
+
+
 }

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

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

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

@@ -229,5 +229,5 @@ public interface AdminOrderMapper {
 	 * @param orderId
 	 * @return
 	 */
-	Order getPaySuccessOrderByOrderId(String orderId);
+	List<Order> getPaySuccessOrderByOrderId(Order order);
 }

+ 26 - 7
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/adminOrderMapper.xml

@@ -990,7 +990,7 @@
 
 
 	<!-- 根据orderId查询订单信息 -->
-	<select id="getPaySuccessOrderByOrderId" parameterType="String" resultType="Order">
+	<select id="getPaySuccessOrderByOrderId" parameterType="Order" 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,
@@ -1003,12 +1003,31 @@
 		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)
+		<where>
+			O.sales_status IN (2,5,9,10,11,12)
+			<if test="salesStatus != null and salesStatus != -1">
+				AND O.SALES_STATUS = #{salesStatus}
+			</if>
+			<if test="salesOrderid != null and salesOrderid!=''">
+				AND O.SALES_ORDERID LIKE CONCAT('%',#{salesOrderid},'%')
+			</if>
+			<if test="salesAddressName != null and salesAddressName != ''">
+				AND O.SALES_ADDRESS_NAME LIKE CONCAT('%',#{salesAddressName},'%')
+			</if>
+			<if test="salesAddressTel != null and salesAddressTel != ''">
+				AND O.SALES_ADDRESS_TEL LIKE CONCAT('%',#{salesAddressTel},'%')
+			</if>
+			<if test="salesAddressInfo != null and salesAddressInfo != ''">
+				AND O.SALES_ADDRESS_INFO LIKE CONCAT('%',#{salesAddressInfo},'%')
+			</if>
+			<if test="beginDate != null">
+				<![CDATA[AND DATE_FORMAT(O.SALES_CREATE_DATE, '%Y-%m-%d') >= ]]>DATE_FORMAT(#{beginDate},'%Y-%m-%d')
+			</if>
+			<if test="endDate != null">
+				<![CDATA[AND DATE_FORMAT(O.SALES_CREATE_DATE, '%Y-%m-%d') <= ]]>DATE_FORMAT(#{endDate},'%Y-%m-%d')
+			</if>
+		</where>
+		ORDER BY O.SALES_CREATE_DATE DESC
 	</select>
 
 

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

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

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

@@ -246,5 +246,5 @@ public interface AdminOrderDao {
 	 * @param orderId
 	 * @return
 	 */
-	Order getPaySuccessOrderByOrderId(String orderId);
+	List<Order> getPaySuccessOrderByOrderId(Order order);
 }

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

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

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

@@ -1200,4 +1200,114 @@ public class AdminOrderHandlers {
         return mv;
     }
 
+    /**
+     * 下载导出订单
+     */
+    @ResponseBody
+    @RequestMapping(value = "/download_order2")
+    public ModelAndView downloadOrder2(HttpServletRequest request,Order order){
+        List<Order> orderList = adminOrderService.getPaySuccessOrderByOrderId(order);
+        for (Order or: orderList) {
+            List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(or.getSalesOrderid());
+            or.setOrderItemList(orderItemList);
+        }
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        // 准备model
+        Map<String, Object> model = new HashMap<String, Object>();
+        model.put("fileName", "上朵销售数据");	// 下载文件名称
+        // 标题
+        List<String> titles = new ArrayList<String>();
+        titles.add("订单编号");
+        titles.add("日期");
+        titles.add("姓名");
+        titles.add("电话号码");
+        titles.add("地址");
+        titles.add("产品");
+        titles.add("颜色");
+        titles.add("数量");
+        titles.add("支付金额");
+        titles.add("订单状态");
+        titles.add("快递单号");
+        titles.add("物流公司");
+        model.put("titles", titles);
+        List<List<Object>> countexts = new ArrayList<List<Object>>();
+        for (Order info : orderList) {
+            Integer salesYetAmount = info.getSalesYetAmount();  //付款金额
+            for (int i=0; i<info.getOrderItemList().size(); i++) {
+                OrderItem item = info.getOrderItemList().get(i);
+                List<Object> row = new ArrayList<Object>();
+                row.add(info.getSalesOrderid() == null ? "":info.getSalesOrderid());
+                row.add(info.getSalesCreateDate() == null ? "":formatter.format(info.getSalesCreateDate()));
+                row.add(info.getSalesAddressName() == null ? "":info.getSalesAddressName());
+                row.add(info.getSalesAddressTel() == null ? "":info.getSalesAddressTel());
+                row.add(info.getSalesAddressInfo() == null ? "":info.getSalesAddressInfo());
+                row.add(item.getItemProductName() == null ? "":item.getItemProductName());
+                row.add(item.getProductColor() == null ? "":item.getProductColor());
+                row.add(item.getItemNum() == null ? "":item.getItemNum());
+
+                if(salesYetAmount >= item.getItemTotal()){
+                    salesYetAmount = salesYetAmount - item.getItemTotal();
+                    row.add(item.getItemTotal()/100);  //订单金额
+                }else{
+                    row.add(salesYetAmount/100);  //订单金额
+                    salesYetAmount = 0;
+                }
+
+                String statusString = "";
+                switch (info.getSalesStatus()){
+                    case 0:
+                        statusString = "取消订单";
+                        break;
+                    case 1:
+                        statusString = "待支付";
+                        break;
+                    case 2:
+                        statusString = "已支付、待发货";
+                        break;
+                    case 3:
+                        statusString = "退款申请中";
+                        break;
+                    case 4:
+                        statusString = "已退款";
+                        break;
+                    case 5:
+                        statusString = "已发货";
+                        break;
+                    case 6:
+                        statusString = "申请退货中";
+                        break;
+                    case 7:
+                        statusString = "退货中";
+                        break;
+                    case 8:
+                        statusString = "订单退货";
+                        break;
+                    case 9:
+                        statusString = "换货中";
+                        break;
+                    case 10:
+                        statusString = "换货完成";
+                        break;
+                    case 11:
+                        statusString = "申请换货中";
+                        break;
+                    case 12:
+                        statusString = "订单完成";
+                        break;
+                }
+                row.add(statusString);  //订单状态
+                row.add(info.getSalesPostFirm() == null ? "":info.getSalesPostFirm());
+                row.add(info.getSalesPostNum() == null ? "":info.getSalesPostNum());
+                countexts.add(row);
+            }
+        }
+        model.put("varList", countexts);
+        ObjectExcelView erv = new ObjectExcelView();
+        ModelAndView mv = new ModelAndView(erv, model);
+        return mv;
+    }
+
+
+
 }

+ 7 - 0
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/order/orderList.jsp

@@ -209,6 +209,7 @@
 					<i class="Hui-iconfont">&#xe665;</i> 搜索
 				</button>
 				<button style="display: none" name="" id="" class="btn btn-danger" type="button" onclick="downloadExcel()">下载订单</button>
+				<button style="display: none" name="" id="" class="btn btn-danger" type="button" onclick="downloadExcel2()">下载订单2</button>
 			</form>
 		</div>
 		<div class="mt-20">
@@ -611,6 +612,12 @@
 				function downloadExcel(){
                     window.location=" <%=request.getContextPath()%>/admin/order/download_order";
 				}
+
+                function downloadExcel2(){
+				    var beginDate = $("#beginDate").val();
+				    var endDate = $("#endDate").val();
+                    window.location=" <%=request.getContextPath()%>/admin/order/download_order2?beginDate=2018-08-01&endDate=2018-08-31";
+                }
 				</script>
 </body>
 </html>