Преглед изворни кода

Merge branch 'refs/heads/test' into test-unionpay

wks пре 2 година
родитељ
комит
0c5b2db319

+ 7 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkPtlAgreementMapper.java

@@ -56,4 +56,11 @@ public interface SysUserLinkPtlAgreementMapper extends BaseMapper<SysUserLinkPtl
      *  @Description:  查询后现人员绑定的协议
      */
     Page<PtlAgreement> findPtlAgreementListByUserIdPage(@Param("page") Page<PtlAgreement> page, @Param("vo") SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/14 11:55
+     *  @Description:  通过用户id查询关联的协议
+     */
+    List<Long> findAgreeIdsByUserId(@Param("userId") String userId);
 }

+ 10 - 4
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkPtlAgreementServiceImpl.java

@@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  *  @version
@@ -74,16 +75,21 @@ public class SysUserLinkPtlAgreementServiceImpl extends ServiceImpl<SysUserLinkP
         String userId = sysUserLinkPtlAgreementAddVo.getUserId();
         List<Long> ptlAgreementIds = sysUserLinkPtlAgreementAddVo.getPtlAgreementIds();
         //删除数据重新添加
-        sysUserLinkPtlAgreementMapper.deleteByUserId(userId);
+        //sysUserLinkPtlAgreementMapper.deleteByUserId(userId);
         List<SysUserLinkPtlAgreement> addList=new ArrayList<SysUserLinkPtlAgreement>();
+
+        List<Long> ids=sysUserLinkPtlAgreementMapper.findAgreeIdsByUserId(userId);
+        List<Long> differences = ptlAgreementIds.stream()
+                .filter(i -> !ids.contains(i))
+                .collect(Collectors.toList());
         //重新添加
-        if(ptlAgreementIds!=null && ptlAgreementIds.size()>0){
-            for (Long ptlAgreementId : ptlAgreementIds) {
+        if(differences!=null && differences.size()>0){
+            for (Long ptlAgreementId : differences) {
                 SysUserLinkPtlAgreement add=new SysUserLinkPtlAgreement(userId,ptlAgreementId,user.getId(),user.getName(),new Date(),user.getId(),user.getName(),new Date());
                 addList.add(add);
             }
+            this.saveBatch(addList);
         }
-        this.saveBatch(addList);
     }
     /**
      *  @version

+ 8 - 0
src/main/resources/mapper/modules/admin/SysUserLinkPtlAgreementMapper.xml

@@ -128,4 +128,12 @@
           flag DESC,
           pl.agreement_code
     </select>
+    <select id="findAgreeIdsByUserId" resultType="java.lang.Long">
+        SELECT
+             link.ptl_agreement_id
+        FROM
+            sys_user_link_pl_agreement link
+        WHERE
+            link.user_id = #{userId}
+    </select>
 </mapper>