licailing 5 лет назад
Родитель
Сommit
6dea68b1fe

+ 6 - 0
pom.xml

@@ -296,5 +296,11 @@
             <artifactId>alipay-easysdk</artifactId>
             <version>2.1.0</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>4.11.8.ALL</version>
+        </dependency>
     </dependencies>
 </project>

+ 2 - 2
src/main/java/com/izouma/imt/domain/Message.java

@@ -32,7 +32,7 @@ public class Message extends BaseEntity {
 
     private Boolean isReply;
 
-    private Boolean sendDel;
+    private boolean sendDel;
 
-    private Boolean receiveDel;
+    private boolean receiveDel;
 }

+ 12 - 1
src/main/java/com/izouma/imt/repo/MessageRepo.java

@@ -17,10 +17,20 @@ public interface MessageRepo extends JpaRepository<Message, Long>, JpaSpecificat
 
     List<Message> findAllBySendUserIdInAndReceiveUserIdInAndIsReplyFalse(List<Long> sendUserId, List<Long> receiveUserId);
 
-    @Query(nativeQuery = true, value = "SELECT * FROM message WHERE ((send_user_id = ?1 AND receive_user_id= ?2) " +
+    @Query(nativeQuery = true,
+            value = "SELECT id, created_at, created_by, del, modified_at, modified_by, " +
+                    "content, is_read, receive_user_id, send_user_id, is_reply, receive_del, send_del " +
+            "FROM message WHERE ((send_user_id = ?1 AND receive_user_id= ?2) " +
             "OR (send_user_id = ?2 AND receive_user_id= ?1)) AND del = 0")
     List<Message> findAllBySendUserIdAndReceiveUserId(Long sendUserId, Long receiveUserId);
 
+    @Query(nativeQuery = true,
+            value = "SELECT id, created_at, created_by, del, modified_at, modified_by, " +
+                    "content, is_read, receive_user_id, send_user_id, is_reply, receive_del, send_del " +
+                    "FROM message WHERE ((send_user_id = ?1 AND receive_user_id= ?2) " +
+                    "OR (send_user_id = ?2 AND receive_user_id= ?1)) AND del = 0 limit 0,1")
+    Message findFirstBySendUserIdAndReceiveUserId(Long sendUserId, Long receiveUserId);
+
     List<Message> findAllBySendUserIdOrReceiveUserId(Long sendUserId, Long receiveUserId);
 
     List<Message> findAllByReceiveUserId(Long receiveUserId);
@@ -33,4 +43,5 @@ public interface MessageRepo extends JpaRepository<Message, Long>, JpaSpecificat
     void updateIsRead(Long sendUserId, Long receiveUserId);
 
     List<Message> findAllByReceiveUserIdAndIsReadFalse(Long receiveUserId);
+
 }

+ 33 - 5
src/main/java/com/izouma/imt/service/MessageService.java

@@ -43,6 +43,7 @@ public class MessageService {
         if (CollUtil.isEmpty(messages)) {
             return null;
         }
+
         //发送
         Set<Long> sends = messages.stream()
                 .filter(message -> userId.equals(message.getSendUserId()))
@@ -60,12 +61,18 @@ public class MessageService {
                 .collect(Collectors.toMap(User::getId, user -> user));
 
         List<MessageVO> vos = new ArrayList<>();
-        sends.forEach(sendId -> {
+        for (Long sendId : sends) {
             List<Message> collect = messages.stream()
                     .filter(message -> sendId.equals(message.getReceiveUserId()) || sendId.equals(message.getSendUserId()))
                     .collect(Collectors.toList());
             Message message1 = collect.get(collect.size() - 1);
-
+            Message message2 = collect.get(0);
+            if (userId.equals(message2.getSendUserId()) && message2.isSendDel()) {
+                continue;
+            }
+            if (userId.equals(message2.getReceiveUserId()) && message2.isReceiveDel()) {
+                continue;
+            }
             Long count = collect.stream()
                     .filter(message -> !message.getIsRead() && userId.equals(message.getReceiveUserId()))
                     .count();
@@ -82,7 +89,7 @@ public class MessageService {
                 vo.setOtherName(user.getChCompanyName());
             }
             vos.add(vo);
-        });
+        }
         return vos;
     }
 
@@ -151,6 +158,7 @@ public class MessageService {
                         .isRead(false)
                         .isReply(false)
                         .build());
+        this.show(demandSteward.getUserId(), admin.getId());
     }
 
     /*
@@ -174,9 +182,29 @@ public class MessageService {
     }
 
     /*
-    删除聊天记录
+    删除聊天记录对话框
      */
-    public void del() {
+    public void delBox(Long userId, Long otherUserId) {
+        Message message = messageRepo.findFirstBySendUserIdAndReceiveUserId(userId, otherUserId);
+        if (ObjectUtil.isEmpty(message)) {
+            return;
+        }
+        message.setReceiveDel(true);
+        if (userId.equals(message.getSendUserId())) {
+            message.setSendDel(true);
+        }
+        messageRepo.save(message);
+    }
 
+    /*
+    有聊天就继续显示
+     */
+    public void show(Long userId, Long otherUserId) {
+        Message message = messageRepo.findFirstBySendUserIdAndReceiveUserId(userId, otherUserId);
+        if (message.isSendDel() || message.isReceiveDel()) {
+            message.setReceiveDel(false);
+            message.setReceiveDel(false);
+            messageRepo.save(message);
+        }
     }
 }

+ 15 - 8
src/main/java/com/izouma/imt/service/table/AdvisoryFormService.java

@@ -21,6 +21,7 @@ import com.izouma.imt.repo.UserRepo;
 import com.izouma.imt.repo.table.AdvisoryFormRepo;
 import com.izouma.imt.repo.vendor.ProductRepo;
 import com.izouma.imt.repo.vendor.VendorInfoRepo;
+import com.izouma.imt.service.MessageService;
 import com.izouma.imt.utils.JpaUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
@@ -34,11 +35,12 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class AdvisoryFormService {
 
-    private AdvisoryFormRepo advisoryFormRepo;
-    private ProductRepo      productRepo;
-    private VendorInfoRepo   vendorInfoRepo;
-    private MessageRepo      messageRepo;
-    private UserRepo         userRepo;
+    private final AdvisoryFormRepo advisoryFormRepo;
+    private final ProductRepo      productRepo;
+    private final VendorInfoRepo   vendorInfoRepo;
+    private final MessageRepo      messageRepo;
+    private final UserRepo         userRepo;
+    private final MessageService   messageService;
 
     public Page<AdvisoryForm> all(PageQuery pageQuery) {
         return advisoryFormRepo.findAll(JpaUtils.toSpecification(pageQuery, AdvisoryForm.class), JpaUtils.toPageRequest(pageQuery));
@@ -109,8 +111,8 @@ public class AdvisoryFormService {
             advisoryFormRepo.save(form);
             String str = JSON.toJSONString(productRepo.findAllById(form.getProductIds()));
             List<ProductSimpleDTO> list = JSON.parseArray(str, ProductSimpleDTO.class);
-            formMap.put("artifact",form.getArtifact());
-            formMap.put("problems",form.getOtherProblems());
+            formMap.put("artifact", form.getArtifact());
+            formMap.put("problems", form.getOtherProblems());
             formMap.put("products", list);
             Message message = Message.builder()
                     .isRead(false)
@@ -119,11 +121,16 @@ public class AdvisoryFormService {
                     .content("您好,我对贵公司产品感兴趣")
                     .build();
 
+
             vendorInfoRepo.findById(form.getVendorInfoId())
-                    .ifPresent(vendor -> message.setReceiveUserId(vendor.getUserId()));
+                    .ifPresent(vendor -> {
+                        message.setReceiveUserId(vendor.getUserId());
+                        messageService.show(form.getUserId(), vendor.getUserId());
+                    });
 
             message.setContent(JSONObject.toJSONString(formMap));
             messageRepo.save(message);
+
         });
     }
 

+ 8 - 5
src/main/java/com/izouma/imt/service/table/EnterpriseClaimService.java

@@ -12,6 +12,7 @@ import com.izouma.imt.repo.MessageRepo;
 import com.izouma.imt.repo.UserRepo;
 import com.izouma.imt.repo.table.EnterpriseClaimRepo;
 import com.izouma.imt.repo.vendor.VendorInfoRepo;
+import com.izouma.imt.service.MessageService;
 import com.izouma.imt.utils.JpaUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.RandomStringUtils;
@@ -24,10 +25,11 @@ import java.util.Map;
 @AllArgsConstructor
 public class EnterpriseClaimService {
 
-    private EnterpriseClaimRepo enterpriseClaimRepo;
-    private VendorInfoRepo      vendorInfoRepo;
-    private UserRepo            userRepo;
-    private MessageRepo         messageRepo;
+    private final EnterpriseClaimRepo enterpriseClaimRepo;
+    private final VendorInfoRepo      vendorInfoRepo;
+    private final UserRepo            userRepo;
+    private final MessageRepo         messageRepo;
+    private final MessageService      messageService;
 
     public Page<EnterpriseClaim> all(PageQuery pageQuery) {
         return enterpriseClaimRepo.findAll(JpaUtils.toSpecification(pageQuery, EnterpriseClaim.class), JpaUtils.toPageRequest(pageQuery));
@@ -39,7 +41,7 @@ public class EnterpriseClaimService {
     public EnterpriseClaim claim(EnterpriseClaim claim) {
         VendorInfo vendorInfo = vendorInfoRepo.findById(claim.getVendorId()).orElseThrow(new BusinessException("无企业"));
 
-        if (claim.getUserId().equals(vendorInfo.getUserId())){
+        if (claim.getUserId().equals(vendorInfo.getUserId())) {
             throw new BusinessException("已绑定该企业,无须认领");
         }
         Map formMap = JSON.parseObject(JSON.toJSONString(claim), Map.class);
@@ -54,6 +56,7 @@ public class EnterpriseClaimService {
                         .isRead(false)
                         .isReply(false)
                         .build());
+        messageService.show(claim.getUserId(), vendorInfo.getUserId());
         return enterpriseClaimRepo.save(claim);
 
     }

+ 4 - 3
src/main/java/com/izouma/imt/web/MessageController.java

@@ -4,7 +4,6 @@ import cn.hutool.core.util.ObjectUtil;
 import com.izouma.imt.domain.Message;
 import com.izouma.imt.dto.MessageDTO;
 import com.izouma.imt.dto.MessageVO;
-import com.izouma.imt.enums.AdvisoryType;
 import com.izouma.imt.service.MessageService;
 import com.izouma.imt.dto.PageQuery;
 import com.izouma.imt.exception.BusinessException;
@@ -15,7 +14,6 @@ import com.izouma.imt.utils.excel.ExcelUtils;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -42,7 +40,10 @@ public class MessageController extends BaseController {
         }
         record.setIsRead(false);
         record.setIsReply(false);
-        return messageRepo.save(record);
+        Message save = messageRepo.save(record);
+
+        messageService.show(record.getSendUserId(),record.getReceiveUserId());
+        return save;
     }
 
 

+ 6 - 0
src/main/resources/application.yaml

@@ -90,6 +90,12 @@ aliyun:
     oss-end-point: oss-cn-hangzhou.aliyuncs.com
     oss-bucket-name: imttech
     oss-domain: https://imttech.oss-cn-hangzhou.aliyuncs.com
+alipay:
+    app-id: 2021001113615624
+    gateway: https://openapi.alipay.com/gateway.do
+    private-key: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDJMeb9J/kdEMFXzRS4zaV1m6GLA2wee9/cXnEuII+DTBvS/elGPxQjNfnGtCPITscoSa7t3XBJNHIhHD8dJLnNV3+XmekGrzWVJSGleX4z93X2+2kVeTcj+KPfZX3C3HaxXtU19c79HLbedpDUiap0Lq+W6nuIRJBwksBiY61OitIuyxZQFrxJWxfszeU2nTWgHSi0Zi0FAHVsBYcWyzbcjHIouiYGT8YYwZDE+W31UQHMWiJDuoeV7IX5F4sIropdYF28XlApBgmBW7ChKEznaw9/IG7mo+VjH5Ut9hQM7UMnVCSB9vI+yHfoHxp40CcsYdChz16KOsdZGPm8k+3dAgMBAAECggEABzLy6fIJNuIHmQWsjSRGnFuyPxAjST/zdaYndJgTqoYJpNYTB8FwDgZ7ZoHBmgQ/mhBw4u/+eZAX2VlyZK+Qumk8FoeaT/Pq/egzOQGM430iSnEahHsu3umhq3etNVDAKn6TMHgYLPRfEry5V/GJGNkmzUacnvadGHoXyi144QuEUZAY34UlA4c62guvvtgiOc42nLcu4OnauQeMgdPPB2E9dYyQM/xOmbDRSscSwKT4cyby0q2ymDW5AEUM8fxqE9rQvc9L2piQfbibSE191ITZCq05lEc91NDBuAQTUnEUHay9uUjSRB70ydjMqNZbwLk9G0TzOb5NoytJKKuofQKBgQDtsXgmcCiawzx80YSg+uSsfvSI234tMe9L9Zr4b94ukpPDRDZmWG8QQSyRHfgIcoSnGXd2RSIZVRJoT0dF02O34X2zGbgtf0SGjJiyLtApQ9oYWpjxDhYW9OVio97QiQKO3aES3o4GVRZboJjyauZ0ILi1q/6tVEgkOy5sMA1GdwKBgQDYsM5b4lR5AOhOxIw1p+uCehVBiJSjkQyd2UsO4kdwhjP6rbWqcMwDdgyKOzdghR78CU2o3o1f9l1QNYskrAc9cIsoVEMME7Z53Suvow7faFKtnXVza4OkSQu+FN3N4mm3JzfGMzv+QmzoVjKWWqgGVQXO0HkxvEbDtOeRz68/SwKBgQCGIrijOHgxnivsZHBsSCn0DlEBSpyR9LQOMbQar0a7EYzBjSUF7LIAgkccPcVTPw0NH5oC7FCp6xBQPS0Dgp+rjVzaTZFaW4/YPk+Nfk2Ke/f/9mCI6GIe4mTwnXmIRUlkRj4339BWUn4jhyXI5/rVXgHexAkc14s+pwczlopnUQKBgQC6drKsuL8t/QzqsxFgHqZ3eayO3wPhGLE9p72CCk+lUaarAQ4Bo9y64bt6u+g0Q3ldMnhEZ3ZKbIrxuZGJtgro4M6unouvecsdZKfyFKN4taHnykZGUu9N0JmtMPGI+Fs2AyZohLAMZIapC3uujEZoZIOB6z1PAg/22tYmUAwirwKBgQDPoyqtZ5gn5NBosCl000M+ExwihLBFGMD1jA9vumgQxLz27AdxwFNSCjdBBiPe9FbpF6v7bK/96Li2PG9x7KHoKkVXqTNG6qP9A5wy/izWicJybISryPToe0yMRtUZGLqZACMb44l0fS7URXX+qfyXte989adTvNAWQZ6lYDZkLw==
+    app-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTHm/Sf5HRDBV80UuM2ldZuhiwNsHnvf3F5xLiCPg0wb0v3pRj8UIzX5xrQjyE7HKEmu7d1wSTRyIRw/HSS5zVd/l5npBq81lSUhpXl+M/d19vtpFXk3I/ij32V9wtx2sV7VNfXO/Ry23naQ1ImqdC6vlup7iESQcJLAYmOtTorSLssWUBa8SVsX7M3lNp01oB0otGYtBQB1bAWHFss23IxyKLomBk/GGMGQxPlt9VEBzFoiQ7qHleyF+ReLCK6KXWBdvF5QKQYJgVuwoShM52sPfyBu5qPlYx+VLfYUDO1DJ1QkgfbyPsh36B8aeNAnLGHQoc9eijrHWRj5vJPt3QIDAQAB
+    ali-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhDIyIzI6sD/0XxeEKy/QSQrgIS6al87y7+32/J4H21QrTqQ2tA5FIhIGtUu36xXOsx0qW3LAq87OryxnwUqR7fAstqkpxsVTWeWx8iCCujlQkXZY2/g4q/hzcLk6h5CIzRqk3Y/Xtkt8ZgNAxbSMvF0r9+znMX41T3ciLKiViwnsUAzwlMpeyEoYg697TlR0XHPFMH1YMgM1nsWKMkxjBeOq0UfDnM4/8g5uHUCXXGyVNQOwsccicHgQsALumN6I7Mg25LH+/+erA9/sPMFtVC2eShDOR7udfI2hAvPfW7fQYenpxL5Ge8tNr/oy0YeKBY9jjQAFpEbWcXMYvZKQlQIDAQAB
 general:
     host: http://www.imttech.cn
 baidu:

+ 1 - 0
src/main/vue/src/views/back/Parameters.vue

@@ -143,6 +143,7 @@ export default {
                 parentId: node.data.id,
                 enName: '',
                 chName: '',
+                productCategoryId: node.data.productCategoryId,
                 code: null
             };
             this.code = '';

+ 7 - 2
src/test/java/com/izouma/imt/service/MessageServiceTest.java

@@ -31,13 +31,13 @@ public class MessageServiceTest {
 
     @Test
     public void my() {
-        List<MessageVO> my = messageService.my(1283L);
+        List<MessageVO> my = messageService.my(21313L);
         my.forEach(System.out::println);
     }
 
 //    @Test
 //    public void rely() {
-//        messageService.reply(29L, "需求?", 109L);
+//
 //    }
 
     @Test
@@ -76,4 +76,9 @@ public class MessageServiceTest {
 //        System.out.println(JSON.toJSONString(map));
         System.out.println(JSONObject.toJSONString(map));
     }
+
+    @Test
+    public void test4() {
+        messageService.delBox(54L, 21313L);
+    }
 }