91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

登錄成功-修改登錄相關信息-通過事件監聽方式完成-實現方式一

發布時間:2020-07-03 09:07:06 來源:網絡 閱讀:265 作者:素顏豬 欄目:編程語言

1.自定義事件

a.創建包event

b.創建類LoginSuccessEvent

c.編寫類的內容

package com.huinongtx.power.consumer.event;


import com.huinongtx.power.consumer.request.account.LoginForm;

import com.huinongtx.power.consumer.vo.result.ResultVO;

import com.huinongtx.power.provider.dto.account.AccountDTO;

import lombok.Data;

import org.springframework.context.ApplicationEvent;


/**

?* @ClassName LoginSuccessEvent

?* @Description 登錄成功事件

?* @Author yunshuodeng

?* @Date 2019-04-25 10:43

?* @Version 1.0

?**/

@Data

public class LoginSuccessEvent extends ApplicationEvent {

? ? private ResultVO resultVO;

? ? private AccountDTO accountDTO;

? ? private LoginForm loginForm;


? ? public LoginSuccessEvent(Object source) {

? ? ? ? super(source);

? ? }


? ? public LoginSuccessEvent(Object source,ResultVO resultVO,AccountDTO accountDTO,LoginForm loginForm) {

? ? ? ? super(source);

? ? ? ? this.resultVO = resultVO;

? ? ? ? this.accountDTO = accountDTO;

? ? ? ? this.loginForm = loginForm;

? ? }

}

2.自定義監聽

a.創建包listener

b.創建類LoginSuccessListener

c.編寫類的實現

package com.huinongtx.power.consumer.listener;


import com.huinongtx.power.consumer.event.LoginSuccessEvent;

import com.huinongtx.power.consumer.repository.AccountRepository;

import com.huinongtx.power.consumer.request.account.LoginForm;

import com.huinongtx.power.consumer.util.IpUtil;

import com.huinongtx.power.provider.dto.account.AccountDTO;

import com.huinongtx.power.provider.dto.account.ModifyAccountLoginInfoDTO;

import com.huinongtx.power.provider.dto.result.ResultDTO;

import com.huinongtx.power.provider.util.TimeUtil;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.ApplicationListener;

import org.springframework.scheduling.annotation.Async;

import org.springframework.stereotype.Component;

import org.springframework.util.StringUtils;


import javax.servlet.http.HttpServletRequest;


/**

?* @ClassName LoginSuccessListener

?* @Description TODO

?* @Author yunshuodeng

?* @Date 2019-04-25 10:49

?* @Version 1.0

?**/

@Async

@Component

public class LoginSuccessListener implements ApplicationListener<LoginSuccessEvent> {

? ? @Autowired

? ? private HttpServletRequest request;


? ? // 注入賬戶持久層

? ? @Autowired

? ? private AccountRepository accountRepository;



? ? public void onApplicationEvent(LoginSuccessEvent loginSuccessEvent) {

? ? ? ? if (loginSuccessEvent.getResultVO().getCode() == 0){

//? ? ? ? ? ? System.out.println("執行修改登錄信息操作");

? ? ? ? ? ? // 修改登錄相關信息

? ? ? ? ? ? try {

? ? ? ? ? ? ? ? modifyLoginInfo(request,loginSuccessEvent.getAccountDTO(),loginSuccessEvent.getLoginForm());

? ? ? ? ? ? } catch (Exception e) {

? ? ? ? ? ? ? ? System.out.println(e.getMessage());

? ? ? ? ? ? }

? ? ? ? }

? ? }


? ? /**

? ? ?* 修改登錄信息

? ? ?* @param request

? ? ?* @param accountDTO

? ? ?* @param loginForm

? ? ?* @throws Exception

? ? ?*/

? ? private void modifyLoginInfo(HttpServletRequest request, AccountDTO accountDTO, LoginForm loginForm) throws Exception {

? ? ? ? // 獲取客戶端登錄IP

? ? ? ? String ip = IpUtil.getIpAddr(request);

? ? ? ? // 修改登錄相關信息

? ? ? ? ModifyAccountLoginInfoDTO modifyAccountLoginInfoDTO = new ModifyAccountLoginInfoDTO();

? ? ? ? modifyAccountLoginInfoDTO.setId(accountDTO.getId());

? ? ? ? modifyAccountLoginInfoDTO.setDeviceNo(loginForm.getDeviceNo());

? ? ? ? modifyAccountLoginInfoDTO.setPlatform(loginForm.getPlatform());

? ? ? ? modifyAccountLoginInfoDTO.setDevicePlatform(loginForm.getDevicePlatform());

? ? ? ? modifyAccountLoginInfoDTO.setLoginTime(TimeUtil.getCurrentTimeMillis());

? ? ? ? modifyAccountLoginInfoDTO.setLastLoginTime(TimeUtil.getCurrentTimeMillis());

? ? ? ? modifyAccountLoginInfoDTO.setIp(ip);

? ? ? ? Long count = StringUtils.isEmpty(accountDTO.getCount()) ? 0 : accountDTO.getCount();

? ? ? ? modifyAccountLoginInfoDTO.setCount(count+1);

? ? ? ? ResultDTO resultDTO = accountRepository.modifyAccountInfoByCondition(modifyAccountLoginInfoDTO);

? ? ? ? System.out.println(resultDTO.getState());

? ? }

}

3.發布事件

a.在service中注入spring 上下文

@Autowired

private ApplicationContext applicationContext;

b.在相應的業務方法中發布事件

// 代碼省略

// 發布事件

applicationContext.publishEvent(new LoginSuccessEvent(this,resultVO,accountDTO,loginForm));

// 代碼省略


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

娄烦县| 绥化市| 阳朔县| 贺州市| 绥阳县| 长丰县| 区。| 高淳县| 辽阳县| 大姚县| 卫辉市| 奉化市| 江安县| 共和县| 珲春市| 海丰县| 德钦县| 大冶市| 怀宁县| 沙河市| 秦皇岛市| 滨海县| 彭阳县| 龙胜| 广安市| 广州市| 安阳市| 左权县| 昌江| 建阳市| 沿河| 宝清县| 临沧市| 江都市| 平塘县| 凤台县| 浦北县| 泾川县| 晋城| 平邑县| 台江县|