Browse Source

搜同款增加useCouponLinkFirst支持

dodo hold 2 months ago
parent
commit
0299a4709c

+ 8 - 6
molilian.api/Controllers/public/ApiController.cs

@@ -86,6 +86,7 @@ namespace molilian.api.Controllers
             var oaid = form.Read("oaid", string.Empty);
             var scene = form.Read("scene", string.Empty);
             var recommand = form.Read("recommand", true);
+            var useCouponLinkFirst = form.Read("useCouponLinkFirst", true);
             var aid = form.Read("aid", 0);
 
             //验证签名
@@ -116,7 +117,7 @@ namespace molilian.api.Controllers
                 var bytes = new WebClientUtility().Request(url).ResponseBody;
                 img = Convert.ToBase64String(bytes);
             }
-            return await core.PromotionQueryAsync(img, oaid, ip, scene, recommand, false, aid);
+            return await core.PromotionQueryAsync(img, oaid, ip, scene, recommand, false, aid, useCouponLinkFirst);
         }
 
 
@@ -132,6 +133,7 @@ namespace molilian.api.Controllers
             var scene = form.Read("scene", string.Empty);
             var recommand = form.Read("recommand", true);
             var debug = form.Read("debug", false);
+            var useCouponLinkFirst = form.Read("useCouponLinkFirst", true);
             var aid = form.Read("aid", 0);
 
             int count = form.Read("count", 0);
@@ -152,7 +154,7 @@ namespace molilian.api.Controllers
             {
                 for (int i = 0; i < count; i++)
                 {
-                    _ = core.PromotionQueryAsync(img, oaid, ip, scene, recommand, debug, aid);
+                    _ = core.PromotionQueryAsync(img, oaid, ip, scene, recommand, debug, aid, useCouponLinkFirst);
                 }
                 return new APIResult(new { msg = "ok" });
             }
@@ -166,7 +168,7 @@ namespace molilian.api.Controllers
                 {
                     itemid = AlimamaPlus.ExtractItemId(itemUrl);
                     (APIResult target, PromotionQueryDTO data) = await core.PromotionQueryByItemIdAsync(itemid, oaid, ip, scene, recommand, debug, aid);
-                     
+
 
                     if (data != null)
                     {
@@ -177,16 +179,16 @@ namespace molilian.api.Controllers
                             img = Convert.ToBase64String(bytes);
                         }
                     }
-                    return await core.PromotionQueryAsync(img, oaid, ip, scene, recommand, debug, aid);
+                    return await core.PromotionQueryAsync(img, oaid, ip, scene, recommand, debug, aid, useCouponLinkFirst);
                 }
 
                 if (!string.IsNullOrEmpty(itemid))
                 {
-                    (APIResult result, PromotionQueryDTO data) = await core.PromotionQueryByItemIdAsync(itemid, oaid, ip, scene, recommand, debug, aid);
+                    (APIResult result, PromotionQueryDTO data) = await core.PromotionQueryByItemIdAsync(itemid, oaid, ip, scene, recommand, debug, aid, useCouponLinkFirst);
                     return result;
                 }
             }
-            return await core.PromotionQueryAsync(img, oaid, ip, scene, recommand, debug, aid);
+            return await core.PromotionQueryAsync(img, oaid, ip, scene, recommand, debug, aid, useCouponLinkFirst);
 
         }
 

+ 3 - 3
molilian.core/Core/aliyun/AliyunCore.cs

@@ -47,7 +47,7 @@ namespace molilian.core
             return await plus.SearchByPicAsync(base64String, pid);
         }
 
-        public async Task<PromotionQueryDTO> picSimilaritemAsync(string pic, string pid, PromotionQueryDTO result)
+        public async Task<PromotionQueryDTO> picSimilaritemAsync(string pic, string pid, PromotionQueryDTO result, bool useCouponLinkFirst = true)
         {
             var response = await plus.SearchByPicAsync(pic, pid);
             if (response == null)
@@ -74,8 +74,8 @@ namespace molilian.core
                 PromotionQueryItemDTO newItem = new()
                 {
                     itemId = item.ItemId,
-                    h5_url = string.IsNullOrEmpty(item.CouponShareUrl) ? item.Url : item.CouponShareUrl,
-                    deeplink_url = string.IsNullOrEmpty(item.DeeplinkCouponShareUrl) ? item.DeeplinkUrl : item.DeeplinkCouponShareUrl,
+                    h5_url = useCouponLinkFirst && !string.IsNullOrEmpty(item.CouponShareUrl) ? item.CouponShareUrl : item.Url,
+                    deeplink_url = useCouponLinkFirst && !string.IsNullOrEmpty(item.DeeplinkCouponShareUrl) ? item.DeeplinkCouponShareUrl : item.DeeplinkUrl,
                     userType = $"{item.UserType}",
                     shopTitle = item.ShopTitle,
                     itemName = item.Title,

+ 3 - 3
molilian.core/Core/taoke/TaokeOpenCore.cs

@@ -24,7 +24,7 @@ namespace molilian.core
             _config = TkConfigCore.Get();
         }
 
-        public async Task<(APIResult, PromotionQueryDTO)> PromotionQueryByItemIdAsync(string itemid, string oaid = "", string ip = "", string scene = "", bool recommand = true, bool debug = false, int aid = 0)
+        public async Task<(APIResult, PromotionQueryDTO)> PromotionQueryByItemIdAsync(string itemid, string oaid = "", string ip = "", string scene = "", bool recommand = true, bool debug = false, int aid = 0, bool useCouponLinkFirst = true)
         {
             PromotionQueryDTO result = new()
             {
@@ -185,7 +185,7 @@ namespace molilian.core
         }
 
 
-        public async Task<APIResult> PromotionQueryAsync(string img, string oaid = "", string ip = "", string scene = "", bool recommand = true, bool debug = false, int aid = 0)
+        public async Task<APIResult> PromotionQueryAsync(string img, string oaid = "", string ip = "", string scene = "", bool recommand = true, bool debug = false, int aid = 0, bool useCouponLinkFirst = true)
         {
             PromotionQueryDTO result = new()
             {
@@ -329,7 +329,7 @@ namespace molilian.core
                             }
 
                             var aliDelayTask = Task.Delay(1500, cts.Token);
-                            var aliRequestTask = api.picSimilaritemAsync(img, account.open_pid, result);
+                            var aliRequestTask = api.picSimilaritemAsync(img, account.open_pid, result, useCouponLinkFirst);
 
                             var aliCompletedTask = await Task.WhenAny(aliDelayTask, aliRequestTask);
                             if (aliCompletedTask == aliRequestTask)

+ 4 - 3
molilian.core/Plus/Alimama/parse.cs

@@ -237,7 +237,7 @@ namespace molilian.core
             if (result.success && "brwsimilar".Equals(request.RiskStrategy))
             {
                 // 需要搜同款才进入这个逻辑
-                result.PromotionImg = await InternalCallPromotionQuery(result.pic, request.Oaid, request.Ip);
+                result.PromotionImg = await InternalCallPromotionQuery(result.pic, request.Oaid, request.Ip, _account.useCouponLinkFirst);
                 //	"pic": "https://img.alicdn.com/i4/6000000004750/O1CN01w4wgqa1kxYS1BadZp_!!6000000004750-0-sm.jpg",
                 //result.pic
                 //result.PromotionImg[*].pic
@@ -264,7 +264,7 @@ namespace molilian.core
             return result;
         }
 
-        private async Task<List<PromotionQueryItemDTO>> InternalCallPromotionQuery(string pic, string oaid, string ip)
+        private async Task<List<PromotionQueryItemDTO>> InternalCallPromotionQuery(string pic, string oaid, string ip, bool useCouponLinkFirst)
         {
             if (string.IsNullOrWhiteSpace(pic))
             {
@@ -310,7 +310,8 @@ namespace molilian.core
                 url = targetPic,
                 oaid,
                 ip,
-                recommand = false
+                recommand = false,
+                useCouponLinkFirst
             };
 
             string post = postData.Convert2Json();