Browse Source

自动保存usersession

suochencheng 7 years ago
parent
commit
4244b6ef65

+ 2 - 0
src/main/java/com/izouma/awesomeadmin/dao/UsersSessionMapper.java

@@ -36,6 +36,8 @@ public interface UsersSessionMapper {
 
     List<UsersSession> queryUsersSessionsByPage(Map<String, Object> parameter);
 
+    List<UsersSession> queryUsersSessionList(UsersSession record);
+
 
     int delete(String id);
 

+ 22 - 0
src/main/java/com/izouma/awesomeadmin/dao/UsersSessionMapper.xml

@@ -185,6 +185,28 @@
         order by update_time desc
     </select>
 
+    <select id="queryUsersSessionList" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.UsersSession">
+        select
+        <include refid="Base_Column_List"/>
+        from users_session
+        <where>
+            and del_flag = 'N'
+
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id=#{userId}
+            </if>
+            <if test="type != null and !&quot;&quot;.equals(type)">
+                and type=#{type}
+            </if>
+            <if test="storeId != null and !&quot;&quot;.equals(storeId)">
+                and store_id=#{storeId}
+            </if>
+        </where>
+        order by update_time desc
+    </select>
+
+
     <select id="queryAllUsersSession" parameterType="java.util.Map" resultMap="UsersSessionResultMap">
         SELECT DISTINCT
         us.id,

+ 27 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/ChatInfoServiceImpl.java

@@ -5,6 +5,7 @@ import com.izouma.awesomeadmin.dao.ChatInfoMapper;
 import com.izouma.awesomeadmin.dao.UsersSessionMapper;
 import com.izouma.awesomeadmin.dto.Page;
 import com.izouma.awesomeadmin.model.ChatInfo;
+import com.izouma.awesomeadmin.model.UsersSession;
 import com.izouma.awesomeadmin.service.ChatInfoService;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -93,6 +94,32 @@ public class ChatInfoServiceImpl implements ChatInfoService {
 
             int updates = chatInfoMapper.insertSelective(chatInfo);
 
+            UsersSession usersSession = new UsersSession();
+            usersSession.setUserId(chatInfo.getUserId());
+            usersSession.setStoreId(chatInfo.getStoreId());
+
+            List<UsersSession> usersSessionList = usersSessionMapper.queryUsersSessionList(usersSession);
+            if (usersSessionList != null && usersSessionList.size() > 0) {
+                if (usersSessionList.size() == 1) {
+                    usersSession.setId(null);
+                    if (usersSessionList.get(0).getType() == 0) {
+                        usersSession.setType(1);
+                    } else {
+                        usersSession.setType(0);
+                    }
+
+                    usersSessionMapper.insertSelective(usersSession);
+                }
+            } else {
+                usersSession.setId(null);
+                usersSession.setType(0);
+                usersSessionMapper.insertSelective(usersSession);
+
+                usersSession.setId(null);
+                usersSession.setType(1);
+                usersSessionMapper.insertSelective(usersSession);
+            }
+
             usersSessionMapper.updateByChatInfo(chatInfo);
 
             if (updates > 0) {