- package com.qhyf.App.bl.controller;
- import club.newepoch.persistent.db.common.Db;
- import club.newepoch.persistent.db.exception.ActiveRecordException;
- import club.newepoch.utils.StringUtils;
- import java.util.ArrayList;
- import java.util.LinkedHashSet;
- import org.plutext.jaxb.xslfo.StartingStateType;
- import com.jfinal.core.ActionKey;
- import com.jfinal.core.action.REST;
- import com.jfinal.core.pojo.RestMethod;
- import com.MySQL.fabric.xmlrpc.base.Array;
- import com.qhyf.App.bl.base.controller.QhyfController;
- import.NET.sf.JSON.JSONArray;
- import.NET.sf.JSON.JSONObject;
- /**
- * 通知客服确认补出账号接口
- * @author lx
- */
- public class InterfaceAffirmAccountController extends QhyfController {
- @REST(method = RestMethod.POST)
- @ActionKey("/api/qhyf/confirm/account/")
- public void affirmAccount() throws ActiveRecordException {
- // 返回 JSON 数据
- JSONObject returnJson = new JSONObject();
- JSONArray data = new JSONArray();
- // 数据校验是否成功标识
- boolean checkFlag = true;
- // 存放错误信息
- StringBuffer errmsgSb = new StringBuffer();
- // 存放 errcode
- StringBuffer errcodeSb = new StringBuffer();
- try {
- // 获取付款确认书编号
- String payCode = this.getPara("pay_code");
- // 获取补出账原因
- String reason = this.getPara("reason");
- if (StringUtils.isBlank(reason)) {
- errmsgSb.append("补出账原因不能为空;");
- // 缺少参数
- errcodeSb.append("3001,;");
- // returnJson.put("errcode", errcodeSb.append("3001;"));
- checkFlag = false;
- }
- if (StringUtils.isBlank(payCode)) {
- errmsgSb.append("付款确认书编号不能为空;");
- // 缺少参数
- errcodeSb.append("3001,;");
- // returnJson.put("errcode", );
- checkFlag = false;
- }
- // 付款确认书编号不为空, 检测是否在 DB 中存在
- if (StringUtils.notBlank(payCode)) {
- String sql = "SELECT uuid from biz_pay_comfirm_info WHERE pay_id = ? and sys_status = 1";
- // 获取 uuid
- String uuid = Db.queryStr(sql, payCode);
- if (StringUtils.isBlank(uuid)) {
- // 如果 uuid 为空的话
- errmsgSb.append("付款确认书编号不存在;");
- // 缺少参数
- errcodeSb.append("4001");
- // returnJson.put("errcode", errcodeSb.append("4001"));
- checkFlag = false;
- }
- }
- // 存放错误码的变量 不为空时
- if (errcodeSb.length()> 0) {
- StringBuffer errcode = clearRepetition(errcodeSb);
- // 添加到返回的 JSON 数据中去
- returnJson.put("errcode", errcode.toString());
- }
- // 校验通过
- if (checkFlag) {
- // 业务逻辑
- returnJson.put("errcode", "0");
- returnJson.put("errmsg", "");
- } else {
- // 校验不通过
- returnJson.put("errmsg", errmsgSb.toString());
- }
- returnJson.put("data", data);
- } catch (Exception e) {
- // 异常处理
- returnJson.put("errcode", "9999");
- returnJson.put("errmsg", "内部服务处理异常!");
- returnJson.put("data", data);
- }
- // 返回结果
- this.renderJson(returnJson);
- }
- /**
- * 去掉重复的错误码
- * @param errcodeSb
- * @return
- */
- public StringBuffer clearRepetition(StringBuffer errcodeSb) {
- // 定义临时存放的 错误码的变量
- ArrayList<String> list = new ArrayList<String>();
- // StringBuffer 转 string 数组
- String[] strArray = errcodeSb.toString().split(";");
- // 遍历错误信息列表, 去除重复的 errcode
- for (String str : strArray) {
- // 把 错误信息 放入集合
- list.add(str);
- }
- // 去除 集合里面重复的 errcode
- LinkedHashSet<String> set = new LinkedHashSet<String>(list.size());
- set.addAll(list);
- list.clear();
- list.addAll(set);
- // list 集合 转 Object 数组
- Object[] errcodes = list.toArray();
- StringBuffer errcode = new StringBuffer();
- // 遍历 并放入 StringBuffer 中去
- for (Object er : errcodes) {
- errcode.append(er);
- }
- // 获取存放 errcode 里面的最后一个 字符
- String laString = errcode.toString().substring(errcode.toString().length() - 1);
- // 如果最后一个字符为 "," 的话 , 则移除
- if (",".equals(laString)) {
- errcode.deleteCharAt(errcode.length() - 1);
- }
- return errcode;
- }
- }
来源: http://www.bubuko.com/infodetail-3076875.html