QuotaEmptyAction.java 3.98 KB
package com.cjs.cms.action.quota;

import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.cjs.cms.biz.quota.QuotaPastBiz;
import com.cjs.cms.biz.report.ReportBiz;
import com.cjs.cms.dao.quota.OtcHolderDao;
import com.cjs.cms.dao.quota.QuotaPastDao;
import com.cjs.cms.dao.quota.QuotaUserDao;
import com.cjs.cms.model.quota.QuotaUserInfo;
import com.cjs.cms.model.user.UserInfo;
import com.cjs.cms.util.lang.JsonUtil;
import com.cjs.cms.util.lang.PageUtils;
import com.cjs.cms.util.lang.StringUtil;
import com.cjs.cms.util.web.ActionUtil;

/**
 * 
 * 清除过期额度和过期持仓
 * @author kongmingke
 *
 */
@RestController
@RequestMapping("/quota/empty")
public class QuotaEmptyAction {
    @Autowired
    private ReportBiz    reportBiz;
    @Autowired
    private QuotaUserDao quotaUserDao;
    @Autowired
    private QuotaPastBiz quotaPastBiz;
    @Autowired
    private QuotaPastDao quotaPastDao;
    @Autowired
    private OtcHolderDao otcHolderDao;

    /**
     * 查询过期额度 
     *  
     */
    @RequestMapping("/search")
    public String search(@RequestParam Map<String, Object> params) {

        if (StringUtil.isBlank(params.get("endTime"))) {
            params.put("endTime", null);
        }
        PageUtils.processPage(params);
        List<QuotaUserInfo> quota = quotaUserDao.search(params);
        for (QuotaUserInfo quotaUserInfo : quota) {
            String otcAccount = otcHolderDao.queryOtcAccount(quotaUserInfo.getUserId());
            quotaUserInfo.setOtcAccount(otcAccount);
        }
        return JsonUtil.toPageJson(quota, quotaUserDao.searchTotal(params));
    }

    /**
    * 清除过期额度
    */
    @RequestMapping("/emptyQuota")
    public void emptyQuota() {
        // 获取当前登录人信息
        UserInfo userInfo = (UserInfo) ActionUtil.getRequest().getSession()
            .getAttribute(UserInfo.USER);
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("updateBy", userInfo.getUsername());
        quotaPastBiz.toCancleQuota(params);
    }

    /**
     * 查询过期持仓
     */
    @RequestMapping("/searchQuotaPast")
    public String searchQuotaPast(@RequestParam Map<String, Object> params) {
        quotaPastBiz.toAddQuotaPast();
        if (StringUtil.isBlank(params.get("endTime"))) {
            params.put("endTime", null);
        }
        PageUtils.processPage(params);
        return JsonUtil.toPageJson(quotaPastDao.search(params), quotaPastDao.searchTotal(params));
    }

    /**
     * 导出未导出的过期持仓
     */

    @RequestMapping("/exportFile")
    public ResponseEntity<byte[]> exportFile(HttpServletRequest request) throws Exception {
        quotaPastBiz.toAddQuotaPast();
        Map<String, Object> params = new HashMap<String, Object>();
        UserInfo userInfo = ActionUtil.getUser();
        params.put("updateBy", userInfo.getTruename());
        params.put("status", 0);
        reportBiz.formatDate(params);
        params.put("rows", 999999);
        PageUtils.processPage(params);
        File targetFile = quotaPastBiz.export(params);
        HttpHeaders head = new HttpHeaders();
        head.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        // 下载的文件名
        head.setContentDispositionFormData("attachment",
            new String(targetFile.getName().getBytes("UTF-8"), "ISO8859-1"));
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(targetFile), head,
            HttpStatus.CREATED);
    }

}