QuotaUserAction.java 4.69 KB
package com.cjs.cms.action.quota;

import java.io.File;
import java.util.Date;
import java.util.HashMap;
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.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.cjs.cms.biz.quota.QuotaUserBiz;
import com.cjs.cms.dao.quota.QuotaConfigDao;
import com.cjs.cms.dao.quota.QuotaUserDao;
import com.cjs.cms.model.quota.QuotaConfigInfo;
import com.cjs.cms.model.quota.QuotaUserInfo;
import com.cjs.cms.util.lang.JsonUtil;
import com.cjs.cms.util.lang.PageUtils;
import com.cjs.cms.util.t2.T2Result;
import com.cjs.cms.util.t2.T2Util;

/**
 * 
 * 用户权益
 * @author kongmingke
 *
 */
@Controller
@RequestMapping("/quota/user")
public class QuotaUserAction {

    @Autowired
    private QuotaUserDao quotaUserDao;
    @Autowired
    private QuotaConfigDao      quotaConfigDao;
    @Autowired
    private QuotaUserBiz quotaUserBiz;

    @RequestMapping("/queryByUserId")
    public @ResponseBody QuotaUserInfo queryByUserId(@RequestParam Map<String, Object> params) {
        return quotaUserDao.queryByUserId(params);
    }

    @RequestMapping("getName")
    public @ResponseBody String getUserNameById(String userId) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("fund_account", userId);
        T2Result result = T2Util.request(params, "619832");
        if (result.getCode() == 0) {
            String clientName = result.getData().get(0).get("client_name").toString();
            return JsonUtil.toJson("clientName", clientName);
        }
        return JsonUtil.toJson("clientName", "");
    }

    @RequestMapping("/search")
    public @ResponseBody String search(@RequestParam Map<String, Object> params) {
        PageUtils.processPage(params);
        return JsonUtil.toPageJson(quotaUserDao.searchQuota(params),
            quotaUserDao.searchQuotaTotal(params));
    }
    
    /**
     * 导出权益
     */  
    @RequestMapping("/export")
    public String export(@RequestParam Map<String, Object> params, RedirectAttributes redirectAttributes){
        redirectAttributes.addFlashAttribute("params", params);
        return "redirect:/quota/user/exportFile";
    }
    
    
    @RequestMapping("/exportFile")
    public ResponseEntity<byte[]> exportFile(@ModelAttribute("params") Map<String, Object> params, HttpServletRequest request)
            throws Exception {
        params.put("rows", 999999);
        PageUtils.processPage(params);
        File targetFile = quotaUserBiz.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);
    }
    
    
    //添加用户权益
    @RequestMapping("/insertQuotaUser")
    public @ResponseBody String insertQuotaUser(@RequestParam Map<String, Object> params){
       final QuotaConfigInfo quotaConfigInfo = quotaConfigDao.queryByOtcCode(params.get("otcCode").toString());
      //查询用户有效持仓
        if (quotaConfigInfo == null) {
            return JsonUtil.toJson("resultCode", "0");
        }
        if (new Date().getTime() > quotaConfigInfo.getValidEndDate().getTime()) {
            return JsonUtil.toJson("resultCode", "1");
        }
        if (quotaConfigInfo.getAllot() != 1) {
            return JsonUtil.toJson("resultCode", "2");
        }
        
      //添加用户权益
        QuotaUserInfo quotaUserInfo = new QuotaUserInfo();
        quotaUserInfo.setOtcCode(params.get("otcCode").toString());
        quotaUserInfo.setOtcName(quotaConfigInfo.getOtcName());
        quotaUserInfo.setUserId(params.get("userId").toString());
        quotaUserInfo.setCreateBy("admin");
        quotaUserDao.insert(quotaUserInfo);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("otcName", quotaConfigInfo.getOtcName());
        return  JsonUtil.toJson("resultCode", quotaConfigInfo.getOtcName());      
    }

}