Commit f84588f8e182cb0eb001e0fa1f80edb70c56e233
1 parent
5652f5e0
feat: add remaining rights range filter and reset functionality
- Introduced a new filter for remaining rights range in the member portrait dialog and query input DTO. - Implemented a resetData method to clear all data when switching members to prevent displaying stale information. - Updated the fetchData method to clear lists upon member change. - Enhanced the LqKhxxService to handle remaining rights range in queries. - Improved the layout of the search form in the lqKhxx view for better usability.
Showing
5 changed files
with
139 additions
and
7 deletions
antis-ncc-admin/src/components/member-portrait-dialog.vue
| @@ -431,12 +431,35 @@ export default { | @@ -431,12 +431,35 @@ export default { | ||
| 431 | } | 431 | } |
| 432 | }, | 432 | }, |
| 433 | methods: { | 433 | methods: { |
| 434 | + /** 重置所有数据,避免二次进入时显示旧数据 */ | ||
| 435 | + resetData() { | ||
| 436 | + this.baseInfo = {} | ||
| 437 | + this.behaviorSummary = {} | ||
| 438 | + this.remainingItems = [] | ||
| 439 | + this.monthlyTrend = [] | ||
| 440 | + this.consumptionAnalysis = null | ||
| 441 | + this.billingList = [] | ||
| 442 | + this.billingPagination = { pageIndex: 1, pageSize: 10, total: 0 } | ||
| 443 | + this.consumeList = [] | ||
| 444 | + this.consumePagination = { pageIndex: 1, pageSize: 10, total: 0 } | ||
| 445 | + this.refundList = [] | ||
| 446 | + this.refundPagination = { pageIndex: 1, pageSize: 10, total: 0 } | ||
| 447 | + this.activeTab = 'overview' | ||
| 448 | + }, | ||
| 434 | async fetchData() { | 449 | async fetchData() { |
| 435 | if (!this.memberId) { | 450 | if (!this.memberId) { |
| 436 | this.$message.warning('会员ID不能为空') | 451 | this.$message.warning('会员ID不能为空') |
| 437 | return | 452 | return |
| 438 | } | 453 | } |
| 439 | 454 | ||
| 455 | + // 切换会员时清空列表数据,避免显示上一次的列表 | ||
| 456 | + this.billingList = [] | ||
| 457 | + this.billingPagination = { pageIndex: 1, pageSize: 10, total: 0 } | ||
| 458 | + this.consumeList = [] | ||
| 459 | + this.consumePagination = { pageIndex: 1, pageSize: 10, total: 0 } | ||
| 460 | + this.refundList = [] | ||
| 461 | + this.refundPagination = { pageIndex: 1, pageSize: 10, total: 0 } | ||
| 462 | + | ||
| 440 | this.loading = true | 463 | this.loading = true |
| 441 | try { | 464 | try { |
| 442 | const res = await request({ | 465 | const res = await request({ |
| @@ -715,6 +738,7 @@ export default { | @@ -715,6 +738,7 @@ export default { | ||
| 715 | this.trendChart.dispose() | 738 | this.trendChart.dispose() |
| 716 | this.trendChart = null | 739 | this.trendChart = null |
| 717 | } | 740 | } |
| 741 | + this.resetData() | ||
| 718 | this.$emit('update:visible', false) | 742 | this.$emit('update:visible', false) |
| 719 | this.$emit('closed') | 743 | this.$emit('closed') |
| 720 | } | 744 | } |
antis-ncc-admin/src/views/lqKhxx/index.vue
| 1 | -<template> | 1 | +<template> |
| 2 | <div class="NCC-common-layout"> | 2 | <div class="NCC-common-layout"> |
| 3 | <div class="NCC-common-layout-center"> | 3 | <div class="NCC-common-layout-center"> |
| 4 | <!-- 现代化筛选卡片 --> | 4 | <!-- 现代化筛选卡片 --> |
| @@ -80,7 +80,7 @@ | @@ -80,7 +80,7 @@ | ||
| 80 | </el-col> | 80 | </el-col> |
| 81 | </el-row> | 81 | </el-row> |
| 82 | <el-row :gutter="16" class="search-row search-row-3"> | 82 | <el-row :gutter="16" class="search-row search-row-3"> |
| 83 | - <el-col :span="5"> | 83 | + <el-col :span="6"> |
| 84 | <el-form-item label="进店渠道"> | 84 | <el-form-item label="进店渠道"> |
| 85 | <el-select v-model="query.jdqd" placeholder="请选择渠道" clearable filterable | 85 | <el-select v-model="query.jdqd" placeholder="请选择渠道" clearable filterable |
| 86 | style="width: 100%"> | 86 | style="width: 100%"> |
| @@ -89,7 +89,7 @@ | @@ -89,7 +89,7 @@ | ||
| 89 | </el-select> | 89 | </el-select> |
| 90 | </el-form-item> | 90 | </el-form-item> |
| 91 | </el-col> | 91 | </el-col> |
| 92 | - <el-col :span="5"> | 92 | + <el-col :span="6"> |
| 93 | <el-form-item label="沉睡天数"> | 93 | <el-form-item label="沉睡天数"> |
| 94 | <el-select v-model="query.sleepDaysRange" placeholder="请选择天数范围" clearable | 94 | <el-select v-model="query.sleepDaysRange" placeholder="请选择天数范围" clearable |
| 95 | style="width: 100%"> | 95 | style="width: 100%"> |
| @@ -98,7 +98,18 @@ | @@ -98,7 +98,18 @@ | ||
| 98 | </el-select> | 98 | </el-select> |
| 99 | </el-form-item> | 99 | </el-form-item> |
| 100 | </el-col> | 100 | </el-col> |
| 101 | - <el-col :span="5"> | 101 | + <el-col :span="6"> |
| 102 | + <el-form-item label="剩余权益"> | ||
| 103 | + <div class="remaining-rights-range"> | ||
| 104 | + <el-input v-model.number="query.remainingRightsMin" placeholder="最小(元)" | ||
| 105 | + type="number" clearable style="flex: 1" /> | ||
| 106 | + <span class="range-sep">-</span> | ||
| 107 | + <el-input v-model.number="query.remainingRightsMax" placeholder="最大(元)" | ||
| 108 | + type="number" clearable style="flex: 1" /> | ||
| 109 | + </div> | ||
| 110 | + </el-form-item> | ||
| 111 | + </el-col> | ||
| 112 | + <el-col :span="6"> | ||
| 102 | <el-form-item label="注册时间"> | 113 | <el-form-item label="注册时间"> |
| 103 | <el-date-picker v-model="query.zcsj" type="daterange" value-format="timestamp" | 114 | <el-date-picker v-model="query.zcsj" type="daterange" value-format="timestamp" |
| 104 | format="yyyy-MM-dd" start-placeholder="开始" end-placeholder="结束" | 115 | format="yyyy-MM-dd" start-placeholder="开始" end-placeholder="结束" |
| @@ -106,7 +117,9 @@ | @@ -106,7 +117,9 @@ | ||
| 106 | </el-date-picker> | 117 | </el-date-picker> |
| 107 | </el-form-item> | 118 | </el-form-item> |
| 108 | </el-col> | 119 | </el-col> |
| 109 | - <el-col :span="5"> | 120 | + </el-row> |
| 121 | + <el-row :gutter="16" class="search-row search-row-4"> | ||
| 122 | + <el-col :span="6"> | ||
| 110 | <el-form-item label="出生日期"> | 123 | <el-form-item label="出生日期"> |
| 111 | <el-date-picker v-model="query.yanglsr" type="daterange" value-format="timestamp" | 124 | <el-date-picker v-model="query.yanglsr" type="daterange" value-format="timestamp" |
| 112 | format="yyyy-MM-dd" start-placeholder="开始" end-placeholder="结束" | 125 | format="yyyy-MM-dd" start-placeholder="开始" end-placeholder="结束" |
| @@ -528,6 +541,8 @@ export default { | @@ -528,6 +541,8 @@ export default { | ||
| 528 | ml: undefined, | 541 | ml: undefined, |
| 529 | consumeLevel: undefined, // 消费等级 | 542 | consumeLevel: undefined, // 消费等级 |
| 530 | sleepDaysRange: undefined, // 沉睡天数范围 | 543 | sleepDaysRange: undefined, // 沉睡天数范围 |
| 544 | + remainingRightsMin: undefined, // 剩余权益最小值(元) | ||
| 545 | + remainingRightsMax: undefined, // 剩余权益最大值(元) | ||
| 531 | }, | 546 | }, |
| 532 | list: [], | 547 | list: [], |
| 533 | listLoading: true, | 548 | listLoading: true, |
| @@ -745,6 +760,15 @@ export default { | @@ -745,6 +760,15 @@ export default { | ||
| 745 | } | 760 | } |
| 746 | } | 761 | } |
| 747 | 762 | ||
| 763 | + // 组装剩余权益范围为 "min,max" 格式(支持自定义输入) | ||
| 764 | + const hasMin = _query.remainingRightsMin != null && _query.remainingRightsMin !== '' | ||
| 765 | + const hasMax = _query.remainingRightsMax != null && _query.remainingRightsMax !== '' | ||
| 766 | + if (hasMin || hasMax) { | ||
| 767 | + const min = hasMin ? Number(_query.remainingRightsMin) : 0 | ||
| 768 | + const max = hasMax ? Number(_query.remainingRightsMax) : 999999999 | ||
| 769 | + _query.remainingRightsRange = `${min},${max}` | ||
| 770 | + } | ||
| 771 | + | ||
| 748 | let query = {} | 772 | let query = {} |
| 749 | for (let key in _query) { | 773 | for (let key in _query) { |
| 750 | if (Array.isArray(_query[key])) { | 774 | if (Array.isArray(_query[key])) { |
| @@ -837,6 +861,15 @@ export default { | @@ -837,6 +861,15 @@ export default { | ||
| 837 | } | 861 | } |
| 838 | } | 862 | } |
| 839 | 863 | ||
| 864 | + // 组装剩余权益范围为 "min,max" 格式(支持自定义输入) | ||
| 865 | + const hasMin = query.remainingRightsMin != null && query.remainingRightsMin !== '' | ||
| 866 | + const hasMax = query.remainingRightsMax != null && query.remainingRightsMax !== '' | ||
| 867 | + if (hasMin || hasMax) { | ||
| 868 | + const min = hasMin ? Number(query.remainingRightsMin) : 0 | ||
| 869 | + const max = hasMax ? Number(query.remainingRightsMax) : 999999999 | ||
| 870 | + query.remainingRightsRange = `${min},${max}` | ||
| 871 | + } | ||
| 872 | + | ||
| 840 | request({ | 873 | request({ |
| 841 | url: `/api/Extend/LqKhxx/Actions/Export`, | 874 | url: `/api/Extend/LqKhxx/Actions/Export`, |
| 842 | method: 'GET', | 875 | method: 'GET', |
| @@ -860,6 +893,15 @@ export default { | @@ -860,6 +893,15 @@ export default { | ||
| 860 | } | 893 | } |
| 861 | } | 894 | } |
| 862 | 895 | ||
| 896 | + // 组装剩余权益范围为 "min,max" 格式(支持自定义输入) | ||
| 897 | + const hasMinExp = query.remainingRightsMin != null && query.remainingRightsMin !== '' | ||
| 898 | + const hasMaxExp = query.remainingRightsMax != null && query.remainingRightsMax !== '' | ||
| 899 | + if (hasMinExp || hasMaxExp) { | ||
| 900 | + const min = hasMinExp ? Number(query.remainingRightsMin) : 0 | ||
| 901 | + const max = hasMaxExp ? Number(query.remainingRightsMax) : 999999999 | ||
| 902 | + query.remainingRightsRange = `${min},${max}` | ||
| 903 | + } | ||
| 904 | + | ||
| 863 | // 处理数组参数 | 905 | // 处理数组参数 |
| 864 | let exportQuery = {} | 906 | let exportQuery = {} |
| 865 | for (let key in query) { | 907 | for (let key in query) { |
| @@ -2290,6 +2332,7 @@ export default { | @@ -2290,6 +2332,7 @@ export default { | ||
| 2290 | .search-row { | 2332 | .search-row { |
| 2291 | margin-bottom: 0; | 2333 | margin-bottom: 0; |
| 2292 | transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1); | 2334 | transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| 2335 | + row-gap: 16px; | ||
| 2293 | 2336 | ||
| 2294 | .el-col { | 2337 | .el-col { |
| 2295 | display: flex; | 2338 | display: flex; |
| @@ -2373,6 +2416,7 @@ export default { | @@ -2373,6 +2416,7 @@ export default { | ||
| 2373 | opacity: 1; | 2416 | opacity: 1; |
| 2374 | transform: translateY(0); | 2417 | transform: translateY(0); |
| 2375 | margin-bottom: 16px; | 2418 | margin-bottom: 16px; |
| 2419 | + row-gap: 16px; | ||
| 2376 | 2420 | ||
| 2377 | &:last-child { | 2421 | &:last-child { |
| 2378 | margin-bottom: 0; | 2422 | margin-bottom: 0; |
| @@ -2575,6 +2619,23 @@ export default { | @@ -2575,6 +2619,23 @@ export default { | ||
| 2575 | } | 2619 | } |
| 2576 | } | 2620 | } |
| 2577 | 2621 | ||
| 2622 | + .remaining-rights-range { | ||
| 2623 | + display: flex; | ||
| 2624 | + align-items: center; | ||
| 2625 | + gap: 8px; | ||
| 2626 | + width: 100%; | ||
| 2627 | + | ||
| 2628 | + .range-sep { | ||
| 2629 | + color: #909399; | ||
| 2630 | + font-size: 14px; | ||
| 2631 | + flex-shrink: 0; | ||
| 2632 | + } | ||
| 2633 | + | ||
| 2634 | + ::v-deep .el-input__inner { | ||
| 2635 | + text-align: center; | ||
| 2636 | + } | ||
| 2637 | + } | ||
| 2638 | + | ||
| 2578 | .search-actions-inline { | 2639 | .search-actions-inline { |
| 2579 | display: flex; | 2640 | display: flex; |
| 2580 | align-items: center; | 2641 | align-items: center; |
docs/美业系统升级项目需求拆分表.xlsx
No preview for this file type
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListQueryInput.cs
| 1 | -using System.Collections.Generic; | 1 | +using System.Collections.Generic; |
| 2 | using NCC.Common.Filter; | 2 | using NCC.Common.Filter; |
| 3 | 3 | ||
| 4 | namespace NCC.Extend.Entitys.Dto.LqKhxx | 4 | namespace NCC.Extend.Entitys.Dto.LqKhxx |
| @@ -129,6 +129,11 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx | @@ -129,6 +129,11 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx | ||
| 129 | public string SleepDaysRange { get; set; } | 129 | public string SleepDaysRange { get; set; } |
| 130 | 130 | ||
| 131 | /// <summary> | 131 | /// <summary> |
| 132 | + /// 剩余权益范围(格式: "最小值,最大值",单位:元) | ||
| 133 | + /// </summary> | ||
| 134 | + public string RemainingRightsRange { get; set; } | ||
| 135 | + | ||
| 136 | + /// <summary> | ||
| 132 | /// 主健康师 | 137 | /// 主健康师 |
| 133 | /// </summary> | 138 | /// </summary> |
| 134 | public string mainHealthUser { get; set; } | 139 | public string mainHealthUser { get; set; } |
netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
| 1 | -using System; | 1 | +using System; |
| 2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
| 3 | using System.IO; | 3 | using System.IO; |
| 4 | using System.Linq; | 4 | using System.Linq; |
| @@ -140,6 +140,18 @@ namespace NCC.Extend.LqKhxx | @@ -140,6 +140,18 @@ namespace NCC.Extend.LqKhxx | ||
| 140 | minSleepDays = min; | 140 | minSleepDays = min; |
| 141 | maxSleepDays = max; | 141 | maxSleepDays = max; |
| 142 | } | 142 | } |
| 143 | + | ||
| 144 | + // 处理剩余权益范围 | ||
| 145 | + List<string> queryRemainingRightsRange = input.RemainingRightsRange != null ? input.RemainingRightsRange.Split(',').ToObeject<List<string>>() : null; | ||
| 146 | + decimal? minRemainingRights = null; | ||
| 147 | + decimal? maxRemainingRights = null; | ||
| 148 | + if (queryRemainingRightsRange != null && queryRemainingRightsRange.Count >= 2) | ||
| 149 | + { | ||
| 150 | + decimal.TryParse(queryRemainingRightsRange[0], out decimal min); | ||
| 151 | + decimal.TryParse(queryRemainingRightsRange[1], out decimal max); | ||
| 152 | + minRemainingRights = min; | ||
| 153 | + maxRemainingRights = max; | ||
| 154 | + } | ||
| 143 | 155 | ||
| 144 | var data = await _db.Queryable<LqKhxxEntity>() | 156 | var data = await _db.Queryable<LqKhxxEntity>() |
| 145 | .WhereIF(!string.IsNullOrEmpty(input.keyWord), p => p.Khmc.Contains(input.keyWord) || p.Sjh.Contains(input.keyWord) || p.Dah.Contains(input.keyWord)) | 157 | .WhereIF(!string.IsNullOrEmpty(input.keyWord), p => p.Khmc.Contains(input.keyWord) || p.Sjh.Contains(input.keyWord) || p.Dah.Contains(input.keyWord)) |
| @@ -164,6 +176,8 @@ namespace NCC.Extend.LqKhxx | @@ -164,6 +176,8 @@ namespace NCC.Extend.LqKhxx | ||
| 164 | .WhereIF(input.ConsumeLevel.HasValue, p => p.ConsumeLevel == input.ConsumeLevel.Value) | 176 | .WhereIF(input.ConsumeLevel.HasValue, p => p.ConsumeLevel == input.ConsumeLevel.Value) |
| 165 | .WhereIF(minSleepDays.HasValue, p => p.SleepDays >= minSleepDays.Value) | 177 | .WhereIF(minSleepDays.HasValue, p => p.SleepDays >= minSleepDays.Value) |
| 166 | .WhereIF(maxSleepDays.HasValue, p => p.SleepDays <= maxSleepDays.Value) | 178 | .WhereIF(maxSleepDays.HasValue, p => p.SleepDays <= maxSleepDays.Value) |
| 179 | + .WhereIF(minRemainingRights.HasValue, p => p.RemainingRightsAmount >= minRemainingRights.Value) | ||
| 180 | + .WhereIF(maxRemainingRights.HasValue, p => p.RemainingRightsAmount <= maxRemainingRights.Value) | ||
| 167 | .WhereIF(queryZcsj != null, p => p.CreateTime >= new DateTime(startZcsj.ToDate().Year, startZcsj.ToDate().Month, startZcsj.ToDate().Day, 0, 0, 0)) | 181 | .WhereIF(queryZcsj != null, p => p.CreateTime >= new DateTime(startZcsj.ToDate().Year, startZcsj.ToDate().Month, startZcsj.ToDate().Day, 0, 0, 0)) |
| 168 | .WhereIF(queryZcsj != null, p => p.CreateTime <= new DateTime(endZcsj.ToDate().Year, endZcsj.ToDate().Month, endZcsj.ToDate().Day, 23, 59, 59)) | 182 | .WhereIF(queryZcsj != null, p => p.CreateTime <= new DateTime(endZcsj.ToDate().Year, endZcsj.ToDate().Month, endZcsj.ToDate().Day, 23, 59, 59)) |
| 169 | .Select(it => new LqKhxxListOutput | 183 | .Select(it => new LqKhxxListOutput |
| @@ -285,6 +299,18 @@ namespace NCC.Extend.LqKhxx | @@ -285,6 +299,18 @@ namespace NCC.Extend.LqKhxx | ||
| 285 | minSleepDays = min; | 299 | minSleepDays = min; |
| 286 | maxSleepDays = max; | 300 | maxSleepDays = max; |
| 287 | } | 301 | } |
| 302 | + | ||
| 303 | + // 处理剩余权益范围 | ||
| 304 | + List<string> queryRemainingRightsRange = input.RemainingRightsRange != null ? input.RemainingRightsRange.Split(',').ToObeject<List<string>>() : null; | ||
| 305 | + decimal? minRemainingRights = null; | ||
| 306 | + decimal? maxRemainingRights = null; | ||
| 307 | + if (queryRemainingRightsRange != null && queryRemainingRightsRange.Count >= 2) | ||
| 308 | + { | ||
| 309 | + decimal.TryParse(queryRemainingRightsRange[0], out decimal min); | ||
| 310 | + decimal.TryParse(queryRemainingRightsRange[1], out decimal max); | ||
| 311 | + minRemainingRights = min; | ||
| 312 | + maxRemainingRights = max; | ||
| 313 | + } | ||
| 288 | 314 | ||
| 289 | var data = await _db.Queryable<LqKhxxEntity>() | 315 | var data = await _db.Queryable<LqKhxxEntity>() |
| 290 | .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) | 316 | .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) |
| @@ -308,6 +334,8 @@ namespace NCC.Extend.LqKhxx | @@ -308,6 +334,8 @@ namespace NCC.Extend.LqKhxx | ||
| 308 | .WhereIF(input.ConsumeLevel.HasValue, p => p.ConsumeLevel == input.ConsumeLevel.Value) | 334 | .WhereIF(input.ConsumeLevel.HasValue, p => p.ConsumeLevel == input.ConsumeLevel.Value) |
| 309 | .WhereIF(minSleepDays.HasValue, p => p.SleepDays >= minSleepDays.Value) | 335 | .WhereIF(minSleepDays.HasValue, p => p.SleepDays >= minSleepDays.Value) |
| 310 | .WhereIF(maxSleepDays.HasValue, p => p.SleepDays <= maxSleepDays.Value) | 336 | .WhereIF(maxSleepDays.HasValue, p => p.SleepDays <= maxSleepDays.Value) |
| 337 | + .WhereIF(minRemainingRights.HasValue, p => p.RemainingRightsAmount >= minRemainingRights.Value) | ||
| 338 | + .WhereIF(maxRemainingRights.HasValue, p => p.RemainingRightsAmount <= maxRemainingRights.Value) | ||
| 311 | .WhereIF(queryYanglsr != null, p => p.Yanglsr >= new DateTime(startYanglsr.ToDate().Year, startYanglsr.ToDate().Month, startYanglsr.ToDate().Day, 0, 0, 0)) | 339 | .WhereIF(queryYanglsr != null, p => p.Yanglsr >= new DateTime(startYanglsr.ToDate().Year, startYanglsr.ToDate().Month, startYanglsr.ToDate().Day, 0, 0, 0)) |
| 312 | .WhereIF(queryYanglsr != null, p => p.Yanglsr <= new DateTime(endYanglsr.ToDate().Year, endYanglsr.ToDate().Month, endYanglsr.ToDate().Day, 23, 59, 59)) | 340 | .WhereIF(queryYanglsr != null, p => p.Yanglsr <= new DateTime(endYanglsr.ToDate().Year, endYanglsr.ToDate().Month, endYanglsr.ToDate().Day, 23, 59, 59)) |
| 313 | .WhereIF(queryYinlsr != null, p => p.Yinlsr >= new DateTime(startYinlsr.ToDate().Year, startYinlsr.ToDate().Month, startYinlsr.ToDate().Day, 0, 0, 0)) | 341 | .WhereIF(queryYinlsr != null, p => p.Yinlsr >= new DateTime(startYinlsr.ToDate().Year, startYinlsr.ToDate().Month, startYinlsr.ToDate().Day, 0, 0, 0)) |
| @@ -682,6 +710,18 @@ namespace NCC.Extend.LqKhxx | @@ -682,6 +710,18 @@ namespace NCC.Extend.LqKhxx | ||
| 682 | maxSleepDays = max; | 710 | maxSleepDays = max; |
| 683 | } | 711 | } |
| 684 | 712 | ||
| 713 | + // 处理剩余权益范围 | ||
| 714 | + List<string> queryRemainingRightsRange = input.RemainingRightsRange != null ? input.RemainingRightsRange.Split(',').ToObeject<List<string>>() : null; | ||
| 715 | + decimal? minRemainingRights = null; | ||
| 716 | + decimal? maxRemainingRights = null; | ||
| 717 | + if (queryRemainingRightsRange != null && queryRemainingRightsRange.Count >= 2) | ||
| 718 | + { | ||
| 719 | + decimal.TryParse(queryRemainingRightsRange[0], out decimal min); | ||
| 720 | + decimal.TryParse(queryRemainingRightsRange[1], out decimal max); | ||
| 721 | + minRemainingRights = min; | ||
| 722 | + maxRemainingRights = max; | ||
| 723 | + } | ||
| 724 | + | ||
| 685 | // 先查询客户基础数据(使用子查询方式,类似GetNoPagingList,但优化为批量查询关联数据) | 725 | // 先查询客户基础数据(使用子查询方式,类似GetNoPagingList,但优化为批量查询关联数据) |
| 686 | var customerList = await _db.Queryable<LqKhxxEntity>() | 726 | var customerList = await _db.Queryable<LqKhxxEntity>() |
| 687 | .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) | 727 | .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) |
| @@ -704,6 +744,8 @@ namespace NCC.Extend.LqKhxx | @@ -704,6 +744,8 @@ namespace NCC.Extend.LqKhxx | ||
| 704 | .WhereIF(input.ConsumeLevel.HasValue, p => p.ConsumeLevel == input.ConsumeLevel.Value) | 744 | .WhereIF(input.ConsumeLevel.HasValue, p => p.ConsumeLevel == input.ConsumeLevel.Value) |
| 705 | .WhereIF(minSleepDays.HasValue, p => p.SleepDays >= minSleepDays.Value) | 745 | .WhereIF(minSleepDays.HasValue, p => p.SleepDays >= minSleepDays.Value) |
| 706 | .WhereIF(maxSleepDays.HasValue, p => p.SleepDays <= maxSleepDays.Value) | 746 | .WhereIF(maxSleepDays.HasValue, p => p.SleepDays <= maxSleepDays.Value) |
| 747 | + .WhereIF(minRemainingRights.HasValue, p => p.RemainingRightsAmount >= minRemainingRights.Value) | ||
| 748 | + .WhereIF(maxRemainingRights.HasValue, p => p.RemainingRightsAmount <= maxRemainingRights.Value) | ||
| 707 | .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz)) | 749 | .WhereIF(!string.IsNullOrEmpty(input.bz), p => p.Bz.Contains(input.bz)) |
| 708 | .WhereIF(queryYanglsr != null, p => p.Yanglsr >= new DateTime(startYanglsr.ToDate().Year, startYanglsr.ToDate().Month, startYanglsr.ToDate().Day, 0, 0, 0)) | 750 | .WhereIF(queryYanglsr != null, p => p.Yanglsr >= new DateTime(startYanglsr.ToDate().Year, startYanglsr.ToDate().Month, startYanglsr.ToDate().Day, 0, 0, 0)) |
| 709 | .WhereIF(queryYanglsr != null, p => p.Yanglsr <= new DateTime(endYanglsr.ToDate().Year, endYanglsr.ToDate().Month, endYanglsr.ToDate().Day, 23, 59, 59)) | 751 | .WhereIF(queryYanglsr != null, p => p.Yanglsr <= new DateTime(endYanglsr.ToDate().Year, endYanglsr.ToDate().Month, endYanglsr.ToDate().Day, 23, 59, 59)) |