Commit acf2c0d5 by 陈宁

# dev user coupons server coding

parent 6e379702
......@@ -11,5 +11,9 @@ namespace Freemud.BE.Toolbox.WebApi.Model.Request
/// 手机号 / MemberId / UnionId
/// </summary>
public string Terms { get; set; }
public string StoreId { get; set; }
public string Time { get; set; }
}
}
using Dapper;
using Freemud.BE.Toolbox.WebApi.Model;
using Freemud.BE.Toolbox.WebApi.Model.Repository;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Threading.Tasks;
namespace Freemud.BE.Toolbox.WebApi.Repository.Dapper
......@@ -23,7 +19,7 @@ namespace Freemud.BE.Toolbox.WebApi.Repository.Dapper
{
using (var connection = GetConnection(env))
{
return await connection.QueryFirstAsync<UserIdentityInfo>("select top 1 u.UnionId, u.MemberId, u.Mobile from [User] u where u.Mobile = @terms or u.MemberId = @terms", new { terms });
return await connection.QueryFirstOrDefaultAsync<UserIdentityInfo>("select top 1 u.UnionId, u.MemberId, u.Mobile from [User] u where u.Mobile = @terms or u.MemberId = @terms", new { terms });
}
}
}
......
......@@ -13,6 +13,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using static Freemud.BE.Toolbox.WebApi.Model.Response.UserCardAdapter;
namespace Freemud.BE.Toolbox.WebApi.Services
{
......@@ -129,39 +130,98 @@ namespace Freemud.BE.Toolbox.WebApi.Services
var vendorCardsResponse = await fmCouponProxy.GetVendorCardCoupons(request.Env, request.Channel, userIdentityInfo.UnionId);
var userCards = new List<UserCardAdapter>();
// 麦钱包券
#region 解析麦钱包券
{
var jo = JObject.Parse(archCardsResponse.ResponseContent);
if (jo.ContainsKey("data"))
{
var data = JArray.Parse(jo["data"].ToString());
logger.LogInformation($"[GetUserCoupons] archCardsResponse.data: {jo["data"].ToString()}");
var cards = JArray.Parse(jo["data"]["card_list"].ToString());
logger.LogInformation($"[GetUserCoupons] archCardsResponse.cards: {JsonConvert.SerializeObject(cards)}");
if (cards?.Any() ?? false)
{
userCards.AddRange(cards.Select(c => new UserCardAdapter
{
CardId = c["card_id"].ToString(),
Code = c["card_code"].ToString(),
CardType = EnumCardType.ArchCard,
StartDate = $"{DateTime.Parse(c["begin_date"].ToString()):yyyy/MM/dd}",
EndDate = $"{DateTime.Parse(c["end_date"].ToString()):yyyy/MM/dd}",
//AvailableTimeDesc = c.GetAvailableTimeDesc()
}));
}
}
}
#endregion
// 微信券
#region 解析微信券
{
var jo = JObject.Parse(wechatCardsResponse.ResponseContent);
if (jo.ContainsKey("data"))
{
var data = JArray.Parse(jo["data"].ToString());
logger.LogInformation($"[GetUserCoupons] wechatCardsResponse.data: {jo["data"].ToString()}");
var cards = JArray.Parse(jo["data"]["card_list"].ToString());
logger.LogInformation($"[GetUserCoupons] wechatCardsResponse.cards: {JsonConvert.SerializeObject(cards)}");
if (cards?.Any() ?? false)
{
userCards.AddRange(cards.Select(c => new UserCardAdapter
{
CardId = c["card_id"].ToString(),
Code = c["code"].ToString(),
CardType = EnumCardType.WeChat,
StartDate = $"{DateTime.Parse(c["start_date"].ToString()):yyyy/MM/dd}",
EndDate = $"{DateTime.Parse(c["end_date"].ToString()):yyyy/MM/dd}",
//AvailableTimeDesc = c.GetAvailableTimeDesc()
}));
}
}
}
#endregion
// 商家券
#region 解析商家券
{
var jo = JObject.Parse(vendorCardsResponse.ResponseContent);
if (jo.ContainsKey("data"))
{
var data = JArray.Parse(jo["data"].ToString());
logger.LogInformation($"[GetUserCoupons] vendorCardsResponse.data: {jo["data"].ToString()}");
var cards = JArray.Parse(jo["data"]["card_list"].ToString());
logger.LogInformation($"[GetUserCoupons] vendorCardsResponse.cards: {JsonConvert.SerializeObject(cards)}");
if (cards?.Any() ?? false)
{
userCards.AddRange(cards.Select(c => new UserCardAdapter
{
CardId = c["card_id"].ToString(),
Code = c["code"].ToString(),
CardType = EnumCardType.VendorCard,
StartDate = $"{DateTime.Parse(c["begin_time"].ToString()):yyyy/MM/dd}",
EndDate = $"{DateTime.Parse(c["end_time"].ToString()):yyyy/MM/dd}",
//AvailableTimeDesc = c.GetAvailableTimeDesc()
}));
}
}
}
#endregion
result.Add(archCardsResponse);
result.Add(wechatCardsResponse);
result.Add(vendorCardsResponse);
#region 获取券码及对应商品信息
if (userCards.Any())
{
var getCouponInfoRequest = new GetCouponInfoRequest
{
Channel = request.Channel,
Env = request.Env,
StoreId = request.StoreId,
Time = request.Time,
CouponCode = string.Join(',', userCards.Select(d => d.Code).ToList())
};
var couponInfoResponse = await GetCouponInfo(getCouponInfoRequest);
result.AddRange(couponInfoResponse);
}
#endregion
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment