UserChargeAction.java 5.24 KB
package com.cjs.site.action.user.fund;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cjs.site.biz.user.fund.UserChargeBiz;
import com.cjs.site.dao.user.account.ClientInfoDao;
import com.cjs.site.dao.user.fund.UserBankDao;
import com.cjs.site.dao.user.fund.UserChargeReportDao;
import com.cjs.site.model.user.fund.UserBankInfo;
import com.cjs.site.util.lang.JsonUtil;
import com.cjs.site.util.lang.StringUtil;
import com.cjs.site.util.web.ActionUtil;
import com.cjs.site.util.web.PageUtils;

/**
 * 汇款告知
 * 
 * @author tongyufu
 *
 */
@Controller
@RequestMapping("/user")
public class UserChargeAction {

    @Autowired
    private ClientInfoDao       clientInfoDao;
    @Autowired
    private UserChargeBiz       userChargeBiz;
    @Autowired
    private UserChargeReportDao userChargeReportDao;
    @Autowired
    private UserBankDao         userBankDao;

    /**汇款告知*/
    @RequestMapping(value = "charge", method = RequestMethod.GET)
    public String charge(@RequestParam Map<String, Object> params, Model model) {
        if (StringUtil.isBlank(params.get("_limit"))) {
            params.put("_limit", 10);
        }
        PageUtils.processPage(params);
        List<Map<String, Object>> returnList = userChargeBiz.queryOrderList(params);
        model.addAttribute("orders", returnList);
        Map<String, String> outmap = clientInfoDao.queryForPnr(ActionUtil.getUser().getClient_id());
        outmap.put("BANK_ACCOUNT", StringUtil.replace(4, 4, outmap.get("BANK_ACCOUNT"), "*"));
        model.addAttribute("userInfo", outmap);
        List<UserBankInfo> list = userBankDao.queryByUserId(ActionUtil.getUser().getClient_id());
        for (UserBankInfo userBankInfo : list) {
            userBankInfo.setBankCardNo(StringUtil.replace(4, 4, userBankInfo.getBankCardNo(), "*"));
        }
        model.addAttribute("bankList", list);
        int randomNum = (int) (Math.random() * 100);
        model.addAttribute("randomStr", StringUtil.lpad(2, randomNum + ""));

        params.put("_total",
            userChargeReportDao.searchTotalByUserId(ActionUtil.getUser().getClient_id()));
        model.addAttribute("params", params);
        return "user/fund/charge.jsp";
    }

    /**
     * 新增汇款告知
     * @param params
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "charge", method = RequestMethod.POST)
    public Map<String, Object> charge(@RequestParam("amount") Double amount,
                                      @RequestParam("bankNo") String bankNo) {
        return userChargeBiz.charge(amount, bankNo);
    }

    /**
     * 查询汇款告知
     * @param params
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "charge/list", method = RequestMethod.GET)
    public String queryUserChargeList(@RequestParam Map<String, Object> params) {
        return JsonUtil.toJson(userChargeBiz.search(params));
    }

    /**
     * 根据id查询汇款信息
     * @param id
     * @return
     */
    @ResponseBody
    @RequestMapping("charge/{id}")
    public Map<String, Object> queryReportById(@PathVariable("id") Integer id) {
        return userChargeBiz.queryReportById(id);
    }

    /**
     * 删除汇款告知
     * @param id
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "charge/cancel", method = RequestMethod.POST)
    public String chargeDelete(Integer id) {
        return userChargeBiz.chargeDelete(id);
    }

    /**
     * 绑定充值银行卡
     * @param params
     * @param session
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "charge/bank", method = RequestMethod.POST)
    public String bindBankCard(@RequestParam Map<String, Object> params, HttpSession session) {
        return JsonUtil.toJson("message", userChargeBiz.bindBankCard(params, session));
    }

    /**
     * 充值银行卡管理
     * @param model
     * @return
     */
    @RequestMapping(value = "bank/manage", method = RequestMethod.GET)
    public String bankCardManage(Model model) {
        Map<String, String> outmap = clientInfoDao.queryForPnr(ActionUtil.getUser().getClient_id());
        outmap.put("BANK_ACCOUNT", StringUtil.replace(4, 4, outmap.get("BANK_ACCOUNT"), "*"));
        model.addAttribute("userInfo", outmap);
        List<UserBankInfo> list = userBankDao.queryByUserId(ActionUtil.getUser().getClient_id());
        for (UserBankInfo userBankInfo : list) {
            userBankInfo.setBankCardNo(StringUtil.replace(4, 4, userBankInfo.getBankCardNo(), "*"));
        }
        model.addAttribute("bankList", list);
        return "user/fund/bankCardManage.jsp";
    }

    /**
     * 删除充值银行卡
     * @param id
     * @return
     */
    @ResponseBody
    @RequestMapping("bank/delete")
    public String deteleCard(int id) {
        return userChargeBiz.deleteBankCard(id);
    }
}