fei.wang
9 天以前 e15f561a1f9eddfde503d59baf45a860b131928e
src/main/java/com/flow/controller/LoginController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,225 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package com.flow.controller;
import com.flow.pojo.Company;
import com.flow.pojo.Loginjilu;
import com.flow.service.CompanyService;
import com.flow.service.LoginJiLuService;
import com.flow.service.LoginFailRecordService;
import com.flow.util.DESUtil;
import com.flow.util.IpUtil;
import com.flow.util.result;
import com.flow.util.resultutil;
import com.github.pagehelper.PageInfo;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.sms.v20210111.SmsClient;
import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
import java.io.IOException;
import java.util.List;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@RequestMapping({"/hxzk"})
@RestController
public class LoginController {
    private String SecretId = "AKIDrjZOI4e6KLZu9FAsSRN8eOwSt52lbMBz";
    private String SecretKey = "xnRtHUL3YqdMyOLVSBjKkz1pQoxujS4d";
    @Autowired
    LoginJiLuService loginJiLuService;
    @Autowired
    CompanyService companyService;
    @Autowired
    LoginFailRecordService loginFailRecordService;
    public LoginController() {
    }
    @GetMapping({"FindLoginJiLu"})
    public result<List<Loginjilu>> FindCard(Integer page, Integer limit) throws Exception {
        PageInfo<Loginjilu> cz = this.loginJiLuService.FindLoginJiLu(page, limit);
        for (int i = 0; i < cz.getSize(); ++i) {
            ((Loginjilu) cz.getList().get(i)).setLoginphone(DESUtil.decrypt(((Loginjilu) cz.getList().get(i)).getLoginphone(), DESUtil.key));
        }
        return resultutil.returnSuccess(cz.getTotal(), cz.getList());
    }
    @PostMapping({"FindLoginJiLuZi"})
    public result<List<Loginjilu>> FindCardZi(Loginjilu loginjilu, Integer page, Integer limit) throws Exception {
        PageInfo<Loginjilu> cz = this.loginJiLuService.FindLoginJiLuZi(loginjilu, page, limit);
        for (int i = 0; i < cz.getSize(); ++i) {
            ((Loginjilu) cz.getList().get(i)).setLoginphone(DESUtil.decrypt(((Loginjilu) cz.getList().get(i)).getLoginphone(), DESUtil.key));
        }
        return resultutil.returnSuccess(cz.getTotal(), cz.getList());
    }
    @PostMapping({"Login"})
    @ResponseBody
    public Company Login(Company company, HttpSession session) throws Exception {
        company.setCompanyabbname(company.getCompanyabbname());
//        company.setLoginphone(DESUtil.encrypt(company.getLoginphone(), DESUtil.key));
        if (company.getPassword() != null) {
            company.setPassword(company.getPassword());
        }
        Company company1 = this.companyService.findUser(company);
        if (company1 != null) {
            session.setAttribute("admin", company.getCompanyabbname());
        }
        return company1;
    }
    @PostMapping({"LoginIp"})
    @ResponseBody
    public int Login(Loginjilu loginjilu, HttpServletRequest request) throws Exception {
        String ip = IpUtil.getIpAddress(request);
        loginjilu.setIp(ip);
        return this.loginJiLuService.LoginIp(loginjilu);
    }
    @GetMapping({"fwl"})
    public List fwl() {
        return this.loginJiLuService.fwl();
    }
    @GetMapping({"huiLogin"})
    public void hui(HttpServletResponse response) throws IOException {
        response.sendRedirect("../Login.jsp");
    }
    @PostMapping({"upUser"})
    public ModelAndView UpUser(Company company, HttpServletResponse response) throws Exception {
        this.companyService.upUser(company);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("/page/setting.jsp");
        return modelAndView;
    }
    @ResponseBody
    @PostMapping({"lophone"})
    public Company lophone(Company company) throws Exception {
        return this.companyService.HuoPhone(company);
    }
    @PostMapping({"userdate"})
    public int userdate(String Zong) {
        String userdate = this.loginJiLuService.userdate(Zong);
        return this.loginJiLuService.upuserdate(Zong, userdate);
    }
    @PostMapping({"accountLogin"})
    @ResponseBody
    public Company accountLogin(String account, String password, HttpSession session) throws Exception {
        if (account == null || password == null) {
            return null;
        }
        // æ£€æŸ¥è´¦å·æ˜¯å¦è¢«é”å®š
        if (loginFailRecordService.isAccountLocked(account)) {
            // è´¦å·è¢«é”å®šï¼Œè¿”回特殊标识
            Company lockedCompany = new Company();
            lockedCompany.setCompanyabbname("LOCKED");
            return lockedCompany;
        }
        // æž„造Company对象,假设account为公司简称或登录账号字段
        Company company = new Company();
        company.setLoginphone(account);
        company.setPassword(password);
        Company company1 = this.companyService.findUser(company);
        if (company1 != null) {
            // ç™»å½•成功,清除失败记录
            loginFailRecordService.unlockAccount(account);
            session.setAttribute("admin", company.getCompanyabbname());
        } else {
            // ç™»å½•失败,记录失败次数
            loginFailRecordService.recordLoginFail(account);
        }
        return company1;
    }
    @GetMapping({"Login11"})
    @ResponseBody
    public int sms(String phone) throws TencentCloudSDKException {
        int randomNumber = 0;
        try {
            Random random = new Random();
            randomNumber = random.nextInt(10000) + 10000;
            System.out.println("生成的随机整数是:" + randomNumber);
            Credential cred = new Credential(this.SecretId, this.SecretKey);
            HttpProfile httpProfile = new HttpProfile();
            httpProfile.setEndpoint("sms.tencentcloudapi.com");
            ClientProfile clientProfile = new ClientProfile();
            clientProfile.setHttpProfile(httpProfile);
            SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile);
            SendSmsRequest req = new SendSmsRequest();
            String[] phoneNumberSet1 = new String[]{phone};
            req.setPhoneNumberSet(phoneNumberSet1);
            req.setSmsSdkAppId("1400838975");
            req.setSignName("北京华星北斗智控");
            req.setTemplateId("1878379");
            String[] templateParamSet1 = new String[]{String.valueOf(randomNumber)};
            req.setTemplateParamSet(templateParamSet1);
            SendSmsResponse resp = client.SendSms(req);
            System.out.println(SendSmsResponse.toJsonString(resp));
        } catch (TencentCloudSDKException var12) {
            System.out.println(var12.toString());
        }
        return randomNumber;
    }
    /**
     * éªŒè¯ç ç™»å½•解锁账号
     */
    @PostMapping({"unlockAccountBySms"})
    @ResponseBody
    public Company unlockAccountBySms(String phone, String verificationCode, HttpSession session) throws Exception {
        if (phone == null || verificationCode == null) {
            return null;
        }
        // éªŒè¯éªŒè¯ç ï¼ˆè¿™é‡Œéœ€è¦æ ¹æ®å®žé™…的验证码验证逻辑来实现)
        // å‡è®¾éªŒè¯ç éªŒè¯æˆåŠŸ
        boolean isCodeValid = true; // è¿™é‡Œåº”该调用实际的验证码验证逻辑
        if (isCodeValid) {
            // éªŒè¯ç æ­£ç¡®ï¼Œè§£é”è´¦å·
            loginFailRecordService.unlockAccount(phone);
            // è¿”回登录成功的信息
            Company company = new Company();
            company.setCompanyabbname("UNLOCKED");
            session.setAttribute("admin", phone);
            return company;
        } else {
            return null;
        }
    }
}