admin
2021-02-06 cad915058c3c53bf328a8ae9ca9bc7de099caba7
src/main/java/com/yeshi/buwan/controller/parser/CommentParser.java
@@ -12,9 +12,7 @@
import com.yeshi.buwan.service.imp.push.PushService;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.service.inter.SMSService;
import com.yeshi.buwan.util.AliyunOneKeyLoginUtil;
import com.yeshi.buwan.util.JsonUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.*;
import com.yeshi.buwan.util.annotation.RequireUid;
import com.yeshi.buwan.util.wx.MyWXLoginUtil;
import com.yeshi.buwan.vo.AcceptData;
@@ -28,6 +26,7 @@
import java.io.PrintWriter;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@Controller
@@ -48,6 +47,9 @@
    @Resource
    private SMSService smsService;
    @Resource
    private RedisManager redisManager;
    @RequireUid
    public void getReadState(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
@@ -126,6 +128,33 @@
    }
    /**
     * 允许一键登录
     *
     * @param acceptData
     * @param request
     * @param out
     */
    public void allowOneKeyLogin(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
        Long loginUid = StringUtil.isNullOrEmpty(request.getParameter("loginUid")) ? null : Long.parseLong(request.getParameter("loginUid"));
        if (loginUid == null || loginUid == 0L) {
            out.print(JsonUtil.loadFalseJson("尚未登录"));
            return;
        }
        String device = request.getParameter("Device");
        long time = System.currentTimeMillis();
        String key = "onkeylogin-" + StringUtil.Md5(device + "#" + TimeUtil.getGernalTime(time, "yyyyMMdd"));
        //一个设备一天之内只能允许5次
        String value = redisManager.getCommonString(key);
        if (!StringUtil.isNullOrEmpty(value) && Integer.parseInt(value) > 10) {
            out.print(JsonUtil.loadFalseJson("一键登录次数超限,请明天再试"));
            return;
        }
        out.print(JsonUtil.loadTrueJson(""));
    }
    /**
     * 电话号码绑定
@@ -140,10 +169,13 @@
        String code = request.getParameter("code");
        String accessToken = request.getParameter("accessToken");
        String systemId = request.getParameter("system");
        String device = request.getParameter("Device");
        long time = System.currentTimeMillis();
        if (loginUid == null || loginUid == 0L) {
            out.print(JsonUtil.loadFalseJson("登录失败"));
            out.print(JsonUtil.loadFalseJson("尚未登录"));
            return;
        }
@@ -151,6 +183,14 @@
        if (!StringUtil.isNullOrEmpty(accessToken)) {
            //一键登录
            mobile = AliyunOneKeyLoginUtil.getMobile(accessToken, "");
            //增加一键登录的次数
            String key = "onkeylogin-" + StringUtil.Md5(device + "#" + TimeUtil.getGernalTime(time, "yyyyMMdd"));
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(time);
            calendar.add(Calendar.DAY_OF_WEEK, 1);
            int s = (int) ((TimeUtil.convertGernalTime(TimeUtil.getGernalTime(calendar.getTimeInMillis(), "yyyyMMdd"), "yyyyMMdd") - time) / 1000);
            redisManager.increase(key, s);
        } else {
            //通过验证码登录
            //判断验证码是否正确
@@ -165,16 +205,11 @@
                return;
            }
            if (smsService.verifyBindVCode(phone, code)) {
            if (!smsService.verifyBindVCode(phone, code)) {
                out.print(JsonUtil.loadFalseJson("验证码错误"));
                return;
            }
            mobile = phone;
        }
        if (StringUtil.isNullOrEmpty(code)) {
            out.print(JsonUtil.loadFalseJson("code为空"));
            return;
        }
        try {
@@ -285,7 +320,7 @@
        }
        try {
            smsService.sendBindVCode(Long.parseLong(loginUid), phone, 6);
            smsService.sendBindVCode(loginUid, phone, 6);
        } catch (SMSException e) {
            e.printStackTrace();
            out.print(JsonUtil.loadFalseJson(e.getMessage()));