Commit 5b46253570e50ff1f233238c0961202d5db6caa8
1 parent
cc202318
1111
Showing
15 changed files
with
631 additions
and
3 deletions
antis-ncc-admin/src/views/storeTotalPerformanceStatistics/index.vue
| ... | ... | @@ -61,6 +61,26 @@ |
| 61 | 61 | <el-table-column prop="ItemQuantity" label="品项数量" width="100" align="right"></el-table-column> |
| 62 | 62 | <el-table-column prop="FirstOrderCount" label="首开单数量" width="100" align="right"></el-table-column> |
| 63 | 63 | <el-table-column prop="UpgradeOrderCount" label="升单数量" width="100" align="right"></el-table-column> |
| 64 | + <el-table-column prop="FirstOrderPerformance" label="首单业绩" width="120" align="right"> | |
| 65 | + <template slot-scope="scope"> | |
| 66 | + {{ formatMoney(scope.row.FirstOrderPerformance) }} | |
| 67 | + </template> | |
| 68 | + </el-table-column> | |
| 69 | + <el-table-column prop="UpgradeOrderPerformance" label="升单业绩" width="120" align="right"> | |
| 70 | + <template slot-scope="scope"> | |
| 71 | + {{ formatMoney(scope.row.UpgradeOrderPerformance) }} | |
| 72 | + </template> | |
| 73 | + </el-table-column> | |
| 74 | + <el-table-column prop="RefundAmount" label="退款业绩" width="120" align="right"> | |
| 75 | + <template slot-scope="scope"> | |
| 76 | + <span style="color: #F56C6C;">{{ formatMoney(scope.row.RefundAmount) }}</span> | |
| 77 | + </template> | |
| 78 | + </el-table-column> | |
| 79 | + <el-table-column prop="RefundCount" label="退款次数" width="100" align="right"> | |
| 80 | + <template slot-scope="scope"> | |
| 81 | + <span style="color: #F56C6C;">{{ scope.row.RefundCount || 0 }}</span> | |
| 82 | + </template> | |
| 83 | + </el-table-column> | |
| 64 | 84 | <el-table-column prop="CreateTime" label="创建时间" width="150" align="center"> |
| 65 | 85 | <template slot-scope="scope"> |
| 66 | 86 | {{ formatDateTime(scope.row.CreateTime) }} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqCardTransferLog/LqCardTransferLogCrInput.cs
0 → 100644
| 1 | +using System; | |
| 2 | +using System.ComponentModel.DataAnnotations; | |
| 3 | + | |
| 4 | +namespace NCC.Extend.Entitys.Dto.LqCardTransferLog | |
| 5 | +{ | |
| 6 | + /// <summary> | |
| 7 | + /// 转卡日志创建输入参数 | |
| 8 | + /// </summary> | |
| 9 | + public class LqCardTransferLogCrInput | |
| 10 | + { | |
| 11 | + /// <summary> | |
| 12 | + /// 退卡ID | |
| 13 | + /// </summary> | |
| 14 | + [Required(ErrorMessage = "退卡ID不能为空")] | |
| 15 | + public string refundCardId { get; set; } | |
| 16 | + | |
| 17 | + /// <summary> | |
| 18 | + /// 开卡ID | |
| 19 | + /// </summary> | |
| 20 | + [Required(ErrorMessage = "开卡ID不能为空")] | |
| 21 | + public string billingCardId { get; set; } | |
| 22 | + | |
| 23 | + /// <summary> | |
| 24 | + /// 转卡人会员ID | |
| 25 | + /// </summary> | |
| 26 | + [Required(ErrorMessage = "转卡人会员ID不能为空")] | |
| 27 | + public string transferFromMemberId { get; set; } | |
| 28 | + | |
| 29 | + /// <summary> | |
| 30 | + /// 被转卡人会员ID | |
| 31 | + /// </summary> | |
| 32 | + [Required(ErrorMessage = "被转卡人会员ID不能为空")] | |
| 33 | + public string transferToMemberId { get; set; } | |
| 34 | + | |
| 35 | + /// <summary> | |
| 36 | + /// 转卡总金额 | |
| 37 | + /// </summary> | |
| 38 | + [Required(ErrorMessage = "转卡总金额不能为空")] | |
| 39 | + [Range(0.01, double.MaxValue, ErrorMessage = "转卡总金额必须大于0")] | |
| 40 | + public decimal transferAmount { get; set; } | |
| 41 | + | |
| 42 | + /// <summary> | |
| 43 | + /// 转卡时间 | |
| 44 | + /// </summary> | |
| 45 | + [Required(ErrorMessage = "转卡时间不能为空")] | |
| 46 | + public DateTime transferTime { get; set; } | |
| 47 | + | |
| 48 | + /// <summary> | |
| 49 | + /// 操作人ID | |
| 50 | + /// </summary> | |
| 51 | + [Required(ErrorMessage = "操作人ID不能为空")] | |
| 52 | + public string operatorId { get; set; } | |
| 53 | + | |
| 54 | + /// <summary> | |
| 55 | + /// 备注信息 | |
| 56 | + /// </summary> | |
| 57 | + public string remarks { get; set; } | |
| 58 | + } | |
| 59 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqCardTransferLog/LqCardTransferLogInfoOutput.cs
0 → 100644
| 1 | +using System; | |
| 2 | + | |
| 3 | +namespace NCC.Extend.Entitys.Dto.LqCardTransferLog | |
| 4 | +{ | |
| 5 | + /// <summary> | |
| 6 | + /// 转卡日志详情输出参数 | |
| 7 | + /// </summary> | |
| 8 | + public class LqCardTransferLogInfoOutput | |
| 9 | + { | |
| 10 | + /// <summary> | |
| 11 | + /// 主键ID | |
| 12 | + /// </summary> | |
| 13 | + public string id { get; set; } | |
| 14 | + | |
| 15 | + /// <summary> | |
| 16 | + /// 退卡ID | |
| 17 | + /// </summary> | |
| 18 | + public string refundCardId { get; set; } | |
| 19 | + | |
| 20 | + /// <summary> | |
| 21 | + /// 开卡ID | |
| 22 | + /// </summary> | |
| 23 | + public string billingCardId { get; set; } | |
| 24 | + | |
| 25 | + /// <summary> | |
| 26 | + /// 转卡人会员ID | |
| 27 | + /// </summary> | |
| 28 | + public string transferFromMemberId { get; set; } | |
| 29 | + | |
| 30 | + /// <summary> | |
| 31 | + /// 转卡人姓名 | |
| 32 | + /// </summary> | |
| 33 | + public string transferFromMemberName { get; set; } | |
| 34 | + | |
| 35 | + /// <summary> | |
| 36 | + /// 被转卡人会员ID | |
| 37 | + /// </summary> | |
| 38 | + public string transferToMemberId { get; set; } | |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 被转卡人姓名 | |
| 42 | + /// </summary> | |
| 43 | + public string transferToMemberName { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 转卡总金额 | |
| 47 | + /// </summary> | |
| 48 | + public decimal transferAmount { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 转卡时间 | |
| 52 | + /// </summary> | |
| 53 | + public DateTime transferTime { get; set; } | |
| 54 | + | |
| 55 | + /// <summary> | |
| 56 | + /// 操作人ID | |
| 57 | + /// </summary> | |
| 58 | + public string operatorId { get; set; } | |
| 59 | + | |
| 60 | + /// <summary> | |
| 61 | + /// 备注信息 | |
| 62 | + /// </summary> | |
| 63 | + public string remarks { get; set; } | |
| 64 | + | |
| 65 | + /// <summary> | |
| 66 | + /// 创建时间 | |
| 67 | + /// </summary> | |
| 68 | + public DateTime? createTime { get; set; } | |
| 69 | + | |
| 70 | + /// <summary> | |
| 71 | + /// 更新时间 | |
| 72 | + /// </summary> | |
| 73 | + public DateTime? updateTime { get; set; } | |
| 74 | + | |
| 75 | + /// <summary> | |
| 76 | + /// 是否有效 | |
| 77 | + /// </summary> | |
| 78 | + public int isEffective { get; set; } | |
| 79 | + } | |
| 80 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqCardTransferLog/LqCardTransferLogListOutput.cs
0 → 100644
| 1 | +using System; | |
| 2 | + | |
| 3 | +namespace NCC.Extend.Entitys.Dto.LqCardTransferLog | |
| 4 | +{ | |
| 5 | + /// <summary> | |
| 6 | + /// 转卡日志列表输出参数 | |
| 7 | + /// </summary> | |
| 8 | + public class LqCardTransferLogListOutput | |
| 9 | + { | |
| 10 | + /// <summary> | |
| 11 | + /// 主键ID | |
| 12 | + /// </summary> | |
| 13 | + public string id { get; set; } | |
| 14 | + | |
| 15 | + /// <summary> | |
| 16 | + /// 退卡ID | |
| 17 | + /// </summary> | |
| 18 | + public string refundCardId { get; set; } | |
| 19 | + | |
| 20 | + /// <summary> | |
| 21 | + /// 开卡ID | |
| 22 | + /// </summary> | |
| 23 | + public string billingCardId { get; set; } | |
| 24 | + | |
| 25 | + /// <summary> | |
| 26 | + /// 转卡人会员ID | |
| 27 | + /// </summary> | |
| 28 | + public string transferFromMemberId { get; set; } | |
| 29 | + | |
| 30 | + /// <summary> | |
| 31 | + /// 转卡人姓名 | |
| 32 | + /// </summary> | |
| 33 | + public string transferFromMemberName { get; set; } | |
| 34 | + | |
| 35 | + /// <summary> | |
| 36 | + /// 被转卡人会员ID | |
| 37 | + /// </summary> | |
| 38 | + public string transferToMemberId { get; set; } | |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 被转卡人姓名 | |
| 42 | + /// </summary> | |
| 43 | + public string transferToMemberName { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 转卡总金额 | |
| 47 | + /// </summary> | |
| 48 | + public decimal transferAmount { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 转卡时间 | |
| 52 | + /// </summary> | |
| 53 | + public DateTime transferTime { get; set; } | |
| 54 | + | |
| 55 | + /// <summary> | |
| 56 | + /// 操作人ID | |
| 57 | + /// </summary> | |
| 58 | + public string operatorId { get; set; } | |
| 59 | + | |
| 60 | + /// <summary> | |
| 61 | + /// 备注信息 | |
| 62 | + /// </summary> | |
| 63 | + public string remarks { get; set; } | |
| 64 | + | |
| 65 | + /// <summary> | |
| 66 | + /// 创建时间 | |
| 67 | + /// </summary> | |
| 68 | + public DateTime? createTime { get; set; } | |
| 69 | + | |
| 70 | + /// <summary> | |
| 71 | + /// 更新时间 | |
| 72 | + /// </summary> | |
| 73 | + public DateTime? updateTime { get; set; } | |
| 74 | + | |
| 75 | + /// <summary> | |
| 76 | + /// 是否有效 | |
| 77 | + /// </summary> | |
| 78 | + public int isEffective { get; set; } | |
| 79 | + } | |
| 80 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqCardTransferLog/LqCardTransferLogListQueryInput.cs
0 → 100644
| 1 | +using System; | |
| 2 | +using NCC.Common.Filter; | |
| 3 | + | |
| 4 | +namespace NCC.Extend.Entitys.Dto.LqCardTransferLog | |
| 5 | +{ | |
| 6 | + /// <summary> | |
| 7 | + /// 转卡日志列表查询输入参数 | |
| 8 | + /// </summary> | |
| 9 | + public class LqCardTransferLogListQueryInput : PageInputBase | |
| 10 | + { | |
| 11 | + /// <summary> | |
| 12 | + /// 转卡人会员ID | |
| 13 | + /// </summary> | |
| 14 | + public string transferFromMemberId { get; set; } | |
| 15 | + | |
| 16 | + /// <summary> | |
| 17 | + /// 被转卡人会员ID | |
| 18 | + /// </summary> | |
| 19 | + public string transferToMemberId { get; set; } | |
| 20 | + | |
| 21 | + /// <summary> | |
| 22 | + /// 操作人ID | |
| 23 | + /// </summary> | |
| 24 | + public string operatorId { get; set; } | |
| 25 | + | |
| 26 | + /// <summary> | |
| 27 | + /// 是否有效(1:有效 0:无效) | |
| 28 | + /// </summary> | |
| 29 | + public int isEffective { get; set; } = 1; | |
| 30 | + | |
| 31 | + /// <summary> | |
| 32 | + /// 转卡开始时间 | |
| 33 | + /// </summary> | |
| 34 | + public DateTime? transferStartTime { get; set; } | |
| 35 | + | |
| 36 | + /// <summary> | |
| 37 | + /// 转卡结束时间 | |
| 38 | + /// </summary> | |
| 39 | + public DateTime? transferEndTime { get; set; } | |
| 40 | + | |
| 41 | + /// <summary> | |
| 42 | + /// 最小转卡金额 | |
| 43 | + /// </summary> | |
| 44 | + public decimal? minTransferAmount { get; set; } | |
| 45 | + | |
| 46 | + /// <summary> | |
| 47 | + /// 最大转卡金额 | |
| 48 | + /// </summary> | |
| 49 | + public decimal? maxTransferAmount { get; set; } | |
| 50 | + } | |
| 51 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqStatistics/LqDepartmentConsumePerformanceStatisticsListOutput.cs
| ... | ... | @@ -62,12 +62,23 @@ namespace NCC.Extend.Entitys.Dto.LqStatistics |
| 62 | 62 | /// </summary> |
| 63 | 63 | public decimal HeadCount { get; set; } |
| 64 | 64 | |
| 65 | + | |
| 65 | 66 | /// <summary> |
| 66 | 67 | /// 人次(日度去重到店数) |
| 67 | 68 | /// </summary> |
| 68 | 69 | public decimal PersonCount { get; set; } |
| 69 | 70 | |
| 70 | 71 | /// <summary> |
| 72 | + /// 退款业绩 | |
| 73 | + /// </summary> | |
| 74 | + public decimal RefundAmount { get; set; } | |
| 75 | + | |
| 76 | + /// <summary> | |
| 77 | + /// 退款次数 | |
| 78 | + /// </summary> | |
| 79 | + public int RefundCount { get; set; } | |
| 80 | + | |
| 81 | + /// <summary> | |
| 71 | 82 | /// 创建时间 |
| 72 | 83 | /// </summary> |
| 73 | 84 | public DateTime CreateTime { get; set; } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqStatistics/LqStoreTotalPerformanceStatisticsListOutput.cs
| ... | ... | @@ -63,6 +63,16 @@ namespace NCC.Extend.Entitys.Dto.LqStatistics |
| 63 | 63 | public int UpgradeOrderCount { get; set; } |
| 64 | 64 | |
| 65 | 65 | /// <summary> |
| 66 | + /// 退款业绩 | |
| 67 | + /// </summary> | |
| 68 | + public decimal RefundAmount { get; set; } | |
| 69 | + | |
| 70 | + /// <summary> | |
| 71 | + /// 退款次数 | |
| 72 | + /// </summary> | |
| 73 | + public int RefundCount { get; set; } | |
| 74 | + | |
| 75 | + /// <summary> | |
| 66 | 76 | /// 创建时间 |
| 67 | 77 | /// </summary> |
| 68 | 78 | public DateTime CreateTime { get; set; } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqStatisticsStoreTotalPerformance/LqStatisticsStoreTotalPerformanceInfoOutput.cs
| ... | ... | @@ -63,6 +63,26 @@ namespace NCC.Extend.Entitys.Dto.LqStatisticsStoreTotalPerformance |
| 63 | 63 | public int upgradeOrderCount { get; set; } |
| 64 | 64 | |
| 65 | 65 | /// <summary> |
| 66 | + /// 首单业绩 | |
| 67 | + /// </summary> | |
| 68 | + public decimal firstOrderPerformance { get; set; } | |
| 69 | + | |
| 70 | + /// <summary> | |
| 71 | + /// 升单业绩 | |
| 72 | + /// </summary> | |
| 73 | + public decimal upgradeOrderPerformance { get; set; } | |
| 74 | + | |
| 75 | + /// <summary> | |
| 76 | + /// 退款业绩 | |
| 77 | + /// </summary> | |
| 78 | + public decimal refundAmount { get; set; } | |
| 79 | + | |
| 80 | + /// <summary> | |
| 81 | + /// 退款次数 | |
| 82 | + /// </summary> | |
| 83 | + public int refundCount { get; set; } | |
| 84 | + | |
| 85 | + /// <summary> | |
| 66 | 86 | /// 创建时间 |
| 67 | 87 | /// </summary> |
| 68 | 88 | public DateTime? createTime { get; set; } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqStatisticsStoreTotalPerformance/LqStatisticsStoreTotalPerformanceListOutput.cs
| ... | ... | @@ -73,6 +73,16 @@ namespace NCC.Extend.Entitys.Dto.LqStatisticsStoreTotalPerformance |
| 73 | 73 | public decimal upgradeOrderPerformance { get; set; } |
| 74 | 74 | |
| 75 | 75 | /// <summary> |
| 76 | + /// 退款业绩 | |
| 77 | + /// </summary> | |
| 78 | + public decimal refundAmount { get; set; } | |
| 79 | + | |
| 80 | + /// <summary> | |
| 81 | + /// 退款次数 | |
| 82 | + /// </summary> | |
| 83 | + public int refundCount { get; set; } | |
| 84 | + | |
| 85 | + /// <summary> | |
| 76 | 86 | /// 创建时间 |
| 77 | 87 | /// </summary> |
| 78 | 88 | public DateTime? createTime { get; set; } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_card_transfer_log/LqCardTransferLogEntity.cs
0 → 100644
| 1 | +using System; | |
| 2 | +using NCC.Common.Const; | |
| 3 | +using SqlSugar; | |
| 4 | + | |
| 5 | +namespace NCC.Extend.Entitys.lq_card_transfer_log | |
| 6 | +{ | |
| 7 | + /// <summary> | |
| 8 | + /// 转卡日志 | |
| 9 | + /// </summary> | |
| 10 | + [SugarTable("lq_card_transfer_log")] | |
| 11 | + [Tenant(ClaimConst.TENANT_ID)] | |
| 12 | + public class LqCardTransferLogEntity | |
| 13 | + { | |
| 14 | + /// <summary> | |
| 15 | + /// 主键ID | |
| 16 | + /// </summary> | |
| 17 | + [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] | |
| 18 | + public string Id { get; set; } | |
| 19 | + | |
| 20 | + /// <summary> | |
| 21 | + /// 退卡ID | |
| 22 | + /// </summary> | |
| 23 | + [SugarColumn(ColumnName = "F_RefundCardId")] | |
| 24 | + public string RefundCardId { get; set; } | |
| 25 | + | |
| 26 | + /// <summary> | |
| 27 | + /// 开卡ID | |
| 28 | + /// </summary> | |
| 29 | + [SugarColumn(ColumnName = "F_BillingCardId")] | |
| 30 | + public string BillingCardId { get; set; } | |
| 31 | + | |
| 32 | + /// <summary> | |
| 33 | + /// 转卡人会员ID | |
| 34 | + /// </summary> | |
| 35 | + [SugarColumn(ColumnName = "F_TransferFromMemberId")] | |
| 36 | + public string TransferFromMemberId { get; set; } | |
| 37 | + | |
| 38 | + /// <summary> | |
| 39 | + /// 被转卡人会员ID | |
| 40 | + /// </summary> | |
| 41 | + [SugarColumn(ColumnName = "F_TransferToMemberId")] | |
| 42 | + public string TransferToMemberId { get; set; } | |
| 43 | + | |
| 44 | + /// <summary> | |
| 45 | + /// 转卡总金额 | |
| 46 | + /// </summary> | |
| 47 | + [SugarColumn(ColumnName = "F_TransferAmount")] | |
| 48 | + public decimal TransferAmount { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 转卡时间 | |
| 52 | + /// </summary> | |
| 53 | + [SugarColumn(ColumnName = "F_TransferTime")] | |
| 54 | + public DateTime TransferTime { get; set; } | |
| 55 | + | |
| 56 | + /// <summary> | |
| 57 | + /// 操作人ID | |
| 58 | + /// </summary> | |
| 59 | + [SugarColumn(ColumnName = "F_OperatorId")] | |
| 60 | + public string OperatorId { get; set; } | |
| 61 | + | |
| 62 | + | |
| 63 | + /// <summary> | |
| 64 | + /// 备注信息 | |
| 65 | + /// </summary> | |
| 66 | + [SugarColumn(ColumnName = "F_Remarks")] | |
| 67 | + public string Remarks { get; set; } | |
| 68 | + | |
| 69 | + /// <summary> | |
| 70 | + /// 创建时间 | |
| 71 | + /// </summary> | |
| 72 | + [SugarColumn(ColumnName = "F_CreateTime")] | |
| 73 | + public DateTime? CreateTime { get; set; } | |
| 74 | + | |
| 75 | + /// <summary> | |
| 76 | + /// 更新时间 | |
| 77 | + /// </summary> | |
| 78 | + [SugarColumn(ColumnName = "F_UpdateTime")] | |
| 79 | + public DateTime? UpdateTime { get; set; } | |
| 80 | + | |
| 81 | + /// <summary> | |
| 82 | + /// 是否有效 | |
| 83 | + /// </summary> | |
| 84 | + [SugarColumn(ColumnName = "F_IsEffective")] | |
| 85 | + public int IsEffective { get; set; } | |
| 86 | + } | |
| 87 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_statistics_store_total_performance/LqStatisticsStoreTotalPerformanceEntity.cs
| ... | ... | @@ -90,6 +90,18 @@ namespace NCC.Extend.Entitys.lq_statistics_store_total_performance |
| 90 | 90 | public decimal UpgradeOrderPerformance { get; set; } |
| 91 | 91 | |
| 92 | 92 | /// <summary> |
| 93 | + /// 退款业绩 | |
| 94 | + /// </summary> | |
| 95 | + [SugarColumn(ColumnName = "F_RefundAmount")] | |
| 96 | + public decimal RefundAmount { get; set; } | |
| 97 | + | |
| 98 | + /// <summary> | |
| 99 | + /// 退款次数 | |
| 100 | + /// </summary> | |
| 101 | + [SugarColumn(ColumnName = "F_RefundCount")] | |
| 102 | + public int RefundCount { get; set; } | |
| 103 | + | |
| 104 | + /// <summary> | |
| 93 | 105 | /// 创建时间 |
| 94 | 106 | /// </summary> |
| 95 | 107 | [SugarColumn(ColumnName = "F_CreateTime")] | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqCardTransferLogService.cs
0 → 100644
netcore/src/Modularity/Extend/NCC.Extend/LqCardTransferLogService.cs
0 → 100644
| 1 | +using System; | |
| 2 | +using System.Linq; | |
| 3 | +using System.Threading.Tasks; | |
| 4 | +using Microsoft.AspNetCore.Mvc; | |
| 5 | +using Microsoft.Extensions.Logging; | |
| 6 | +using NCC.Common.Core.Manager; | |
| 7 | +using NCC.Common.Filter; | |
| 8 | +using NCC.Dependency; | |
| 9 | +using NCC.DynamicApiController; | |
| 10 | +using NCC.Extend.Entitys.Dto.LqCardTransferLog; | |
| 11 | +using NCC.Extend.Entitys.lq_card_transfer_log; | |
| 12 | +using NCC.Extend.Interfaces; | |
| 13 | +using NCC.FriendlyException; | |
| 14 | +using SqlSugar; | |
| 15 | + | |
| 16 | +namespace NCC.Extend.LqCardTransferLog | |
| 17 | +{ | |
| 18 | + /// <summary> | |
| 19 | + /// 转卡日志服务 | |
| 20 | + /// </summary> | |
| 21 | + [ApiDescriptionSettings(Tag = "绿纤转卡日志服务", Name = "LqCardTransferLog", Order = 100)] | |
| 22 | + [Route("api/Extend/[controller]")] | |
| 23 | + public class LqCardTransferLogService : IDynamicApiController, ILqCardTransferLogService, ITransient | |
| 24 | + { | |
| 25 | + private readonly ISqlSugarClient _db; | |
| 26 | + private readonly IUserManager _userManager; | |
| 27 | + private readonly ILogger<LqCardTransferLogService> _logger; | |
| 28 | + | |
| 29 | + public LqCardTransferLogService(ISqlSugarClient db, IUserManager userManager, ILogger<LqCardTransferLogService> logger) | |
| 30 | + { | |
| 31 | + _db = db; | |
| 32 | + _userManager = userManager; | |
| 33 | + _logger = logger; | |
| 34 | + } | |
| 35 | + | |
| 36 | + #region 添加转卡日志 | |
| 37 | + /// <summary> | |
| 38 | + /// 添加转卡日志 | |
| 39 | + /// </summary> | |
| 40 | + /// <param name="input">转卡日志创建输入参数</param> | |
| 41 | + /// <returns>创建结果</returns> | |
| 42 | + [HttpPost("add")] | |
| 43 | + public async Task<dynamic> AddTransferLog([FromBody] LqCardTransferLogCrInput input) | |
| 44 | + { | |
| 45 | + try | |
| 46 | + { | |
| 47 | + if (input == null) | |
| 48 | + { | |
| 49 | + throw NCCException.Oh("输入参数不能为空"); | |
| 50 | + } | |
| 51 | + | |
| 52 | + var entity = new LqCardTransferLogEntity | |
| 53 | + { | |
| 54 | + Id = Guid.NewGuid().ToString(), | |
| 55 | + RefundCardId = input.refundCardId, | |
| 56 | + BillingCardId = input.billingCardId, | |
| 57 | + TransferFromMemberId = input.transferFromMemberId, | |
| 58 | + TransferToMemberId = input.transferToMemberId, | |
| 59 | + TransferAmount = input.transferAmount, | |
| 60 | + TransferTime = input.transferTime, | |
| 61 | + OperatorId = input.operatorId, | |
| 62 | + Remarks = input.remarks ?? "", | |
| 63 | + CreateTime = DateTime.Now, | |
| 64 | + IsEffective = 1 | |
| 65 | + }; | |
| 66 | + | |
| 67 | + var result = await _db.Insertable(entity).ExecuteCommandAsync(); | |
| 68 | + | |
| 69 | + return new | |
| 70 | + { | |
| 71 | + Success = true, | |
| 72 | + Message = "转卡日志创建成功", | |
| 73 | + Data = new { Id = entity.Id } | |
| 74 | + }; | |
| 75 | + } | |
| 76 | + catch (Exception ex) | |
| 77 | + { | |
| 78 | + throw NCCException.Oh($"创建转卡日志失败: {ex.Message}"); | |
| 79 | + } | |
| 80 | + } | |
| 81 | + #endregion | |
| 82 | + | |
| 83 | + #region 获取转卡日志列表 | |
| 84 | + /// <summary> | |
| 85 | + /// 获取转卡日志列表 | |
| 86 | + /// </summary> | |
| 87 | + /// <param name="input">查询输入参数</param> | |
| 88 | + /// <returns>转卡日志列表</returns> | |
| 89 | + [HttpGet("")] | |
| 90 | + public async Task<dynamic> GetList([FromQuery] LqCardTransferLogListQueryInput input) | |
| 91 | + { | |
| 92 | + try | |
| 93 | + { | |
| 94 | + var result = await _db.Queryable<LqCardTransferLogEntity>() | |
| 95 | + .WhereIF(input.isEffective != 0, x => x.IsEffective == input.isEffective) | |
| 96 | + .WhereIF(!string.IsNullOrEmpty(input.transferFromMemberId), x => x.TransferFromMemberId == input.transferFromMemberId) | |
| 97 | + .WhereIF(!string.IsNullOrEmpty(input.transferToMemberId), x => x.TransferToMemberId == input.transferToMemberId) | |
| 98 | + .WhereIF(!string.IsNullOrEmpty(input.operatorId), x => x.OperatorId == input.operatorId) | |
| 99 | + .WhereIF(input.transferStartTime.HasValue, x => x.TransferTime >= input.transferStartTime.Value) | |
| 100 | + .WhereIF(input.transferEndTime.HasValue, x => x.TransferTime <= input.transferEndTime.Value) | |
| 101 | + .WhereIF(input.minTransferAmount.HasValue, x => x.TransferAmount >= input.minTransferAmount.Value) | |
| 102 | + .WhereIF(input.maxTransferAmount.HasValue, x => x.TransferAmount <= input.maxTransferAmount.Value) | |
| 103 | + .WhereIF(!string.IsNullOrEmpty(input.keyword), x => x.Remarks.Contains(input.keyword)) | |
| 104 | + .Select(x => new LqCardTransferLogListOutput | |
| 105 | + { | |
| 106 | + id = x.Id, | |
| 107 | + refundCardId = x.RefundCardId, | |
| 108 | + billingCardId = x.BillingCardId, | |
| 109 | + transferFromMemberId = x.TransferFromMemberId, | |
| 110 | + transferToMemberId = x.TransferToMemberId, | |
| 111 | + transferAmount = x.TransferAmount, | |
| 112 | + transferTime = x.TransferTime, | |
| 113 | + operatorId = x.OperatorId, | |
| 114 | + remarks = x.Remarks, | |
| 115 | + createTime = x.CreateTime, | |
| 116 | + updateTime = x.UpdateTime, | |
| 117 | + isEffective = x.IsEffective | |
| 118 | + }) | |
| 119 | + .OrderBy(x => x.transferTime, OrderByType.Desc) | |
| 120 | + .ToPagedListAsync(input.currentPage, input.pageSize); | |
| 121 | + | |
| 122 | + return PageResult<LqCardTransferLogListOutput>.SqlSugarPageResult(result); | |
| 123 | + } | |
| 124 | + catch (Exception ex) | |
| 125 | + { | |
| 126 | + throw NCCException.Oh($"获取转卡日志列表失败: {ex.Message}"); | |
| 127 | + } | |
| 128 | + } | |
| 129 | + #endregion | |
| 130 | + } | |
| 131 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| ... | ... | @@ -44,6 +44,7 @@ using SqlSugar; |
| 44 | 44 | using Yitter.IdGenerator; |
| 45 | 45 | using NCC.Extend.Entitys.lq_package_info; |
| 46 | 46 | using NCC.Extend.Entitys.lq_mdxx; |
| 47 | +using NCC.Extend.Entitys.lq_card_transfer_log; | |
| 47 | 48 | |
| 48 | 49 | namespace NCC.Extend.LqKdKdjlb |
| 49 | 50 | { |
| ... | ... | @@ -2614,6 +2615,23 @@ namespace NCC.Extend.LqKdKdjlb |
| 2614 | 2615 | }); |
| 2615 | 2616 | } |
| 2616 | 2617 | } |
| 2618 | + //记录转卡日志 | |
| 2619 | + var transferLogEntity = new LqCardTransferLogEntity | |
| 2620 | + { | |
| 2621 | + Id = YitIdHelper.NextId().ToString(), | |
| 2622 | + RefundCardId = refundId, | |
| 2623 | + BillingCardId = billingId, | |
| 2624 | + TransferFromMemberId = input.FromMemberId, | |
| 2625 | + TransferToMemberId = input.ToMemberId, | |
| 2626 | + TransferAmount = input.TransferItems.Sum(x => x.ItemPrice * x.TransferQuantity), | |
| 2627 | + TransferTime = transferTime, | |
| 2628 | + OperatorId = userInfo.userId, | |
| 2629 | + Remarks = input.Remarks, | |
| 2630 | + CreateTime = DateTime.Now, | |
| 2631 | + IsEffective = StatusEnum.有效.GetHashCode() | |
| 2632 | + | |
| 2633 | + }; | |
| 2634 | + await _db.Insertable(transferLogEntity).ExecuteCommandAsync(); | |
| 2617 | 2635 | |
| 2618 | 2636 | await _db.Insertable(billingPxmxEntities).ExecuteCommandAsync(); |
| 2619 | 2637 | if (billingJksyjEntities.Any()) | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs
| ... | ... | @@ -2472,7 +2472,7 @@ namespace NCC.Extend.LqStatistics |
| 2472 | 2472 | /// 保存门店总业绩统计数据 |
| 2473 | 2473 | /// </summary> |
| 2474 | 2474 | /// <remarks> |
| 2475 | - /// 统计门店的总业绩、欠款金额、总单业绩、储扣总金额、品项数量、首开单数量、升单数量 | |
| 2475 | + /// 统计门店的总业绩、欠款金额、总单业绩、储扣总金额、品项数量、首开单数量、升单数量、退款业绩、退款次数 | |
| 2476 | 2476 | /// |
| 2477 | 2477 | /// 示例请求: |
| 2478 | 2478 | /// ```json |
| ... | ... | @@ -2483,6 +2483,17 @@ namespace NCC.Extend.LqStatistics |
| 2483 | 2483 | /// |
| 2484 | 2484 | /// 参数说明: |
| 2485 | 2485 | /// - statisticsMonth: 统计月份,格式为YYYYMM |
| 2486 | + /// | |
| 2487 | + /// 统计指标: | |
| 2488 | + /// - 总业绩: 开单记录的总业绩金额 | |
| 2489 | + /// - 欠款金额: 开单记录的欠款总额 | |
| 2490 | + /// - 总单业绩: 开单记录的实付业绩 | |
| 2491 | + /// - 储扣总金额: 储扣记录的金额总和 | |
| 2492 | + /// - 品项数量: 开单品项的总数量 | |
| 2493 | + /// - 首开单数量: 首次开单的数量 | |
| 2494 | + /// - 升单数量: 升单的数量 | |
| 2495 | + /// - 退款业绩: 退款记录的总金额 | |
| 2496 | + /// - 退款次数: 退款记录的总次数 | |
| 2486 | 2497 | /// </remarks> |
| 2487 | 2498 | /// <param name="input">统计输入参数</param> |
| 2488 | 2499 | /// <returns>保存结果</returns> |
| ... | ... | @@ -2515,7 +2526,9 @@ namespace NCC.Extend.LqStatistics |
| 2515 | 2526 | store_data.F_FirstOrderCount, |
| 2516 | 2527 | store_data.F_UpgradeOrderCount, |
| 2517 | 2528 | store_data.F_FirstOrderPerformance, |
| 2518 | - store_data.F_UpgradeOrderPerformance | |
| 2529 | + store_data.F_UpgradeOrderPerformance, | |
| 2530 | + COALESCE(refund_data.F_RefundAmount, 0) as F_RefundAmount, | |
| 2531 | + COALESCE(refund_data.F_RefundCount, 0) as F_RefundCount | |
| 2519 | 2532 | FROM ( |
| 2520 | 2533 | SELECT |
| 2521 | 2534 | kd.djmd as F_StoreId, |
| ... | ... | @@ -2544,7 +2557,17 @@ namespace NCC.Extend.LqStatistics |
| 2544 | 2557 | WHERE kd.F_IsEffective = 1 |
| 2545 | 2558 | AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth |
| 2546 | 2559 | GROUP BY kd.djmd |
| 2547 | - ) item_data ON store_data.F_StoreId = item_data.F_StoreId"; | |
| 2560 | + ) item_data ON store_data.F_StoreId = item_data.F_StoreId | |
| 2561 | + LEFT JOIN ( | |
| 2562 | + SELECT | |
| 2563 | + hytk.md as F_StoreId, | |
| 2564 | + COALESCE(SUM(hytk.tkje), 0) as F_RefundAmount, | |
| 2565 | + COUNT(DISTINCT hytk.F_Id) as F_RefundCount | |
| 2566 | + FROM lq_hytk_hytk hytk | |
| 2567 | + WHERE hytk.F_IsEffective = 1 | |
| 2568 | + AND DATE_FORMAT(hytk.tksj, '%Y%m') = @statisticsMonth | |
| 2569 | + GROUP BY hytk.md | |
| 2570 | + ) refund_data ON store_data.F_StoreId = refund_data.F_StoreId"; | |
| 2548 | 2571 | |
| 2549 | 2572 | var storePerformanceData = await _db.Ado.SqlQueryAsync<dynamic>(storePerformanceSql, new { statisticsMonth }); |
| 2550 | 2573 | |
| ... | ... | @@ -2563,6 +2586,8 @@ namespace NCC.Extend.LqStatistics |
| 2563 | 2586 | UpgradeOrderCount = Convert.ToInt32(data.F_UpgradeOrderCount ?? 0), |
| 2564 | 2587 | FirstOrderPerformance = Convert.ToDecimal(data.F_FirstOrderPerformance ?? 0), |
| 2565 | 2588 | UpgradeOrderPerformance = Convert.ToDecimal(data.F_UpgradeOrderPerformance ?? 0), |
| 2589 | + RefundAmount = Convert.ToDecimal(data.F_RefundAmount ?? 0), | |
| 2590 | + RefundCount = Convert.ToInt32(data.F_RefundCount ?? 0), | |
| 2566 | 2591 | CreateTime = DateTime.Now |
| 2567 | 2592 | }).ToList(); |
| 2568 | 2593 | |
| ... | ... | @@ -3302,6 +3327,8 @@ namespace NCC.Extend.LqStatistics |
| 3302 | 3327 | ItemQuantity = it.ItemQuantity, |
| 3303 | 3328 | FirstOrderCount = it.FirstOrderCount, |
| 3304 | 3329 | UpgradeOrderCount = it.UpgradeOrderCount, |
| 3330 | + RefundAmount = it.RefundAmount, | |
| 3331 | + RefundCount = it.RefundCount, | |
| 3305 | 3332 | CreateTime = it.CreateTime.HasValue ? it.CreateTime.Value : DateTime.Now |
| 3306 | 3333 | }).ToList(); |
| 3307 | 3334 | ... | ... |