|
@@ -4,13 +4,13 @@ import java.io.IOException;
|
|
|
import java.net.URLDecoder;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import com.iamberry.wechat.core.entity.OrderUtil;
|
|
|
+import com.iamberry.wechat.tools.*;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
@@ -38,10 +38,6 @@ import com.iamberry.wechat.face.reback.RebackServices;
|
|
|
import com.iamberry.wechat.face.relationship.DealerRelationService;
|
|
|
import com.iamberry.wechat.face.relationship.WdRelationService;
|
|
|
import com.iamberry.wechat.handles.mq.MQServiceProxy;
|
|
|
-import com.iamberry.wechat.tools.DateTimeUtil;
|
|
|
-import com.iamberry.wechat.tools.NameUtils;
|
|
|
-import com.iamberry.wechat.tools.ResultInfo;
|
|
|
-import com.iamberry.wechat.tools.SendMessageUtil;
|
|
|
|
|
|
@Controller
|
|
|
@RequestMapping("/admin/order")
|
|
@@ -818,4 +814,150 @@ public class AdminOrderHandlers {
|
|
|
return "{\"status\":\"false\",\"info\":\"备注失败,请稍后重试!\"}";
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 下载导出订单
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping(value = "/download_order")
|
|
|
+ public ModelAndView downloadOrder(HttpServletRequest request,Order order){
|
|
|
+ List<Order> orderList = adminOrderService.getOrderListToExcel(order);
|
|
|
+
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ // 准备model
|
|
|
+ Map<String, Object> model = new HashMap<String, Object>();
|
|
|
+ model.put("fileName", "Aiberle销售订单"); // 下载文件名称
|
|
|
+ // 标题
|
|
|
+ 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("昵称");
|
|
|
+ titles.add("手机号码");
|
|
|
+ titles.add("地址");
|
|
|
+ model.put("titles", titles);
|
|
|
+ List<List<Object>> countexts = new ArrayList<List<Object>>();
|
|
|
+ for (Order info : orderList) {
|
|
|
+ Integer salesAmount = 0; //总金额
|
|
|
+ Integer salesYetAmount = info.getSalesYetAmount(); //总支付金额
|
|
|
+ for (int i=0; i<info.getOrderItemList().size(); i++) {
|
|
|
+ salesAmount += info.getOrderItemList().get(i).getItemNum()*info.getOrderItemList().get(i).getItemProductDiscount();
|
|
|
+ }
|
|
|
+ for (int j = 0; j < info.getOrderItemList().size() ; j++) {
|
|
|
+ OrderItem item = info.getOrderItemList().get(j);
|
|
|
+
|
|
|
+ List<Object> row = new ArrayList<Object>();
|
|
|
+ row.add(info.getSalesCreateDate() == null ? "":formatter.format(info.getSalesCreateDate()));
|
|
|
+ row.add(info.getSalesOrderid() == null ? "":info.getSalesOrderid());
|
|
|
+// row.add(item.getProductTypeName() == null ? "":item.getProductTypeName());
|
|
|
+ row.add(item.getItemProductName() == null ? "":item.getItemProductName());
|
|
|
+ row.add(item.getItemProductColor() == null ? "":item.getItemProductColor());
|
|
|
+ row.add(item.getItemNum() == null ? "":item.getItemNum());
|
|
|
+
|
|
|
+ if((j+1) >= info.getOrderItemList().size()){
|
|
|
+ Double dd = Double.valueOf(salesYetAmount);
|
|
|
+ row.add(dd/100); //订单金额
|
|
|
+ }else{
|
|
|
+ if(salesAmount > 0 ){
|
|
|
+ Double itemPay = Double.valueOf(info.getSalesYetAmount()) * (item.getItemNum()*item.getItemProductDiscount())/salesAmount;
|
|
|
+ Integer itemDiscount = itemPay.intValue();
|
|
|
+ Double dd = Double.valueOf(itemDiscount);
|
|
|
+ row.add(dd/100); //订单金额
|
|
|
+ salesYetAmount -= itemDiscount;
|
|
|
+ }else{
|
|
|
+ row.add(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); //订单状态
|
|
|
+ if(info.getCouponId() != null){
|
|
|
+ row.add("是");
|
|
|
+ }else{
|
|
|
+ row.add("否");
|
|
|
+ }
|
|
|
+ row.add(info.getSalesAddressName() == null ? "":info.getSalesAddressName());
|
|
|
+ try{
|
|
|
+ row.add(info.getUserNickname() == null ? "":java.net.URLDecoder.decode(info.getUserNickname(), "UTF-8"));
|
|
|
+ }catch (Exception e){
|
|
|
+ row.add("");
|
|
|
+ }
|
|
|
+ row.add(info.getSalesAddressTel() == null ? "":info.getSalesAddressTel());
|
|
|
+ row.add(info.getSalesAddressInfo() == null ? "":info.getSalesAddressInfo());
|
|
|
+ countexts.add(row);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ model.put("varList", countexts);
|
|
|
+
|
|
|
+ ObjectExcelView erv = new ObjectExcelView();
|
|
|
+ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String name = "";
|
|
|
+ if(order.getBeginDate() != null){
|
|
|
+ name += sd.format(order.getBeginDate());
|
|
|
+ }else{
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH,1);
|
|
|
+ name += sd.format(calendar.getTime());
|
|
|
+ }
|
|
|
+ name += "-";
|
|
|
+ if( order.getEndDate() != null){
|
|
|
+ name += sd.format(order.getEndDate());
|
|
|
+ }else{
|
|
|
+ name += sd.format(new Date());
|
|
|
+ }
|
|
|
+ erv.setName(name);
|
|
|
+ ModelAndView mv = new ModelAndView(erv, model);
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
}
|