Browse Source

新注册用户含有获客链接标签发送对应欢迎语模板优惠券

zoujiajian 2 năm trước cách đây
mục cha
commit
58d04d65c7

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpCustomerAcquisitionLinkMapper.java

@@ -17,4 +17,6 @@ public interface CorpCustomerAcquisitionLinkMapper extends BaseMapper<CorpCustom
     CorpCustomerAcquisitionLink getByLinkPopularizeId(Long linkId);
 
 	List<CorpCustomerAcquisitionLink> selectActiveCodeByFollowIndx(@Param("list") List<Integer> updateFollowIndx);
+
+	List<Long> selectAcLinkCorpTemplateCouponIdsByTagIds(@Param("tagIds") List<Long> tagIds);
 }

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpUserTagMapper.java

@@ -21,4 +21,6 @@ public interface CorpUserTagMapper extends BaseMapper<CorpUserTag> {
 	List<CorpUserTagExcelData> exportUserTagDetail(@Param("tagIds") String[] tagIds, @Param("groupIds") String[] groupIds, @Param("wxCorpId") Long wxCorpId);
 
 	UserOrderDetailView countTagUser(@Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+	List<Long> getTagIdByCorpUserId(Long corpUserId);
 }

+ 10 - 1
netflix-dao/src/main/resources/mapper/CorpCustomerAcquisitionLinkMapper.xml

@@ -7,8 +7,17 @@
         select *
         from corp_customer_acquisition_link
         where user_list != '[]' and
-        <foreach collection="list" item="item" separator="OR">
+        <foreach collection="list" item="item" open="(" separator="OR" close=")">
             JSON_CONTAINS(user_list, '${item}')
         </foreach>
     </select>
+
+    <select id="selectAcLinkCorpTemplateCouponIdsByTagIds" resultType="java.lang.Long">
+        select distinct ct.coupon_id from (select msg_id from corp_customer_acquisition_link
+        where msg_id != 0 and tags != '[]' and
+        <foreach collection="tagIds" item="item" open="(" separator="OR" close=")">
+            JSON_CONTAINS(tags, '"${item}"')
+        </foreach>)s inner join corp_welcome_template ct on ct.id = s.msg_id
+        where ct.coupon_id is not null
+    </select>
 </mapper>

+ 1 - 1
netflix-dao/src/main/resources/mapper/CorpFollowActiveCodeMapper.xml

@@ -8,7 +8,7 @@
         from corp_follow_active_code
         where deleted is true
         and follow_str != '' and
-        <foreach collection="list" item="item" separator="OR">
+        <foreach collection="list" item="item" open="(" separator="OR" close=")">
             JSON_CONTAINS(follow_str, '${item}')
         </foreach>
     </select>

+ 8 - 0
netflix-dao/src/main/resources/mapper/CorpUserTagMapper.xml

@@ -76,4 +76,12 @@
         left join corp_user_follow_relation cufr on cufr.id = s.relation_id
         left join corp_user_auth ca on ca.external_userid = cufr.corp_user_id
     </select>
+
+    <select id="getTagIdByCorpUserId" resultType="java.lang.Long">
+        select distinct ct.id
+        from (select external_userid from corp_user_auth where corp_user_id = #{corpUserId} limit 1) ca
+                 inner join corp_user_follow_relation cufr on cufr.corp_user_id = ca.external_userid
+                 inner join corp_user_tag cut on cut.relation_id = cufr.id
+                 inner join corp_tag ct on ct.tag_id = cut.tag_id
+    </select>
 </mapper>

+ 13 - 4
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -19,10 +19,7 @@ import com.cyksj.config.wxlogin.WxOpenPlatYHLXLoginConfig;
 import com.cyksj.dto.UserSharedDto;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.channel.ChannelPopularizeMapper;
-import com.cyksj.mapper.corp.CorpCustomerAcquisitionLinkMapper;
-import com.cyksj.mapper.corp.CorpFollowActiveCodeMapper;
-import com.cyksj.mapper.corp.CorpUserMapper;
-import com.cyksj.mapper.corp.CorpWelcomeTemplateMapper;
+import com.cyksj.mapper.corp.*;
 import com.cyksj.mapper.manage.cps.UserDistributePopularizeMapper;
 import com.cyksj.mapper.manage.distribute.UserDistributeSharedMapper;
 import com.cyksj.mapper.market.task.UserBindDetailMapper;
@@ -108,6 +105,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
 	private final CorpUserMapper corpUserMapper;
 
+	private final CorpUserTagMapper corpUserTagMapper;
+
 	private final CorpFollowActiveCodeMapper corpFollowActiveCodeMapper;
 
 	private final CorpCustomerAcquisitionLinkMapper corpCustomerAcquisitionLinkMapper;
@@ -689,6 +688,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 					couponCommonService.sendCouponToUser(fUid, corpWelcomeTemplate.getCouponId(), 0l, 0l, 0l, channel);
 				}
 			}
+
+			//是否有对应获客链接的标签
+			List<Long> tagIds = corpUserTagMapper.getTagIdByCorpUserId(corpUser.getId());
+			if (CollUtil.isNotEmpty(tagIds)) {
+				List<Long> couponIds = corpCustomerAcquisitionLinkMapper.selectAcLinkCorpTemplateCouponIdsByTagIds(tagIds);
+				if (CollUtil.isNotEmpty(couponIds)) {
+					log.info("用户userId:{}存在获客链接标记的标签:{}", fUid, tagIds);
+					couponIds.forEach(couponId -> couponCommonService.sendCouponToUser(fUid, couponId, 0l, 0l, 0l, CouponUser.Channel.customer_link));
+				}
+			}
 		}
 	}