Skip to content
This repository was archived by the owner on Aug 19, 2023. It is now read-only.

Commit 49d43b0

Browse files
author
GardenHamster
committed
四/五星祈愿历史查询功能
1 parent 0774f1a commit 49d43b0

File tree

6 files changed

+152
-2
lines changed

6 files changed

+152
-2
lines changed

GenshinPray/Controllers/Api/PrayInfoController.cs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,55 @@ public ApiResult GetMemberAssign(string memberCode)
259259
}
260260
}
261261

262+
[HttpGet]
263+
[AuthCode]
264+
public ApiResult GetMemberPrayRecords(string memberCode)
265+
{
266+
try
267+
{
268+
checkNullParam(memberCode);
269+
var authorzation = HttpContext.Request.Headers["authorzation"];
270+
AuthorizePO authorizePO = authorizeService.GetAuthorize(authorzation);
271+
MemberPO memberInfo = memberService.GetByCode(authorizePO.Id, memberCode);
272+
if (memberInfo == null) return ApiResult.Success();
273+
List<PrayRecordDTO> allStar5List = memberGoodsService.getPrayRecords(authorizePO.Id, memberCode, YSRareType.五星, 20);
274+
List<PrayRecordDTO> armStar5List = memberGoodsService.getPrayRecords(authorizePO.Id, memberCode, YSRareType.五星, YSPondType.武器, 20);
275+
List<PrayRecordDTO> roleStar5List = memberGoodsService.getPrayRecords(authorizePO.Id, memberCode, YSRareType.五星, YSPondType.角色, 20);
276+
List<PrayRecordDTO> permStar5List = memberGoodsService.getPrayRecords(authorizePO.Id, memberCode, YSRareType.五星, YSPondType.常驻, 20);
277+
List<PrayRecordDTO> allStar4List = memberGoodsService.getPrayRecords(authorizePO.Id, memberCode, YSRareType.四星, 20);
278+
List<PrayRecordDTO> armStar4List = memberGoodsService.getPrayRecords(authorizePO.Id, memberCode, YSRareType.四星, YSPondType.武器, 20);
279+
List<PrayRecordDTO> roleStar4List = memberGoodsService.getPrayRecords(authorizePO.Id, memberCode, YSRareType.四星, YSPondType.角色, 20);
280+
List<PrayRecordDTO> permStar4List = memberGoodsService.getPrayRecords(authorizePO.Id, memberCode, YSRareType.四星, YSPondType.常驻, 20);
281+
return ApiResult.Success(new
282+
{
283+
star5 = new
284+
{
285+
arm = memberGoodsService.ChangeToPrayRecordVO(armStar5List),
286+
role = memberGoodsService.ChangeToPrayRecordVO(roleStar5List),
287+
perm = memberGoodsService.ChangeToPrayRecordVO(permStar5List),
288+
all = memberGoodsService.ChangeToPrayRecordVO(allStar5List)
289+
},
290+
star4 = new
291+
{
292+
arm = memberGoodsService.ChangeToPrayRecordVO(armStar4List),
293+
role = memberGoodsService.ChangeToPrayRecordVO(roleStar4List),
294+
perm = memberGoodsService.ChangeToPrayRecordVO(permStar4List),
295+
all = memberGoodsService.ChangeToPrayRecordVO(allStar4List)
296+
}
297+
});
298+
}
299+
catch (BaseException ex)
300+
{
301+
LogHelper.Info(ex);
302+
return ApiResult.Error(ex);
303+
}
304+
catch (Exception ex)
305+
{
306+
LogHelper.Error(ex);
307+
return ApiResult.ServerError;
308+
}
309+
}
310+
262311

263312
}
264313
}

GenshinPray/Dao/MemberGoodsDao.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public int CountByMember(int authId, string memberCode, YSPondType pondType, YSR
2525
StringBuilder sqlBuilder = new StringBuilder();
2626
sqlBuilder.Append(" select count(mg.Id) count from member_goods mg");
2727
sqlBuilder.Append(" inner join goods g on g.Id=mg.GoodsId");
28-
sqlBuilder.Append(" where mg.AuthId=@AuthId and mg.MemberCode=@MemberCode and g.RareType=@RareType and g.PondType=@PondType");
28+
sqlBuilder.Append(" where mg.AuthId=@AuthId and mg.MemberCode=@MemberCode and g.RareType=@RareType and mg.PondType=@PondType");
2929
return Db.Ado.SqlQuery<int>(sqlBuilder.ToString(), new { AuthId = authId, MemberCode = memberCode, PondType = pondType, RareType = rareType }).Single();
3030
}
3131

@@ -46,7 +46,27 @@ public List<LuckRankingDTO> getLuckRanking(int authId, int top, YSRareType rareT
4646
sqlBuilder.Append(" group by AuthId,MemberCode");
4747
sqlBuilder.Append(" ) temp2 on temp2.MemberCode=m.MemberCode");
4848
sqlBuilder.Append(" where m.AuthId=@AuthId order by temp.RareType desc,rareRate desc,temp.RareCount asc");
49-
return Db.Ado.SqlQuery<LuckRankingDTO>(sqlBuilder.ToString(), new { AuthId = authId, Top = top, RareType = (int)rareType, StartDate = startDate, EndDate = endDate });
49+
return Db.Ado.SqlQuery<LuckRankingDTO>(sqlBuilder.ToString(), new { AuthId = authId, Top = top, RareType = rareType, StartDate = startDate, EndDate = endDate });
50+
}
51+
52+
public List<PrayRecordDTO> getPrayRecords(int authId, string memberCode, YSRareType rareType, int top)
53+
{
54+
StringBuilder sqlBuilder = new StringBuilder();
55+
sqlBuilder.Append(" select mg.GoodsId,g.GoodsName,g.GoodsType,g.GoodsSubType,g.RareType,mg.PondType,mg.Cost,mg.CreateDate from member_goods mg");
56+
sqlBuilder.Append(" inner join goods g on g.Id=mg.GoodsId");
57+
sqlBuilder.Append(" where mg.AuthId=@AuthId and mg.MemberCode=@MemberCode and g.RareType=@RareType");
58+
sqlBuilder.Append(" order by mg.CreateDate desc limit @Top");
59+
return Db.Ado.SqlQuery<PrayRecordDTO>(sqlBuilder.ToString(), new { AuthId = authId, MemberCode = memberCode, RareType = rareType, Top = top });
60+
}
61+
62+
public List<PrayRecordDTO> getPrayRecords(int authId, string memberCode, YSRareType rareType, YSPondType pondType, int top)
63+
{
64+
StringBuilder sqlBuilder = new StringBuilder();
65+
sqlBuilder.Append(" select mg.GoodsId,g.GoodsName,g.GoodsType,g.GoodsSubType,g.RareType,mg.PondType,mg.Cost,mg.CreateDate from member_goods mg");
66+
sqlBuilder.Append(" inner join goods g on g.Id=mg.GoodsId");
67+
sqlBuilder.Append(" where mg.AuthId=@AuthId and mg.MemberCode=@MemberCode and g.RareType=@RareType and mg.PondType=@PondType");
68+
sqlBuilder.Append(" order by mg.CreateDate desc limit @Top");
69+
return Db.Ado.SqlQuery<PrayRecordDTO>(sqlBuilder.ToString(), new { AuthId = authId, MemberCode = memberCode, RareType = rareType, PondType = pondType, Top = top });
5070
}
5171

5272

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using GenshinPray.Type;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Threading.Tasks;
6+
7+
namespace GenshinPray.Models.DTO
8+
{
9+
public class PrayRecordDTO
10+
{
11+
public int GoodsId { get; set; }
12+
13+
public string GoodsName { get; set; }
14+
15+
public YSGoodsType GoodsType { get; set; }
16+
17+
public YSGoodsSubType GoodsSubType { get; set; }
18+
19+
public YSRareType RareType { get; set; }
20+
21+
public YSPondType PondType { get; set; }
22+
23+
public int Cost { get; set; }
24+
25+
public DateTime CreateDate { get; set; }
26+
27+
}
28+
}

GenshinPray/Models/VO/PrayRecordVO.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
6+
namespace GenshinPray.Models.VO
7+
{
8+
public class PrayRecordVO
9+
{
10+
public string GoodsName { get; set; }
11+
12+
public string GoodsType { get; set; }
13+
14+
public string GoodsSubType { get; set; }
15+
16+
public string RareType { get; set; }
17+
18+
public int Cost { get; set; }
19+
20+
public DateTime CreateDate { get; set; }
21+
22+
}
23+
}

GenshinPray/Service/BaseService.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using GenshinPray.Models;
2+
using GenshinPray.Models.DTO;
23
using GenshinPray.Models.VO;
34
using GenshinPray.Type;
45
using System;
@@ -42,5 +43,23 @@ public List<GoodsVO> ChangeToGoodsVO(List<YSGoodsItem> goodsItems)
4243
}).ToList();
4344
}
4445

46+
/// <summary>
47+
/// 将YSPrayRecord转换为GoodsVO
48+
/// </summary>
49+
/// <param name="prayRecordList"></param>
50+
/// <returns></returns>
51+
public List<PrayRecordVO> ChangeToPrayRecordVO(List<PrayRecordDTO> prayRecordList)
52+
{
53+
return prayRecordList.Select(m => new PrayRecordVO()
54+
{
55+
GoodsName = m.GoodsName,
56+
GoodsType = Enum.GetName(typeof(YSGoodsType), m.GoodsType),
57+
GoodsSubType = Enum.GetName(typeof(YSGoodsSubType), m.GoodsSubType),
58+
RareType = Enum.GetName(typeof(YSRareType), m.RareType),
59+
Cost = m.Cost,
60+
CreateDate = m.CreateDate
61+
}).ToList();
62+
}
63+
4564
}
4665
}

GenshinPray/Service/MemberGoodsService.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,17 @@ private RareRankingVO toRareRanking(LuckRankingDTO luckRankingDTO)
7979
return rareRankingVO;
8080
}
8181

82+
public List<PrayRecordDTO> getPrayRecords(int authId, string memberCode, YSRareType rareType, int top)
83+
{
84+
return memberGoodsDao.getPrayRecords(authId, memberCode, rareType, top);
85+
}
86+
87+
public List<PrayRecordDTO> getPrayRecords(int authId, string memberCode, YSRareType rareType, YSPondType pondType, int top)
88+
{
89+
return memberGoodsDao.getPrayRecords(authId, memberCode, rareType, pondType, top);
90+
}
91+
92+
8293

8394
}
8495
}

0 commit comments

Comments
 (0)