package com.yeshi.fanli.controller.client.v1; import java.io.PrintWriter; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.yeshi.utils.IPUtil; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.NumberUtil; import com.google.gson.Gson; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.LostOrder; import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.order.LostOrderService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.Utils; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * 动态 * * @author Administrator * */ @Controller @RequestMapping("api/v1/lostOrder") public class LostOrderController { @Resource private LostOrderService lostOrderService; @Resource private ConfigService configService; /** * 获取动态推荐 * * @param acceptData * @param page * -页码 * @param out */ @RequestMapping(value = "getLostOrderList", method = RequestMethod.POST) public void getLostOrderList(AcceptData acceptData, Long uid, Integer page, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } if (page == null || page <= 0) { out.print(JsonUtil.loadFalseResult(1, "page格式错误")); return; } if (page < 1) { out.print(JsonUtil.loadFalseResult(2, "页码必须大于0")); return; } long count = lostOrderService.getLostOrderCountByUid(uid); List list = lostOrderService.getLostOrderListByUid(uid, page, Constant.PAGE_SIZE); JSONArray data = new JSONArray(); Gson gson = new Gson(); if (list != null) for (LostOrder order : list) { order.setOrder(null); order.setUserInfo(null); JSONObject json = JSONObject.fromObject(gson.toJson(order)); json.remove("resultCode"); json.remove("remake"); json.remove("judge"); json.put("createTime", TimeUtil.getGernalTime(order.getCreateTime(), "yyyy.MM.dd HH:mm")); if (order.getState() == 1 && order.getResultCode() != null && order.getResultCode() == LostOrder.RESULT_CODE_SUCCESS) { // 申诉成功 json.put("state", 1); json.put("stateDesc", "订单找回成功,请到我的-订单中查看"); } else if (order.getState() == 2 || (order.getState() == 1 && order.getResultCode() != null && order.getResultCode() == LostOrder.RESULT_CODE_FAIL)) { // 申诉失败 json.put("state", 2); json.put("stateDesc", "订单找回失败"); } else { // 处理中 json.put("state", 0); json.put("stateDesc", "订单找回中"); } data.add(json); } JSONObject root = new JSONObject(); root.put("data", data); root.put("count", count); out.print(JsonUtil.loadTrueResult(root)); } @RequestMapping(value = "deleteLostOrder", method = RequestMethod.POST) public void deleteLostOrder(AcceptData acceptData, Long uid, Long id, PrintWriter out) { if (id == null || id <= 0) { out.print(JsonUtil.loadFalseResult(1, "请选择删除项")); return; } if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } LostOrder lostOrder = lostOrderService.getOne(id); if (lostOrder != null && lostOrder.getUserInfo().getId() == uid.longValue()) { lostOrderService.deleteLostOrder(id); out.print(JsonUtil.loadTrueResult("")); } else { out.print(JsonUtil.loadFalseResult(1, "删除失败")); } } @RequestMapping(value = "deleteAllLostOrder", method = RequestMethod.POST) public void deleteAllLostOrder(AcceptData acceptData, Long uid, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } lostOrderService.deleteLostOrderByUid(uid); out.print(JsonUtil.loadTrueResult("")); } @RequestMapping("findLostOrder") public void findLostOrder(AcceptData acceptData, LostOrder lostOrder, HttpServletRequest request, PrintWriter out) { Integer type = lostOrder.getType(); if (type == null) { type = Constant.SOURCE_TYPE_TAOBAO; } boolean orderNum = true; String orderId = lostOrder.getOrderId(); if (type == Constant.SOURCE_TYPE_TAOBAO) { if (!NumberUtil.isNumeric(orderId) || (orderId.length() < 12 || orderId.length() > 20)) { orderNum = false; } else { orderNum = Utils.isOrderNum(orderId); } } else if (type == Constant.SOURCE_TYPE_JD) { if (!NumberUtil.isNumeric(orderId) || (orderId.length() < 6 || orderId.length() > 20)) { orderNum = false; } } else if (type == Constant.SOURCE_TYPE_PDD) { if (!orderId.contains("-")) { orderNum = false; } else { String[] split = orderId.split("-"); if (split == null || split.length != 2) { orderNum = false; } else { if (!NumberUtil.isNumeric(split[0]) || !NumberUtil.isNumeric(split[1])) { orderNum = false; } } } } if (lostOrder.getUserInfo() == null || lostOrder.getUserInfo().getId() == null || lostOrder.getUserInfo().getId() <= 0) { out.print(JsonUtil.loadFalseResult(1, String.format("请登录%s账号", Constant.getAppName(acceptData.getPlatform(), acceptData.getVersion())))); return; } lostOrder.setIpInfo(IPUtil.getRemotIP(request) + ":" + request.getRemotePort()); int state; String stateInfo = "提交成功,请等待审核结果"; if (!orderNum) { state = -4; stateInfo = "请提交准确的订单号"; } else { lostOrder.setResultCode(LostOrder.RESULT_CODE_VERFING); state = lostOrderService.addLostOrder(lostOrder); if (state == -3) { stateInfo = "该订单已被统计,无需申诉"; } else if (state == -2) { stateInfo = "请勿重复提交,该订单正在审核中"; } else if (state == -1) { stateInfo = "该订单申诉已通过,请在订单列表中查看"; } else if (state == -5) { stateInfo = "分享奖金订单无需申诉"; } else if (state == -6) { stateInfo = "该订单申诉已失败,请在订单列表中查看"; } else if (state == -7) { stateInfo = "今日申诉次数已达上限"; } else if (state == -1001) { stateInfo = "订单违规"; } } JSONObject data = new JSONObject(); data.put("state", state); data.put("info", stateInfo); out.print(JsonUtil.loadTrueResult(data)); } @RequestMapping("getConfig") public void getConfig(AcceptData acceptData, PrintWriter out) { JSONObject data = new JSONObject(); data.put("what", configService.get(ConfigKeyEnum.lostOrderHelpWhat.getKey())); data.put("reason", configService.get(ConfigKeyEnum.lostOrderHelpReason.getKey())); out.print(JsonUtil.loadTrueResult(data)); } }