admin
2024-01-23 81da61b828e29b7745e1382dfbbaeb685dc083ef
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/LostOrderController.java
@@ -1,192 +1,227 @@
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.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<LostOrder> 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) {
      boolean orderNum = true;
      if (!NumberUtil.isNumeric(lostOrder.getOrderId())) {
         orderNum = false;
      } else if (lostOrder.getOrderId().length() < 12 || lostOrder.getOrderId().length() > 20) {
         orderNum = false;
      } else
         orderNum = Utils.isOrderNum(lostOrder.getOrderId());
      if (lostOrder.getUserInfo() == null || lostOrder.getUserInfo().getId() == null
            || lostOrder.getUserInfo().getId() <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "请登录返利券账号"));
         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 = "今日申诉次数已达上限";
         }
      }
      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("lost_order_help_what"));
      data.put("reason", configService.get("lost_order_help_reason"));
      out.print(JsonUtil.loadTrueResult(data));
   }
}
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 org.yeshi.utils.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<LostOrder> 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;
               }
            }
         }
      } else if (type == Constant.SOURCE_TYPE_VIP) {
         if (!NumberUtil.isNumeric(orderId) || (orderId.length() < 10 || orderId.length() > 18)) {
            orderNum = false;
         }
      } else if (type == Constant.SOURCE_TYPE_SUNING) {
         if (!NumberUtil.isNumeric(orderId) || (orderId.length() < 10 || orderId.length() > 15)) {
            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.getValue(ConfigKeyEnum.lostOrderHelpWhat.getKey(),acceptData.getSystem()));
      data.put("reason", configService.getValue(ConfigKeyEnum.lostOrderHelpReason.getKey(),acceptData.getSystem()));
      out.print(JsonUtil.loadTrueResult(data));
   }
}