/**
  * 获取评价列表 参数 userid 用户ID
  *
  * <p>返回值 true or false
  */
 public void getPjList() {
   Map<String, Object> resultMap = new HashMap<String, Object>();
   String uid = this.getPara("uid");
   String roleId = this.getPara("roleId");
   if (StringUtil.isNull(uid) || StringUtil.isNull(roleId)) {
     formatInvalidParamResponse(resultMap);
   } else {
     StringBuffer sb = new StringBuffer("select * from (select ");
     sb.append(" aa.id,aa.user_id,aa.mer_id,aa.order_id, aa.qdr_id, aa.datetime, ");
     sb.append(" aa.type,aa.content, aa.dync_mah, aa.dync_ser, aa.dync_spd, ");
     sb.append(" aa.dync_val, aa.private AS privates,");
     sb.append(" su.mc, am.mc mmc, ao.sn, aai.img_url from ");
     if (CommonStaticData.USER_TYPE_MERCHANT.equals(roleId)) { // 商家
       sb.append("(select * from ab_appraise where mer_id = '" + uid + "') aa ");
     } else if (CommonStaticData.USER_TYPE_SERVICE.equals(roleId)) { // 司机
       sb.append("(select * from ab_appraise where qdr_id = '" + uid + "') aa ");
     } else { // 用户
       sb.append("(select * from ab_appraise where user_id = '" + uid + "') aa ");
     }
     sb.append("left join sys_user su on aa.user_id = su.id ");
     sb.append("left join ab_merchant am on aa.mer_id = am.id ");
     sb.append("left join ab_order ao on aa.order_id = ao.id ");
     sb.append("LEFT JOIN ab_appraise_img aai ON aai.app_id = ao.id  ");
     sb.append(") t where 1=1 ");
     List<Record> apps = Db.find(sb.toString());
     resultMap.put("plList", apps);
     resultMap.put("result", RESULT_SUCCESS);
     resultMap.put("msg", "评价列表获取成功");
   }
   renderJson(resultMap);
 }
 /*用户,商户增加补充证据*/
 public void addcomplement() {
   Map<String, Object> resultMap = new HashMap<String, Object>();
   String userid = this.getPara("uid");
   String orderId = this.getPara("orderid");
   if (StringUtil.isNull(userid) || StringUtil.isNull(orderId)) {
     formatInvalidParamResponse(resultMap);
   } else {
     String cbid = this.getPara("cbid");
     String content = this.getPara("content");
     String img_url = this.getPara("apyimg");
     // 验证验证码
     // 验证content
     SysUser abuser = SysUser.dao.findById(userid);
     AbOrderChargebackItem aoci = new AbOrderChargebackItem();
     aoci.set(AbOrderChargebackItem.ID, StringUtil.getUuid32());
     aoci.set(AbOrderChargebackItem.CBID, cbid);
     aoci.set(AbOrderChargebackItem.UID, userid);
     if (CommonStaticData.USER_TYPE_MEMBER.equals(abuser.get(SysUser.ROLE_ID))) {
       aoci.set(AbOrderChargebackItem.TYPE, CommonStaticData.CB_APPLYTYPE_MEMBER);
     } else if (CommonStaticData.USER_TYPE_MERCHANT.equals(abuser.get(SysUser.ROLE_ID))) {
       aoci.set(AbOrderChargebackItem.TYPE, CommonStaticData.CB_APPLYTYPE_MERCHANT);
     } else if (CommonStaticData.USER_TYPE_SERVICE.equals(abuser.get(SysUser.ROLE_ID))) {
       aoci.set(AbOrderChargebackItem.TYPE, CommonStaticData.CB_APPLYTYPE_SERVICE);
     }
     aoci.set(AbOrderChargebackItem.CONTENT, content);
     aoci.set(AbOrderChargebackItem.DATETIME, DateUtil.getCurrentDate());
     if (img_url != null) {
       FileInputStream file = null;
       try {
         file = new FileInputStream(PathKit.getWebRootPath() + "\\upload\\" + img_url);
       } catch (FileNotFoundException e) {
         e.printStackTrace();
       }
       aoci.set(AbOrderChargebackItem.IMG_URL, img_url);
       aoci.set(AbOrderChargebackItem.IMAGE, file);
     }
     aoci.save();
     resultMap.put("result", RESULT_SUCCESS);
     resultMap.put("msg", "维权成功,请耐心等待调解结果");
   }
   renderJson(resultMap);
 }
  /** 申请退单 */
  public void addchargeback() {
    SysUser abuser = this.getSessionAttr("abuser");
    if (abuser == null || abuser.get("id") == null) {
      redirect("/ab/login");
    } else {
      String inputRandomCode = this.getPara("backCaptchaCode");
      String orderId = this.getPara("orderid");
      String content = this.getPara("applyBackContent");
      String img_url = this.getPara("apyimg");
      Object objMd5RandomCode = this.getSessionAttr(CaptchaRender.DEFAULT_CAPTCHA_MD5_CODE_KEY);
      // 验证验证码
      if (!CaptchaRender.validate(objMd5RandomCode.toString(), inputRandomCode)) {
        this.renderJson("1");
      }
      // 验证content
      else if (StringUtil.isNull(content) || content.length() > 100) {
        this.renderJson("2");
      }
      // 判断是否已经申请退单
      else if (AbOrderChargeback.dao.findFirst(
              "select * from ab_order_chargeback where order_id = '" + orderId + "'")
          != null) {
        this.renderJson("3");
      }
      // 插入退单记录
      else {
        abuser = SysUser.dao.findById(abuser.get("id"));
        AbOrder order = AbOrder.dao.findById(orderId);
        AbOrderChargeback cb = new AbOrderChargeback();
        cb.set(AbOrderChargeback.ID, StringUtil.getUuid32());
        cb.set(AbOrderChargeback.MER_ID, order.getStr(AbOrder.MID));
        cb.set(AbOrderChargeback.XDR_ID, order.getStr(AbOrder.XDRID));
        cb.set(AbOrderChargeback.QDR_ID, order.getStr(AbOrder.QDRID));
        cb.set(AbOrderChargeback.ORDER_ID, orderId);
        cb.set(AbOrderChargeback.APPLY_ID, abuser.get(SysUser.ID));
        cb.set(AbOrderChargeback.APPLY_DESC, content);
        cb.set(AbOrderChargeback.APPLY_TIME, DateUtil.getCurrentDate());
        cb.set(AbOrderChargeback.STATUS, CommonStaticData.CB_STATUS1);
        //				申请人类型 1 用户 2商户 3业务员
        if (CommonStaticData.USER_TYPE_MEMBER.equals(abuser.get(SysUser.ROLE_ID))) {
          cb.set(AbOrderChargeback.CB_STATUS, CommonStaticData.CB_TYPE1);
          cb.set(AbOrderChargeback.APPLY_TYPE, CommonStaticData.CB_APPLYTYPE_MEMBER);
        } else if (CommonStaticData.USER_TYPE_MERCHANT.equals(abuser.get(SysUser.ROLE_ID))) {
          cb.set(AbOrderChargeback.CB_STATUS, CommonStaticData.CB_TYPE2);
          cb.set(AbOrderChargeback.APPLY_TYPE, CommonStaticData.CB_APPLYTYPE_MERCHANT);
        } else if (CommonStaticData.USER_TYPE_SERVICE.equals(abuser.get(SysUser.ROLE_ID))) {
          cb.set(AbOrderChargeback.CB_STATUS, CommonStaticData.CB_TYPE8);
          cb.set(AbOrderChargeback.APPLY_TYPE, CommonStaticData.CB_APPLYTYPE_SERVICE);
        }
        if (!StringUtil.isNull(img_url)) {
          FileInputStream file = null;
          try {
            file = new FileInputStream(PathKit.getWebRootPath() + "\\upload\\" + img_url);
          } catch (FileNotFoundException e) {
            e.printStackTrace();
          }
          cb.set(AbOrderChargeback.APPLY_IMG_URL, img_url);
          cb.set(AbOrderChargeback.APPLY_IMG, file);
        }
        cb.save();

        String sn = order.getStr("sn");
        String userid = abuser.getStr("id");
        String roleid = abuser.getStr("role_id");
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str_date = df.format(new Date());
        Record record = new Record();
        record.set("id", StringUtil.getUuid32());
        record.set("user_id", userid);
        record.set("role_id", roleid);
        record.set("mes_title", "退单消息");
        record.set("mes_type", "0");
        record.set("isread", "0");
        record.set("text", "申请退单成功!订单号:" + sn);
        record.set("send_date", str_date);
        Db.save("message", record);

        this.renderJson("0");
      }
    }
  }
  /**
   * 用户申请退单 参数 userid 用户ID orderid 订单ID content 描述 apyimg 图片路径
   *
   * <p>返回值 true or false
   */
  public void addchargeback() {
    Map<String, Object> resultMap = new HashMap<String, Object>();
    String userid = this.getPara("uid");
    String orderId = this.getPara("orderid");
    String content = this.getPara("content");
    String img_url = this.getPara("apyimg");
    if (StringUtil.isNull(userid) || StringUtil.isNull(orderId) || StringUtil.isNull(content)) {
      formatInvalidParamResponse(resultMap);
    } else {
      // 插入退单记录
      SysUser abuser = SysUser.dao.findById(userid);
      AbOrder order = AbOrder.dao.findFirst("SELECT * FROM ab_order WHERE sn='" + orderId + "' ");
      if (order == null) {
        order = AbOrder.dao.findFirst("SELECT * FROM ab_order WHERE id='" + orderId + "' ");
      }
      if (null == abuser || null == order) {
        resultMap.put("result", RESULT_FAIL);
        resultMap.put("msg", "数据异常,请稍后重试!");

      } else {
        AbOrderChargeback cb = null;
        cb =
            AbOrderChargeback.dao.findFirst(
                "select * from ab_order_chargeback where order_id = '" + orderId + "'");
        boolean flag = false;
        if (cb == null) {
          cb = new AbOrderChargeback();
          cb.set(AbOrderChargeback.ID, StringUtil.getUuid32());
          flag = true;
        }

        cb.set(AbOrderChargeback.ID, StringUtil.getUuid32());
        cb.set(AbOrderChargeback.MER_ID, order.getStr(AbOrder.MID));
        cb.set(AbOrderChargeback.XDR_ID, order.getStr(AbOrder.XDRID));
        cb.set(AbOrderChargeback.QDR_ID, order.getStr(AbOrder.QDRID));
        cb.set(AbOrderChargeback.ORDER_ID, orderId);
        cb.set(AbOrderChargeback.APPLY_ID, abuser.get(SysUser.ID));
        cb.set(AbOrderChargeback.APPLY_DESC, content);
        cb.set(AbOrderChargeback.APPLY_TIME, DateUtil.getCurrentDate());
        cb.set(AbOrderChargeback.STATUS, CommonStaticData.CB_STATUS1);
        // 申请人类型 1 用户 2商户 3业务员
        if (CommonStaticData.USER_TYPE_MEMBER.equals(abuser.get(SysUser.ROLE_ID))) {
          cb.set(AbOrderChargeback.CB_STATUS, CommonStaticData.CB_TYPE1);
          cb.set(AbOrderChargeback.APPLY_TYPE, CommonStaticData.CB_APPLYTYPE_MEMBER);
        } else if (CommonStaticData.USER_TYPE_MERCHANT.equals(abuser.get(SysUser.ROLE_ID))) {
          cb.set(AbOrderChargeback.CB_STATUS, CommonStaticData.CB_TYPE2);
          cb.set(AbOrderChargeback.APPLY_TYPE, CommonStaticData.CB_APPLYTYPE_MERCHANT);
        } else if (CommonStaticData.USER_TYPE_SERVICE.equals(abuser.get(SysUser.ROLE_ID))) {
          cb.set(AbOrderChargeback.CB_STATUS, CommonStaticData.CB_TYPE8);
          cb.set(AbOrderChargeback.APPLY_TYPE, CommonStaticData.CB_APPLYTYPE_SERVICE);
        }
        if (!StringUtil.isNull(img_url)) {
          FileInputStream file = null;
          try {
            file = new FileInputStream(PathKit.getWebRootPath() + "\\upload\\" + img_url);
          } catch (FileNotFoundException e) {
            e.printStackTrace();
          }
          cb.set(AbOrderChargeback.APPLY_IMG_URL, img_url);
          cb.set(AbOrderChargeback.APPLY_IMG, file);
        }
        if (flag) {
          cb.update();
        } else {
          cb.save();
        }
        resultMap.put("result", RESULT_SUCCESS);
        resultMap.put("msg", "维权成功,请耐心等待调解结果");
      }
    }
    renderJson(resultMap);
  }
  /*用户,商户增加补充证据*/
  public void addcomplement() {
    SysUser abuser = this.getSessionAttr("abuser");
    if (abuser == null || abuser.get("id") == null) {
      redirect("/ab/login");
    } else {
      String cbid = this.getPara("cbid");
      String inputRandomCode = this.getPara("comCaptchaCode");
      String content = this.getPara("comContent");
      String img_url = this.getPara("apyimg");
      Object objMd5RandomCode = this.getSessionAttr(CaptchaRender.DEFAULT_CAPTCHA_MD5_CODE_KEY);
      // 验证验证码
      if (!CaptchaRender.validate(objMd5RandomCode.toString(), inputRandomCode)) {
        this.renderJson("1");
      }
      // 验证content
      else if (StringUtil.isNull(content) || content.length() > 100) {
        this.renderJson("2");
      } // 插入退单补充记录
      else {
        abuser = SysUser.dao.findById(abuser.get("id"));
        AbOrderChargebackItem aoci = new AbOrderChargebackItem();
        aoci.set(AbOrderChargebackItem.ID, StringUtil.getUuid32());
        aoci.set(AbOrderChargebackItem.CBID, cbid);
        aoci.set(AbOrderChargebackItem.UID, abuser.getStr(SysUser.ID));
        if (CommonStaticData.USER_TYPE_MEMBER.equals(abuser.get(SysUser.ROLE_ID))) {
          aoci.set(AbOrderChargebackItem.TYPE, CommonStaticData.CB_APPLYTYPE_MEMBER);
        } else if (CommonStaticData.USER_TYPE_MERCHANT.equals(abuser.get(SysUser.ROLE_ID))) {
          aoci.set(AbOrderChargebackItem.TYPE, CommonStaticData.CB_APPLYTYPE_MERCHANT);
        } else if (CommonStaticData.USER_TYPE_SERVICE.equals(abuser.get(SysUser.ROLE_ID))) {
          aoci.set(AbOrderChargebackItem.TYPE, CommonStaticData.CB_APPLYTYPE_SERVICE);
        }
        aoci.set(AbOrderChargebackItem.CONTENT, content);
        aoci.set(AbOrderChargebackItem.DATETIME, DateUtil.getCurrentDate());
        if (img_url != null) {
          FileInputStream file = null;
          try {
            file = new FileInputStream(PathKit.getWebRootPath() + "\\upload\\" + img_url);
          } catch (FileNotFoundException e) {
            e.printStackTrace();
          }
          aoci.set(AbOrderChargebackItem.IMG_URL, img_url);
          aoci.set(AbOrderChargebackItem.IMAGE, file);
        }
        aoci.save();

        String userid = abuser.getStr("id");
        String roleid = abuser.getStr("role_id");
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str_date = df.format(new Date());
        Record record = new Record();
        record.set("id", StringUtil.getUuid32());
        record.set("user_id", userid);
        record.set("role_id", roleid);
        record.set("mes_title", "退单消息");
        record.set("mes_type", "0");
        record.set("isread", "0");
        record.set("text", "证据已补充!");
        record.set("send_date", str_date);
        Db.save("message", record);

        this.renderJson("0");
      }
    }
  }