Răsfoiți Sursa

聊天框显示

licailing 5 ani în urmă
părinte
comite
9c9d0de220

+ 1 - 1
src/main/java/com/izouma/dingdong/domain/BankCard.java

@@ -34,7 +34,7 @@ public class BankCard extends BaseEntity {
     @ApiModelProperty(value = "银行", name = "bankName")
     @ApiModelProperty(value = "银行", name = "bankName")
     private String bankName;
     private String bankName;
 
 
-    @ApiModelProperty(value = "卡号", name = "cardId")
+    @ApiModelProperty(value = "卡号", name = "cardNo")
     private String cardNo;
     private String cardNo;
 
 
     @Column(nullable = false)
     @Column(nullable = false)

+ 1 - 0
src/main/java/com/izouma/dingdong/repo/ChatRepo.java

@@ -14,4 +14,5 @@ public interface ChatRepo extends JpaRepository<Chat, Long>, JpaSpecificationExe
 
 
     //按个人查找
     //按个人查找
     List<Chat> findAllBySendUserIdOrReceiveUserId(Long userId, Long userId2);
     List<Chat> findAllBySendUserIdOrReceiveUserId(Long userId, Long userId2);
+
 }
 }

+ 49 - 0
src/main/java/com/izouma/dingdong/service/ChatService.java

@@ -1,13 +1,62 @@
 package com.izouma.dingdong.service;
 package com.izouma.dingdong.service;
 
 
+import cn.hutool.core.collection.CollUtil;
+import com.izouma.dingdong.domain.Chat;
 import com.izouma.dingdong.repo.ChatRepo;
 import com.izouma.dingdong.repo.ChatRepo;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
 @Service
 @Service
 @AllArgsConstructor
 @AllArgsConstructor
 public class ChatService {
 public class ChatService {
 
 
     private ChatRepo chatRepo;
     private ChatRepo chatRepo;
 
 
+    /*
+    我的聊天列表
+     */
+    public List<Chat> my(Long userId) {
+        List<Chat> chats = chatRepo.findAllBySendUserIdOrReceiveUserId(userId, userId);
+        //发送
+        Set<Long> sends = chats.stream().map(Chat::getSendUserId).collect(Collectors.toSet());
+        //接受
+        Set<Long> receives = chats.stream().map(Chat::getReceiveUserId).collect(Collectors.toSet());
+        sends.addAll(receives);
+        sends.remove(userId);
+
+        if (CollUtil.isEmpty(sends)){
+            return null;
+        }
+
+        return sends.stream().map(s ->
+                this.showChat(s, userId).get(0)
+        ).collect(Collectors.toList());
+    }
+
+    /*
+    显示两个人之间的具体对话
+     */
+    public List<Chat> showChat(Long userOne, Long userTwo) {
+        List<Chat> sendChats = chatRepo.findAllBySendUserIdAndReceiveUserId(userOne, userTwo);
+        List<Chat> receiveChats = chatRepo.findAllBySendUserIdAndReceiveUserId(userTwo, userOne);
+        sendChats.addAll(receiveChats);
+        sendChats.sort((a, b) -> b.getId().compareTo(a.getId()));
+        return sendChats;
+    }
+
+    /*
+    超过一天自动删除
+     */
+    public void delChat(Long userId){
+        List<Chat> chats = chatRepo.findAllBySendUserIdOrReceiveUserId(userId,userId);
+        chats.forEach(chat -> {
+            if (LocalDateTime.now().isAfter(chat.getSendTime().plusDays(1))){
+                chatRepo.delete(chat);
+            }
+        });
+    }
 }
 }

+ 2 - 0
src/main/java/com/izouma/dingdong/service/merchant/SalesService.java

@@ -13,6 +13,7 @@ import com.izouma.dingdong.repo.merchant.GoodsRepo;
 import com.izouma.dingdong.repo.merchant.MerchantClassificationRepo;
 import com.izouma.dingdong.repo.merchant.MerchantClassificationRepo;
 import com.izouma.dingdong.repo.merchant.SalesRepo;
 import com.izouma.dingdong.repo.merchant.SalesRepo;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.time.LocalDate;
 import java.time.LocalDate;
@@ -125,6 +126,7 @@ public class SalesService {
     /*
     /*
     一天结束设置
     一天结束设置
      */
      */
+    @Scheduled(cron = "59 59 23 * * ?")
     public void dayOver() {
     public void dayOver() {
         LocalDate now = LocalDate.now();
         LocalDate now = LocalDate.now();
         List<Sales> allSales = salesRepo.findAllByDay(now);
         List<Sales> allSales = salesRepo.findAllByDay(now);

+ 4 - 8
src/main/java/com/izouma/dingdong/web/ChatController.java

@@ -6,6 +6,7 @@ import com.izouma.dingdong.dto.PageQuery;
 import com.izouma.dingdong.exception.BusinessException;
 import com.izouma.dingdong.exception.BusinessException;
 import com.izouma.dingdong.repo.ChatRepo;
 import com.izouma.dingdong.repo.ChatRepo;
 import com.izouma.dingdong.utils.ObjUtils;
 import com.izouma.dingdong.utils.ObjUtils;
+import com.izouma.dingdong.utils.SecurityUtils;
 import com.izouma.dingdong.utils.excel.ExcelUtils;
 import com.izouma.dingdong.utils.excel.ExcelUtils;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
@@ -66,18 +67,13 @@ public class ChatController extends BaseController {
     @ApiOperation("显示个人聊天列表")
     @ApiOperation("显示个人聊天列表")
     @GetMapping("/my")
     @GetMapping("/my")
     public List<Chat> my(){
     public List<Chat> my(){
-
-        return null;
+        return chatService.my(SecurityUtils.getAuthenticatedUser().getId());
     }
     }
 
 
-    @ApiOperation("显示两个人的所有聊天")
+    @ApiOperation("显示两个人的所有聊天内容")
     @GetMapping("/showChat")
     @GetMapping("/showChat")
     public List<Chat> showChat(Long userOne, Long userTwo) {
     public List<Chat> showChat(Long userOne, Long userTwo) {
-        List<Chat> sendChats = chatRepo.findAllBySendUserIdAndReceiveUserId(userOne, userTwo);
-        List<Chat> receiveChats = chatRepo.findAllBySendUserIdAndReceiveUserId(userTwo, userOne);
-        sendChats.addAll(receiveChats);
-        //sendChats.sort(Comparator.comparing());
-        return sendChats;
+        return chatService.showChat(userOne,userTwo);
     }
     }
 }
 }
 
 

+ 8 - 6
src/main/java/com/izouma/dingdong/web/MoneyRecordController.java

@@ -1,5 +1,7 @@
 package com.izouma.dingdong.web;
 package com.izouma.dingdong.web;
 
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.izouma.dingdong.domain.MoneyRecord;
 import com.izouma.dingdong.domain.MoneyRecord;
 import com.izouma.dingdong.service.MoneyRecordService;
 import com.izouma.dingdong.service.MoneyRecordService;
 import com.izouma.dingdong.dto.PageQuery;
 import com.izouma.dingdong.dto.PageQuery;
@@ -19,6 +21,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 
 @RestController
 @RestController
 @RequestMapping("/moneyRecord")
 @RequestMapping("/moneyRecord")
@@ -68,12 +71,11 @@ public class MoneyRecordController extends BaseController {
 //        query.put("time","2020-05-14 00:00:00,2020-05-14 13:59:59");
 //        query.put("time","2020-05-14 00:00:00,2020-05-14 13:59:59");
         Long userId = SecurityUtils.getAuthenticatedUser().getId();
         Long userId = SecurityUtils.getAuthenticatedUser().getId();
         List<MoneyRecord> all = moneyRecordRepo.findAll(toSpecification(pageQuery, MoneyRecord.class));
         List<MoneyRecord> all = moneyRecordRepo.findAll(toSpecification(pageQuery, MoneyRecord.class));
-        List<MoneyRecord> my = new ArrayList<>();
-        all.forEach(a -> {
-                    if (a.getUserId().equals(userId))
-                        my.add(a);
-                }
-        );
+        if (CollUtil.isEmpty(all)) {
+            return null;
+        }
+        List<MoneyRecord> my = all.stream().filter(a ->
+                a.getUserId().equals(userId)).collect(Collectors.toList());
         return new PageImpl<>(my, toPageRequest(pageQuery), pageQuery.getSize());
         return new PageImpl<>(my, toPageRequest(pageQuery), pageQuery.getSize());
     }
     }
 }
 }

+ 31 - 0
src/test/java/com/izouma/dingdong/contorller/BankCardControllerTest.java

@@ -0,0 +1,31 @@
+package com.izouma.dingdong.contorller;
+
+import com.izouma.dingdong.domain.BankCard;
+import com.izouma.dingdong.web.BankCardController;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class BankCardControllerTest {
+    @Autowired
+    private BankCardController bankCardController;
+
+    @Test
+    public void testSave(){
+        BankCard build = BankCard.builder()
+                .bankName("111")
+                .idNo("1111")
+                .realName("111")
+                .userId(188L)
+                .phone("11")
+                .cardNo("11")
+                .enabled(true)
+                .build();
+        build.setId(435L);
+        System.out.println(bankCardController.save(build));
+    }
+}

+ 1 - 1
src/test/java/com/izouma/dingdong/contorller/ChatControllerTest.java

@@ -21,7 +21,7 @@ public class ChatControllerTest {
         Chat chat = Chat.builder()
         Chat chat = Chat.builder()
                 .sendUserId(82L)
                 .sendUserId(82L)
                 .receiveUserId(174L)
                 .receiveUserId(174L)
-                .content("优秀优秀!!")
+                .content("qqqqqqqqqqqq!!")
                 .build();
                 .build();
         chatController.save(chat);
         chatController.save(chat);
     }
     }

+ 2 - 2
src/test/java/com/izouma/dingdong/contorller/MoneyRecordTest.java

@@ -26,9 +26,9 @@ public class MoneyRecordTest {
         pageQuery.setSearch(null);
         pageQuery.setSearch(null);
         pageQuery.setSort("");
         pageQuery.setSort("");
         Map<String,Object> map = new HashMap<>();
         Map<String,Object> map = new HashMap<>();
-        map.put("time","2020-05-14 13:49:11");
+        map.put("time","2020-05-14 00:00:00,2020-05-14 13:59:59");
         pageQuery.setQuery(map);
         pageQuery.setQuery(map);
 
 
-        System.out.println(moneyRecordController.my(pageQuery,47L));
+        System.out.println(moneyRecordController.my(pageQuery));
     }
     }
 }
 }

+ 21 - 3
src/test/java/com/izouma/dingdong/repo/ChatRepoTest.java

@@ -1,5 +1,6 @@
 package com.izouma.dingdong.repo;
 package com.izouma.dingdong.repo;
 
 
+import cn.hutool.core.collection.CollUtil;
 import com.izouma.dingdong.domain.Chat;
 import com.izouma.dingdong.domain.Chat;
 import org.junit.Test;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runner.RunWith;
@@ -7,10 +8,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.test.context.junit4.SpringRunner;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Set;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
+
 @RunWith(SpringRunner.class)
 @RunWith(SpringRunner.class)
 @SpringBootTest
 @SpringBootTest
 public class ChatRepoTest {
 public class ChatRepoTest {
@@ -18,7 +21,7 @@ public class ChatRepoTest {
     private ChatRepo chatRepo;
     private ChatRepo chatRepo;
 
 
     @Test
     @Test
-    public void show(){
+    public void show() {
         List<Chat> cs = chatRepo.findAllBySendUserIdAndReceiveUserId(82L, 158L);
         List<Chat> cs = chatRepo.findAllBySendUserIdAndReceiveUserId(82L, 158L);
         List<Chat> chats = chatRepo.findAllBySendUserIdAndReceiveUserId(158L, 82L);
         List<Chat> chats = chatRepo.findAllBySendUserIdAndReceiveUserId(158L, 82L);
         chats.addAll(cs);
         chats.addAll(cs);
@@ -28,13 +31,28 @@ public class ChatRepoTest {
     }
     }
 
 
     @Test
     @Test
-    public void showMy(){
+    public void showMy() {
         List<Chat> chats = chatRepo.findAllBySendUserIdOrReceiveUserId(82L, 82L);
         List<Chat> chats = chatRepo.findAllBySendUserIdOrReceiveUserId(82L, 82L);
         Set<Long> sends = chats.stream().map(Chat::getSendUserId).collect(Collectors.toSet());
         Set<Long> sends = chats.stream().map(Chat::getSendUserId).collect(Collectors.toSet());
         Set<Long> reces = chats.stream().map(Chat::getReceiveUserId).collect(Collectors.toSet());
         Set<Long> reces = chats.stream().map(Chat::getReceiveUserId).collect(Collectors.toSet());
         sends.addAll(reces);
         sends.addAll(reces);
         sends.remove(82L);
         sends.remove(82L);
-        System.out.println(sends);
+       // System.out.println(sends);
+
+        List<Chat> ch = new ArrayList<>();
+
+        sends.forEach(s -> {
+            List<Chat> c1 = chatRepo.findAllBySendUserIdAndReceiveUserId(s, 82L);
+            List<Chat> c2 = chatRepo.findAllBySendUserIdAndReceiveUserId(82L, s);
+            c1.addAll(c2);
+
+            c1.sort((a,b)->b.getId().compareTo(a.getId()));
+            //CollUtil.sort(c1,(a,b)->b.getId().compareTo(a.getId()));
+
+            ch.add(c1.get(0));
+        });
+
+        System.out.println(ch);
 
 
         //System.out.println(chatRepo.findAllBySendUserIdOrReceiveUserId(82L,82L));
         //System.out.println(chatRepo.findAllBySendUserIdOrReceiveUserId(82L,82L));
     }
     }

+ 29 - 0
src/test/java/com/izouma/dingdong/service/ChatServiceTest.java

@@ -0,0 +1,29 @@
+package com.izouma.dingdong.service;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class ChatServiceTest {
+    @Autowired
+    private ChatService chatService;
+
+    @Test
+    public void test(){
+        System.out.println(chatService.my(174L));
+    }
+
+    @Test
+    public void testShow(){
+        System.out.println(chatService.showChat(82L, 200L));
+    }
+
+    @Test
+    public void testDel(){
+        chatService.delChat(174L);
+    }
+}