MessageAction.java 9.81 KB
package com.cjs.site.action.pub;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cjs.site.biz.ServiceException;
import com.cjs.site.biz.pub.SendMessageBiz;
import com.cjs.site.dao.user.account.ClientInfoDao;
import com.cjs.site.model.user.account.ClientInfo;
import com.cjs.site.model.user.account.UserInfo;
import com.cjs.site.util.lang.JsonUtil;
import com.cjs.site.util.lang.StringUtil;
import com.cjs.site.util.t2.T2Result;
import com.cjs.site.util.t2.T2Util;
import com.cjs.site.util.web.ActionUtil;
import com.google.code.kaptcha.Constants;

/**
 * 手机号码
 * 
 * @author tongxiaochuan
 *
 */
@Controller
@RequestMapping("/msg")
public class MessageAction {

    @Autowired
    private ClientInfoDao  clientInfoDao;
    @Autowired
    private SendMessageBiz sendMessageBiz;
    Logger                 log = LogManager.getLogger();

    /**
     * 发送短信验证码
     * @param session
     * @param mobile_tel
     * 
     * @return
     */
    @SuppressWarnings("unchecked")
    @RequestMapping("/sendMsg")
    public @ResponseBody String sendMsg(HttpSession session, String mobile_tel,
                                        String valiadateCode) {
        String randomNum = (int) (Math.random() * 1000000) + "";
        if (randomNum.length() < 6) {
            randomNum = StringUtil.lpad(6, randomNum);
        }

        Map<String, Object> outmap = new HashMap<String, Object>();
        String validCode = (String) session.getAttribute(Constants.KAPTCHA_SESSION_KEY);
        if (StringUtils.isBlank(validCode) || !StringUtils.equals(valiadateCode, validCode)) {
            outmap.put("resultCode", "0");
            outmap.put("resultMsg", "图形验证码错误");
            return JsonUtil.toJson(outmap);
        }
        if (Integer.parseInt(session.getAttribute("KAPTCHA_TIMES").toString()) > 3) {
            outmap.put("resultCode", "0");
            outmap.put("resultMsg", "图形验证码过期,请刷新后重试");
            return JsonUtil.toJson(outmap);
        }

        //测试临时添加
        //        randomNum = "111111";

        if (StringUtil.isBlank(mobile_tel)) {
            UserInfo userInfo = ActionUtil.getUser();
            ClientInfo clientInfo = clientInfoDao.queryByClientId(userInfo.getClient_id());
            mobile_tel = clientInfo.getMobileTel();
        }

        String randomStr = "您的开户验证码:" + randomNum + ",请确保本人操作。如有疑问,详询400-969-0800。【赵涌牛】";
        System.out.println("the num is :" + randomNum);
        outmap = sendMessageBiz.send(mobile_tel, randomStr);
        session.setAttribute("KAPTCHA_TIMES",
            Integer.parseInt(session.getAttribute("KAPTCHA_TIMES").toString()) + 1);

        if ("0".equals(outmap.get("resultCode"))) {
            return JsonUtil.toJson(outmap);
        }

        List<Map<String, Object>> randomNums = (List<Map<String, Object>>) session
            .getAttribute("randomNum");
        if (randomNums == null) {
            randomNums = new ArrayList<Map<String, Object>>();
        }

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("tel", mobile_tel);
        map.put("smsCode", randomNum);
        randomNums.add(map);
        session.setAttribute("randomNum", randomNums);
        session.setAttribute("yz_phone", mobile_tel);
        session.setAttribute("sms_order_id", outmap.get("result"));
        session.setAttribute("sms_code", randomNum);

        outmap.put("resultCode", "1");
        return JsonUtil.toJson(outmap);
    }

    /**
     * 给当前用户发送短信验证码(无图形验证码)
     * @param type 验证码信息类型
     * @return
     */
    @ResponseBody
    @RequestMapping("sendValidCode")
    public String sendValidCode(HttpSession session) {
        return sendMessageBiz.sendMsg(1, session);
    }

    /**
     * 发送提现短信
     * @param session
     * @return
     */
    @ResponseBody
    @RequestMapping("kiting")
    public String sendForKiting(HttpSession session) {
        return sendMessageBiz.sendMsg(2, session);
    }

    /**
     * 银行卡换绑发送短信验证码
     * @param session
     * @param mobile_tel
     * 
     * @return
     */
    @SuppressWarnings("unchecked")
    @RequestMapping("/changeCardSendMsg")
    public @ResponseBody String changeCardSendMsg(HttpSession session) {
        UserInfo userInfo = ActionUtil.getUser();
        String randomNum = (int) (Math.random() * 1000000) + "";
        if (randomNum.length() < 6) {
            randomNum = StringUtil.lpad(6, randomNum);
        }

        ClientInfo clientInfo = clientInfoDao.queryByClientId(userInfo.getClient_id());
        if (clientInfo == null) {
            throw new ServiceException("用户信息不存在");
        }
        String mobile_tel = clientInfo.getMobileTel();

        String randomStr = "您的换绑银行卡验证码:" + randomNum + ",请确保本人操作。如有疑问,详询400-969-0800。【赵涌牛】";
        System.out.println("the num is :" + randomNum);
        Map<String, Object> result = sendMessageBiz.send(mobile_tel, randomStr);
        if ("0".equals(result.get("resultCode"))) {
            return JsonUtil.toJson(result);
        }

        List<String> randomNums = (List<String>) session.getAttribute("randomNumber");
        if (randomNums == null) {
            randomNums = new ArrayList<String>();
        }

        randomNums.add(randomNum);
        session.setAttribute("randomNumber", randomNums);
        session.setAttribute("yz_phone", mobile_tel);
        session.setAttribute("sms_order_id", result.get("result"));
        session.setAttribute("sms_code", randomNum);

        return JsonUtil.toJson(result);
    }

    /**
     * 验证短信验证码
     * @param randomNum
     * @param session
     * @param model
     * @return
     */
    @SuppressWarnings("unchecked")
    @RequestMapping("/checkRandomMsg")
    public @ResponseBody String checkRandomMsg(String randomNum, String mobile,
                                               HttpSession session) {
        List<Map<String, Object>> randomNums = (List<Map<String, Object>>) session
            .getAttribute("randomNum");
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("tel", mobile);
        map.put("smsCode", randomNum);

        if (randomNums != null && randomNums.contains(map)) {
            //验证码正确
            return JsonUtil.toJson("resultCode", "1");
        } else {
            return JsonUtil.toJson("resultCode", "0");
        }
    }

    /**
     * 绑卡短信验证码
     * @param session
     * @return
     */
    @SuppressWarnings("unchecked")
    @RequestMapping("/bindCardSendMsg")
    public @ResponseBody String bindCardSendMsg(HttpSession session) {
        UserInfo userInfo = ActionUtil.getUser();
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("client_id", userInfo.getClient_id());
        params.put("fund_account", userInfo.getFund_account());
        T2Result result = T2Util.request(params, "619829");
        System.out.println(result);
        String mobile_tel = result.getData().get(0).get("mobile_tel").toString();

        String randomNum = (int) (Math.random() * 1000000) + "";
        if (randomNum.length() < 6) {
            randomNum = StringUtil.lpad(6, randomNum);
        }

        String randomStr = "您的绑卡验证码:" + randomNum + ",请确保本人操作。如有疑问,详询400-969-0800。【赵涌牛】";
        System.out.println("您的绑卡验证码::" + randomNum + ",手机号" + mobile_tel);
        Map<String, Object> outmap = sendMessageBiz.send(mobile_tel, randomStr);
        if ("0".equals(outmap.get("resultCode"))) {
            return JsonUtil.toJson(outmap);
        }

        List<String> randomNums = (List<String>) session.getAttribute("randomNumer");
        if (randomNums == null) {
            randomNums = new ArrayList<String>();
        }
        randomNums.add(randomNum);
        session.setAttribute("randomNumber", randomNums);

        return JsonUtil.toJson(outmap);
    }

    /**
     * 更换手机号_发送验证码
     * @param mobileTel
     * @param session
     * @return
     */
    @ResponseBody
    @SuppressWarnings("unchecked")
    @RequestMapping("/changeTelSms")
    public String changeTelSms(String mobileTel, HttpSession session) {
        String randomNum = (int) (Math.random() * 1000000) + "";
        if (randomNum.length() < 6) {
            randomNum = StringUtil.lpad(6, randomNum);
        }
        String randomStr = "您的更换手机验证码:" + randomNum + ",请确保本人操作。如有疑问,详询400-969-0800。【赵涌牛】";
        System.out.println("您的更换手机验证码::" + randomNum + ",手机号" + mobileTel);
        Map<String, Object> outmap = sendMessageBiz.send(mobileTel, randomStr);
        if ("0".equals(outmap.get("resultCode"))) {
            return JsonUtil.toJson(outmap);
        }

        List<Map<String, Object>> randomNums = (List<Map<String, Object>>) session
            .getAttribute("randomNum");
        if (randomNums == null) {
            randomNums = new ArrayList<Map<String, Object>>();
        }
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("tel", mobileTel);
        map.put("smsCode", randomNum);
        randomNums.add(map);
        session.setAttribute("randomNum", randomNums);

        return JsonUtil.toJson(outmap);
    }
}