FundBiz.java 4.99 KB
package com.cjs.cms.biz.user;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

import com.cjs.cms.dao.ration.RationNewFundDao;
import com.cjs.cms.model.ration.RationNewFundInfo;
import com.cjs.cms.util.lang.DateEnum;
import com.cjs.cms.util.lang.DateUtil;
import com.cjs.cms.util.lang.JsonUtil;
import com.cjs.cms.util.t2.T2Result;
import com.cjs.cms.util.t2.T2Util;

/**
 * 用户资金管理
 * 
 * @author tongyufu
 *
 */
@Service
public class FundBiz {

    Logger                   log = LogManager.getLogger(FundBiz.class);
    @Autowired
    private RationNewFundDao rationNewFundDao;

    /**
     * 解冻用户资金
     * @param fundAccount 会员号
     * @param serialNo 冻结资金流水号
     * @param freezeDate 冻结日期
     * @return
     */
    public T2Result unfreezeFund(String businessId, String businessType, String fundAccount,
                                 String serialNo, Date freezeDate) {
        Assert.notNull("会员号不能为空", fundAccount);
        Assert.notNull("冻结资金流水号不能为空", serialNo);
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("op_branch_no", "11"); //操作分支机构
        params.put("operator_no", "2001"); //操作员
        params.put("user_type", "1");
        params.put("op_password", "");
        params.put("op_station", ""); //站点地址
        params.put("op_entrust_way", "7"); //申请方式(7:网络)
        params.put("menu_id", "200502");
        params.put("function_id", "201033");
        params.put("branch_no", "11"); //分支机构
        params.put("audit_action", "0");
        params.put("action_in", "0");
        params.put("fund_account", fundAccount);
        params.put("serial_no", serialNo);
        params.put("jour_date", DateUtil.parseDate(freezeDate, DateEnum.UNSIGNED_DATE));
        params.put("join_info", "");
        params.put("remark", "");
        T2Result result = null;
        try {
            result = T2Util.request(params, "201033");
        } finally {
            RationNewFundInfo fund = new RationNewFundInfo();
            fund.setBusinessId(businessId);
            fund.setBusinessType(businessType);
            fund.setUserId(fundAccount);
            fund.setFund(0d);
            fund.setFundType("addbank");
            if (result == null || result.getCode() != 0) {
                fund.setFundStatus("0");
            } else {
                fund.setFundStatus("1");
            }
            fund.setRemark("");
            fund.setServiceId("201033");
            fund.setRequest(JsonUtil.toJson(params));
            fund.setResponse(JsonUtil.toJson(result));
            fund.setCreateBy(" ");
            rationNewFundDao.save(fund);
        }
        log.info("解冻用户资金:" + result);
        return result;
    }

    /**
     * 查询用户冻结资金记录
     * 
     * @param fundAccount 会员号
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return
     * <pre>
     * serial_no 流水号
     * init_date 发生日期
     * client_id 会员号
     * fund_account 会员号
     * curr_date 发生日期
     * curr_time 发生时间
     * occur_balance 冻结金额
     * post_balance 后置资金
     * treat_status 冻结状态(0:资金冻结;1:冻结取消)
     * valid_date 截止日期
     * frozen_status 冻结原因(0:普通冻结)
     * remark 备注
     * </pre>
     */
    public T2Result freezeRecord(String fundAccount, Date startDate, Date endDate) {
        Assert.notNull("会员号不能为空", fundAccount);
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("op_branch_no", "11"); //操作分支机构
        params.put("operator_no", "2001"); //操作员
        params.put("user_type", "1");
        params.put("op_password", "");
        params.put("op_station", ""); //站点地址
        params.put("op_entrust_way", "7"); //申请方式(7:网络)
        params.put("menu_id", "200502");
        params.put("function_id", "201037");
        params.put("branch_no", "11"); //分支机构
        params.put("audit_action", "0");
        params.put("action_in", "0");
        params.put("fund_account", fundAccount);
        params.put("start_date", DateUtil.parseDate(startDate, DateEnum.UNSIGNED_DATE));
        params.put("end_date", DateUtil.parseDate(endDate, DateEnum.UNSIGNED_DATE));
        params.put("serial_no", "0");
        params.put("en_business_flag", "2301");
        params.put("en_money_type", "0");
        params.put("en_operator_no", "2001");
        params.put("position_str", "");
        params.put("request_num", "0");
        T2Result result = T2Util.request(params, "201037");
        log.info("查询用户冻结资金记录:" + result);
        return result;
    }

}