fs-danaus
2022-07-26 b0744c82dbb0bb2a15763dbbd83a924f54312821
完善小程序端登录日志记录
6个文件已修改
157 ■■■■■ 已修改文件
src/com/yc/action/login/LoginAction.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/open/controller/EchoController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/sdk/miniapp/action/WxMaUserController.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/sdk/miniapp/action/qy/WxCpUserController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/sdk/oauth2/action/OAuth2Login.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/sdk/weixincp/action/CpAuthSession.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/yc/action/login/LoginAction.java
@@ -663,8 +663,8 @@
                } else {
                    //pc ,小程序
                    String redirect = request.getParameter("redirect");
                    if (org.apache.commons.lang3.StringUtils.isNotBlank(redirect)) {
                    int userLoginType = session.getAttribute(SessionKey.USER_LOGIN_TYPE)==null?1:Integer.parseInt(session.getAttribute(SessionKey.USER_LOGIN_TYPE)+"");
                    if (userLoginType==3) {
                        userEntity.setUserLoginType("minapp");
                    } else {
                        userEntity.setUserLoginType("web");
src/com/yc/open/controller/EchoController.java
@@ -8,6 +8,7 @@
import com.yc.open.deli.service.PostDataBaseService;
import com.yc.open.utils.ApiUtils;
import com.yc.open.utils.CallBackMessageToObject;
import com.yc.sdk.WebSocketMessage.action.WebSocketMessageServer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -117,4 +118,17 @@
        });
        return   callBackMessage.sendSuccessMessage(this+"=>"+id);
    }
    /**
     * 查看内存里webSocket用户信息
     * @return
     */
    @RequestMapping(value = "/db/wsInfo.do",method = RequestMethod.GET)
    public @ResponseBody Object wsInfo(){
        CallBackMessageToObject callBackMessage=new CallBackMessageToObject();
        final List<String> id=new ArrayList<>();
        WebSocketMessageServer.getOnlineUserList().forEach((key, value)->{
            id.add(key);
        });
        return   callBackMessage.sendSuccessMessage(this+"=>"+id);
    }
}
src/com/yc/sdk/miniapp/action/WxMaUserController.java
@@ -4,31 +4,12 @@
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.open.api.WxOpenService;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import java.io.File;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.yc.action.BaseAction;
import com.yc.action.login.LoginAction;
import com.yc.entity.DataSourceEntity;
import com.yc.entity.UserAccountEntity;
import com.yc.entity.attachment.AttachmentEntity;
import com.yc.entity.attachment.AttachmentWhereEntity;
import com.yc.multiData.MultiDataSource;
@@ -51,6 +32,24 @@
import com.yc.sdk.weixinopen.service.MiniAppCodeIfc;
import com.yc.service.upload.AttachmentIfc;
import com.yc.utils.SessionKey;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.open.api.WxOpenService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.util.List;
/**
 * 微信小程序用户接口
@@ -83,7 +82,8 @@
    MiniAppCodeIfc miniAppCodeIfc ;
    @Autowired
    private AttachmentIfc attachmentIfc;
    @Autowired
    LoginAction loginAction;
    @GetMapping("/getSessionId.do")
    public void getSessionId(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session=request.getSession();
@@ -568,7 +568,11 @@
                session.setAttribute(SettingKey.currency,myWxMpUser.getCurrency()) ;
                session.setAttribute(SettingKey.currencyName,myWxMpUser.getCurrencyName()) ;
                session.setAttribute(SettingKey.currencySign,myWxMpUser.getCurrencySign()) ;
                //by danaus 2022/7/26 16:32
                UserAccountEntity userAccount =new UserAccountEntity();
                userAccount.setUserCode(session.getAttribute(SessionKey.USERCODE)+"");
                userAccount.setUserName(session.getAttribute(SessionKey.USER_NAME)+"");
                loginAction.processLoginUserToSessionV2(request.getRemoteAddr(),corpEntity.getDbId()+"",request,userAccount);
                json.addProperty(SessionKey.WEIXIN_OPENID, openId);
                json.addProperty("JSESSIONID", session.getId());
                
src/com/yc/sdk/miniapp/action/qy/WxCpUserController.java
@@ -250,29 +250,11 @@
                wxSessionEntity.setProvince(customerEntity.getProvinceZoneId());
                wxSessionEntity.setPostCode(customerEntity.getPostCode());
            }
            //String pwd = (String) userAccount.getPassword() ;
            //dataString=request.getParameter("dataName");//数据源id
           // dataBaseDis = request.getParameter("dataBaseDis");
            // isone= request.getParameter("isone");//只有一个数据源的情况
//             request.setAttribute("dataName", corpEntity.getDbId()+"");
//             request.setAttribute("dataBaseDis",corpEntity.getSystemID());
//             request.setAttribute("isone",corpEntity.getDbId()+"") ;
//             request.setAttribute("domain",corpEntity.getCorpURL());
//             request.setAttribute("account", userAccount.getUserCode());
//
//
//
//            loginAction.login(request, response) ;
            //by danaus 2022/7/26 16:33
            session.setAttribute(SessionKey.USER_LOGIN_TYPE, SessionKey.USER_LOGIN_TYPE_MINIAPP);//miniapp 小程序类型
            loginAction.processLoginUserToSessionV2(request.getRemoteAddr(),corpEntity.getDbId()+"",request,userAccount);
            //保存会话 session 信息
            //setSessionValues(corpEntity.getDbId()+"",userAccount, session);
            /*
            session.setAttribute(SessionKey.SHOPPING_DBID,corpEntity.getDbId() + "") ;
            session.setAttribute(SessionKey.WEIXIN_FROM,"1") ;
            session.setAttribute(SessionKey.WEIXIN_CORPID,corpId) ;
            session.setAttribute(SessionKey.WEIXIN_OPENID,wxCpUser.getUserId()) ;
            */
            wxSessionEntity.setShoppingDbId(corpEntity.getDbId() + "");
            wxSessionEntity.setWx("4");
            wxSessionEntity.setCorpId(corpId);
src/com/yc/sdk/oauth2/action/OAuth2Login.java
@@ -109,42 +109,12 @@
                this.print(response, "<script> alert('" + ip + "禁止登录" + "');window.location='/login.jsp"+(redirect != null && !"".equals(redirect)?"?redirect="+redirect:"") + "';</script>");
                return ;
            }
            //
//          //设置权限
//            PerssionEntity perssionEntity = new PerssionEntity() ;
//            perssionEntity.setRole(rIfc.getRole(userAccount.getUserCode()));
//            perssionEntity.setPerssion(userAccountService.getUserProfiles(userAccount.getUserCode()));
//            if (userAccount.getDefaultSet() != null && !"".equals(userAccount.getDefaultSet())) {
//                perssionEntity.setDefaultSet(userAccountService.getDefaultSet(userAccount.getDefaultSet()));
//            }
//
//            //保存会话 session 信息
//             LoginAction.setSessionValues(dbId,userAccount, session,perssionEntity);
             loginAction.processLoginUserToSessionV2(ip,dbId,request,userAccount);
            // 登录成功清除登录错误信息
            //record.clearLoginRecord(userAccount.getUserCode());
            // --------------
            //String ucode = account + Math.random();// 是为了区分用户重复问题,同一用户可以多人使用。
            //session.setAttribute(SessionKey.SAIL_USERCODE, ucode);
            //OnLineUser.setOnlineUser(dataString, ucode, session);
            /*
             * WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext(); ServletContext servletContext = webApplicationContext.getServletContext();//取得ServletContext对象实例 if((OnLineUser)servletContext.getAttribute("onlineuserlistener")==null) { OnLineUser
             * onuser=new OnLineUser();//只设置一次,不同于上面日志文件的记录每次会话均设置。即当第一个客户连接到服务器时启动一个全局变量,此后所有的客户将使用相同的上下文。 servletContext.setAttribute("onlineuserlistener",onuser);//将监听器对象设置成ServletContext的属性,具有全局范围有效性,即所有的客户均可以取得它的实例。 }
             * session.setAttribute("onlineuserlistener",(OnLineUser)servletContext.getAttribute("onlineuserlistener"));//取出此全局对象,并且将此对象绑定到某个会话中,此举将促使监听器调用valueBound,计数器加一。
             */
            //session.setAttribute(SessionKey.ONLINE_USERS, new OnLineUser());// 在线人数统计
            // ------------------
            session.setAttribute("NickName",oauth2InfoEntity.getNickName());   //昵称
            session.setAttribute("headimgurl",oauth2InfoEntity.getHeadimgurl());  //头像
            //保存登录信息
           // userAccountService.loginLog(userAccount.getUserCode(), userAccount.getUserName(), ip,session.getId());
            try {
            //by danaus 2022/7/26 16:34
            session.setAttribute(SessionKey.USER_LOGIN_TYPE, SessionKey.USER_LOGIN_TYPE_MINIAPP);//miniapp 小程序类型
            loginAction.processLoginUserToSessionV2(ip,dbId,request,userAccount);
            try {
                //删除 redis 上的信息
                redisTemplate.delete(oauth2UUID) ;
            }catch(Exception e) {
src/com/yc/sdk/weixincp/action/CpAuthSession.java
@@ -295,30 +295,11 @@
                wxSessionEntity.setPostCode(customerEntity.getPostCode());
            }
            // String pwd = (String) userAccount.getPassword() ;
            // dataString=request.getParameter("dataName");//数据源id
            // dataBaseDis = request.getParameter("dataBaseDis");
            // isone= request.getParameter("isone");//只有一个数据源的情况
//         request.setAttribute("dataName", corpEntity.getDbId()+"");
//         request.setAttribute("dataBaseDis",corpEntity.getSystemID());
//         request.setAttribute("isone",corpEntity.getDbId()+"") ;
//         request.setAttribute("domain",corpEntity.getCorpURL());
//         request.setAttribute("account", userAccount.getUserCode());
//
//
//
//        loginAction.login(request, response) ;
            //by danaus 2022/7/26 16:35
            session.setAttribute(SessionKey.USER_LOGIN_TYPE, SessionKey.USER_LOGIN_TYPE_MINIAPP);//miniapp 小程序类型
            loginAction.processLoginUserToSessionV2(request.getRemoteAddr(), corpEntity.getDbId() + "", request,
                    userAccount);
            // 保存会话 session 信息
            // setSessionValues(corpEntity.getDbId()+"",userAccount, session);
            /*
             * session.setAttribute(SessionKey.SHOPPING_DBID,corpEntity.getDbId() + "") ;
             * session.setAttribute(SessionKey.WEIXIN_FROM,"1") ;
             * session.setAttribute(SessionKey.WEIXIN_CORPID,corpId) ;
             * session.setAttribute(SessionKey.WEIXIN_OPENID,wxCpUser.getUserId()) ;
             */
            wxSessionEntity.setShoppingDbId(corpEntity.getDbId() + "");
            wxSessionEntity.setWx("1");
            wxSessionEntity.setCorpId(corpId);