package com.yeshi.fanli.controller.admin;
|
|
import java.io.PrintWriter;
|
import java.math.BigDecimal;
|
import java.text.DateFormat;
|
import java.text.SimpleDateFormat;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.UUID;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
|
import net.sf.json.JSONObject;
|
|
import org.springframework.stereotype.Controller;
|
import org.springframework.util.Base64Utils;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.yeshi.fanli.entity.admin.ReslutOrder;
|
import com.yeshi.fanli.entity.bus.user.HongBao;
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
import com.yeshi.fanli.service.inter.count.TaoBaoOrderCountService;
|
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
|
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
|
import com.yeshi.fanli.service.inter.user.UserInfoService;
|
import com.yeshi.fanli.tag.PageEntity;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.RedisManager;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
|
import org.yeshi.utils.JsonUtil;
|
|
@Controller
|
@RequestMapping("admin/new/api/v1/taoBaoOrder")
|
public class TaoBaoOrderAdminController {
|
|
@Resource
|
private TaoBaoOrderService taoBaoOrderService;
|
|
@Resource
|
private TaoBaoOrderCountService taoBaoOrderCountService;
|
|
@Resource
|
private HongBaoService hongBaoService;
|
|
@Resource
|
private RedisManager redisManager;
|
@Resource
|
private UserInfoService userInfoService;
|
|
@RequestMapping(value = "queryJoinHongBao")
|
public void queryJoinHongBao(String callback, Integer pageIndex, Integer pageSize, String key, String startTime, String endTime, Integer type, Integer goodstype, Integer days, PrintWriter out) {
|
try {
|
|
if (pageSize == null)
|
pageSize = Constant.PAGE_SIZE;
|
|
if (pageIndex == null)
|
pageIndex = 1;
|
|
if (!StringUtil.isNullOrEmpty(endTime)) {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date enddate = sdf.parse(endTime);
|
Calendar c = Calendar.getInstance();
|
c.setTime(enddate);
|
c.add(Calendar.DAY_OF_MONTH, 1);// 今天+1天
|
endTime = sdf.format(c.getTime());
|
}
|
|
List<ReslutOrder> reslutOrders = taoBaoOrderService.queryJoinHongBao((pageIndex - 1) * pageSize, pageSize, key, startTime, endTime, type, days);
|
|
/* 暂无数据显示 返回消息 */
|
if (reslutOrders == null || reslutOrders.size() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
/* 验证网络: */
|
StringBuffer auctionIdBuf = new StringBuffer();
|
for (ReslutOrder reslutOrder : reslutOrders) {
|
Long auctionId = reslutOrder.getAuctionId();
|
if (auctionId != null) {
|
auctionIdBuf.append(auctionId + ",");
|
}
|
}
|
|
/* 验证网络: 获取商品链接 图片链接 */
|
List<TaoBaoGoodsBrief> goodsBriefList = null;
|
if (auctionIdBuf != null && auctionIdBuf.length() > 0) {
|
String auctionIds = auctionIdBuf.toString();
|
|
String ids = auctionIds.substring(0, auctionIds.length() - 1);
|
goodsBriefList = TaoKeApiUtil.getBatchGoodsInfos(ids);
|
}
|
|
for (ReslutOrder reslutOrder : reslutOrders) {
|
|
String orderId = reslutOrder.getOrderId();
|
BigDecimal payment = reslutOrder.getPayment();
|
|
String orderState = reslutOrder.getOrderState();
|
if ("订单结算".equals(orderState)) {
|
reslutOrder.setOrderStateAdmin("1");
|
} else if ("订单付款".equals(orderState)) {
|
reslutOrder.setOrderStateAdmin("2");
|
} else if ("订单失效".equals(orderState)) {
|
reslutOrder.setOrderStateAdmin("3");
|
}
|
|
/* 网上爬取商品 图片、链接 */
|
Long auctionId = reslutOrder.getAuctionId();
|
|
if (goodsBriefList != null && goodsBriefList.size() > 0) {
|
for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsBriefList) {
|
Long auctionIdTB = taoBaoGoodsBrief.getAuctionId();
|
if (auctionId.equals(auctionIdTB)) {
|
reslutOrder.setGoodsStae("0");// 在售
|
String auctionUrl = taoBaoGoodsBrief.getAuctionUrl();
|
String pictUrl = taoBaoGoodsBrief.getPictUrl();
|
String shopTitle = taoBaoGoodsBrief.getShopTitle();
|
reslutOrder.setShopTitle(shopTitle);
|
reslutOrder.setAuctionUrl(auctionUrl);
|
reslutOrder.setPictUrl(pictUrl);
|
}
|
}
|
} else {
|
reslutOrder.setGoodsStae("1");// 停售
|
}
|
|
String goodsStae = reslutOrder.getGoodsStae();
|
if (StringUtil.isNullOrEmpty(goodsStae)) {
|
reslutOrder.setGoodsStae("1");// 停售
|
}
|
|
UserInfo userInfo = reslutOrder.getUserInfo();
|
if (userInfo == null) {
|
userInfo = new UserInfo();
|
reslutOrder.setUserInfo(userInfo);
|
} else {
|
Long uid = userInfo.getId();
|
if (uid != null) {
|
UserInfo currtUser = userInfoService.selectByPKey(uid);
|
if (currtUser != null) {
|
reslutOrder.setUserInfo(currtUser);
|
}
|
}
|
}
|
|
/* 订单号为空 则不进行查询红包 */
|
if (StringUtil.isNullOrEmpty(orderId)) {
|
continue;
|
}
|
|
/* 根据订单号 + 付款金额 进行匹配红包 */
|
|
List<HongBao> listHB = hongBaoService.queryByOrderIDAndPayMoney(Long.parseLong(orderId), payment);
|
|
/* 无红包 */
|
if (listHB == null || listHB.size() == 0) {
|
Long uid = userInfo.getId();
|
if (uid != null) {
|
listHB = hongBaoService.queryByOrderIDAndUid(Long.parseLong(orderId), uid);
|
}
|
|
if (listHB == null || listHB.size() == 0) {
|
continue;
|
}
|
}
|
|
HongBao hongBao = listHB.get(0);
|
|
reslutOrder.setHongbaoId(hongBao.getId());
|
reslutOrder.setGetTime(hongBao.getGetTime());
|
reslutOrder.setMoney(hongBao.getMoney());
|
reslutOrder.setType(hongBao.getType());
|
// reslutOrder.setState(hongBao.getState());
|
reslutOrder.setCreatetime(hongBao.getCreatetime());
|
reslutOrder.setPreGettime(hongBao.getPreGettime());
|
|
/* 查询间接收益 红包id */
|
Long pid = reslutOrder.getHongbaoId();
|
|
if (pid != null) {
|
|
List<HongBao> childHongBaoList = hongBaoService.findChildHongBaoList(pid);
|
|
if (childHongBaoList != null && childHongBaoList.size() > 0) {
|
|
for (HongBao hb : childHongBaoList) {
|
|
BigDecimal money = hb.getMoney();
|
Integer childType = hb.getType();
|
Long uid = null;
|
String nickName = null;
|
|
UserInfo user = hb.getUserInfo();
|
if (user != null) {
|
uid = user.getId();
|
UserInfo cuent = userInfoService.getUserByIdWithMybatis(uid);
|
if (cuent != null)
|
nickName = cuent.getNickName();
|
}
|
|
if (childType != null) {
|
if (childType == HongBao.TYPE_YIJI || childType == HongBao.TYPE_SHARE_YIJI) {
|
// 一级
|
reslutOrder.setLevelOne(uid);
|
reslutOrder.setLevelOneMoney(money);
|
reslutOrder.setLevelOneName(nickName);
|
} else if (childType == HongBao.TYPE_ERJI || childType == HongBao.TYPE_SHARE_ERJI) {
|
reslutOrder.setLevelTwo(uid);
|
reslutOrder.setLevelTwoMoney(money);
|
reslutOrder.setLevelTwoName(nickName);
|
}
|
}
|
|
}
|
}
|
}
|
|
DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置格式
|
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
String createTime = reslutOrder.getCreateTime();
|
if (!StringUtil.isNullOrEmpty(createTime)) {
|
Date d = f.parse(createTime);
|
reslutOrder.setCreateTime(format.format(d));
|
}
|
|
String settlementTime = reslutOrder.getSettlementTime();
|
if (!StringUtil.isNullOrEmpty(settlementTime)) {
|
Date d = f.parse(settlementTime);
|
reslutOrder.setSettlementTime(format.format(d));
|
}
|
|
/* 到账状态 */
|
int state = hongBao.getState();
|
|
if (HongBao.STATE_YILINGQU == state) {
|
reslutOrder.setMoneyState("3"); // 已到账
|
} else if (HongBao.STATE_BUKELINGQU == state || HongBao.STATE_KELINGQU == state) {
|
reslutOrder.setMoneyState("2"); // 未到账
|
} else {
|
reslutOrder.setMoneyState("4"); // 已失效
|
}
|
|
String rebateSource = null;
|
Integer typeHongBao = reslutOrder.getType();
|
if (typeHongBao != null) {
|
|
if (typeHongBao == HongBao.TYPE_HUODONG || typeHongBao == HongBao.TYPE_XINREN) {
|
/* 3-活动红包 4-新人红包 */
|
rebateSource = "1";
|
|
} else if (typeHongBao == HongBao.TYPE_JINGDONG || typeHongBao == HongBao.TYPE_TAOBAO || typeHongBao == HongBao.TYPE_YAOQING) {
|
/* 自购订单 */
|
rebateSource = "2";
|
} else if (typeHongBao == HongBao.TYPE_YIJI || typeHongBao == HongBao.TYPE_ERJI || typeHongBao == HongBao.TYPE_SHARE_YIJI || typeHongBao == HongBao.TYPE_SHARE_ERJI) {
|
/* 邀请订单 分销红包对应的最上级红包 */
|
rebateSource = "3";
|
} else if (typeHongBao == HongBao.TYPE_SHARE_GOODS) {
|
/* 分享订单 */
|
rebateSource = "4";
|
}
|
reslutOrder.setRebateSource(rebateSource);
|
}
|
|
}
|
|
int count = taoBaoOrderService.countQueryJoinHongBao(key, startTime, endTime, type, days);
|
int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
|
PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
gsonBuilder.serializeNulls(); // 重点
|
Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
|
|
JSONObject data = new JSONObject();
|
data.put("pe", pe);
|
data.put("list", gson.toJson(reslutOrders));
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
}
|
}
|
|
@RequestMapping(value = "countByType")
|
public void countByType(String callback, HttpServletRequest request, PrintWriter out) {
|
|
try {
|
Map<String, Object> countByOdrerType = taoBaoOrderCountService.countByOdrerType();
|
|
JSONObject data = new JSONObject();
|
data.put("countType", countByOdrerType);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
// TODO Auto-generated catch block
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("统计失败"));
|
e.printStackTrace();
|
}
|
}
|
|
@RequestMapping(value = "countByDays")
|
public void countByDays(String callback, HttpServletRequest request, PrintWriter out) {
|
|
try {
|
// 统计今日 未失效订单数量 相同订单号合并为一单
|
int countToday = taoBaoOrderCountService.countToday();
|
// 统计昨日 未失效订单数量 相同订单号合并为一单
|
int countYesterday = taoBaoOrderCountService.countYesterday();
|
|
JSONObject data = new JSONObject();
|
data.put("countToday", countToday);
|
data.put("countYesterday", countYesterday);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
// TODO Auto-generated catch block
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("统计失败"));
|
e.printStackTrace();
|
}
|
}
|
|
|
}
|