Commit 7f83b33308d91ec31673e215c5dbf77d61e2941e

Authored by “wangming”
1 parent e2c7c954

重构:删除部门管理模块并修复预约记录服务

主要变更:
1. 删除部门管理模块 (lq_bmzb)
   - 删除实体类、服务类、接口类、DTO类
   - 删除前端页面和映射类
   - 更新相关文档

2. 修复预约记录服务错误
   - 修复 GetInfo 方法中 SqlFunc.Subqueryable 使用错误
   - 改为使用标准查询方式获取关联数据
   - 添加空值检查提升代码安全性

3. 其他优化
   - 更新客户信息相关字段映射
   - 优化邀约记录和拓客记录服务
   - 更新会员类型枚举定义
Showing 33 changed files with 309 additions and 941 deletions
README.md
... ... @@ -65,7 +65,6 @@ lvqianmeiye_ERP/
65 65 包含所有业务服务的具体实现,按功能分类:
66 66  
67 67 #### 📋 基础管理类
68   -- `LqBmzbService` - 部门管理服务
69 68 - `LqCpxxService` - 产品信息管理服务
70 69 - `LqKhxxService` - 客户信息管理服务
71 70 - `LqRyzlService` - 人员资料管理服务
... ... @@ -173,7 +172,6 @@ npm run dev
173 172 > 💡 **说明**:所有业务功能的核心代码都位于 `netcore/src/Modularity/Extend/` 模块中
174 173  
175 174 ### 📋 基础管理模块
176   -- **部门管理** (`LqBmzbService`) - 组织架构管理,部门分类维护
177 175 - **产品信息** (`LqCpxxService`) - 产品档案管理,产品分类维护
178 176 - **客户信息** (`LqKhxxService`) - 客户档案管理,客户关系维护
179 177 - **人员资料** (`LqRyzlService`) - 员工信息管理,人员档案维护
... ...
antis-ncc-admin/.env.development
1 1 # 开发
2 2  
3 3 VUE_CLI_BABEL_TRANSPILE_MODULES = true
4   -VUE_APP_BASE_API = 'http://lvqian.antissoft.com'
5   -# VUE_APP_BASE_API = 'http://localhost:2011'
  4 +# VUE_APP_BASE_API = 'http://lvqian.antissoft.com'
  5 +VUE_APP_BASE_API = 'http://localhost:2011'
6 6 VUE_APP_BASE_WSS = 'ws://192.168.110.45:2011/websocket'
... ...
antis-ncc-admin/src/views/lqBmzb/Form.vue deleted
1   -<template>
2   - <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" :visible.sync="visible" class="NCC-dialog NCC-dialog_center" lock-scroll width="600px">
3   - <el-row :gutter="15" class="" >
4   - <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules">
5   - <el-col :span="24" v-if="false" >
6   - <el-form-item label="部门编号" prop="id">
7   - <el-input v-model="dataForm.id" placeholder="请输入" clearable :style='{"width":"100%"}' >
8   - </el-input>
9   - </el-form-item>
10   - </el-col>
11   - <el-col :span="24">
12   - <el-form-item label="部门名称" prop="bmmc">
13   - <el-input v-model="dataForm.bmmc" placeholder="请输入" clearable :style='{"width":"100%"}' >
14   - </el-input>
15   - </el-form-item>
16   - </el-col>
17   - <el-col :span="24">
18   - <el-form-item label="部门分类" prop="bmfl">
19   - <el-select v-model="dataForm.bmfl" placeholder="请选择" clearable :style='{"width":"100%"}' >
20   - <el-option v-for="(item, index) in bmflOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>
21   - </el-select>
22   - </el-form-item>
23   - </el-col>
24   - </el-form>
25   - </el-row>
26   - <span slot="footer" class="dialog-footer">
27   - <el-button @click="visible = false">取 消</el-button>
28   - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button>
29   - </span>
30   - </el-dialog>
31   -</template>
32   -<script>
33   - import request from '@/utils/request'
34   - import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
35   - import { previewDataInterface } from '@/api/systemData/dataInterface'
36   - export default {
37   - components: {},
38   - props: [],
39   - data() {
40   - return {
41   - loading: false,
42   - visible: false,
43   - isDetail: false,
44   - dataForm: {
45   - id:'',
46   - id:undefined,
47   - bmmc:undefined,
48   - bmfl:undefined,
49   - },
50   - rules: {
51   - },
52   - bmflOptions:[{"fullName":"事业部","id":"事业部"},{"fullName":"教育部","id":"教育部"},{"fullName":"科技部","id":"科技部"},{"fullName":"大项目部","id":"大项目部"}],
53   - }
54   - },
55   - computed: {},
56   - watch: {},
57   - created() {
58   - },
59   - mounted() {
60   - },
61   - methods: {
62   - goBack() {
63   - this.$emit('refresh')
64   - },
65   - init(id, isDetail) {
66   - this.dataForm.id = id || 0;
67   - this.visible = true;
68   - this.isDetail = isDetail || false;
69   - this.$nextTick(() => {
70   - this.$refs['elForm'].resetFields();
71   - if (this.dataForm.id) {
72   - request({
73   - url: '/api/Extend/LqBmzb/' + this.dataForm.id,
74   - method: 'get'
75   - }).then(res =>{
76   - this.dataForm = res.data;
77   - })
78   - }
79   - })
80   - },
81   - dataFormSubmit() {
82   - this.$refs['elForm'].validate((valid) => {
83   - if (valid) {
84   - if (!this.dataForm.id) {
85   - request({
86   - url: `/api/Extend/LqBmzb`,
87   - method: 'post',
88   - data: this.dataForm,
89   - }).then((res) => {
90   - this.$message({
91   - message: res.msg,
92   - type: 'success',
93   - duration: 1000,
94   - onClose: () => {
95   - this.visible = false,
96   - this.$emit('refresh', true)
97   - }
98   - })
99   - })
100   - } else {
101   - request({
102   - url: '/api/Extend/LqBmzb/' + this.dataForm.id,
103   - method: 'PUT',
104   - data: this.dataForm
105   - }).then((res) => {
106   - this.$message({
107   - message: res.msg,
108   - type: 'success',
109   - duration: 1000,
110   - onClose: () => {
111   - this.visible = false
112   - this.$emit('refresh', true)
113   - }
114   - })
115   - })
116   - }
117   - }
118   - })
119   - },
120   - }
121   - }
122   -</script>
antis-ncc-admin/src/views/lqBmzb/index.vue deleted
1   -<template>
2   - <div class="NCC-common-layout">
3   - <div class="NCC-common-layout-center">
4   - <el-row class="NCC-common-search-box" :gutter="16">
5   - <el-form @submit.native.prevent>
6   - <el-col :span="6">
7   - <el-form-item label="部门编号">
8   - <el-input v-model="query.id" placeholder="部门编号" clearable />
9   - </el-form-item>
10   - </el-col>
11   - <el-col :span="6">
12   - <el-form-item label="部门名称">
13   - <el-input v-model="query.bmmc" placeholder="部门名称" clearable />
14   - </el-form-item>
15   - </el-col>
16   - <el-col :span="6">
17   - <el-form-item label="部门分类">
18   - <el-select v-model="query.bmfl" placeholder="部门分类" clearable >
19   - <el-option v-for="(item, index) in bmflOptions" :key="index" :label="item.fullName" :value="item.id" />
20   - </el-select>
21   - </el-form-item>
22   - </el-col>
23   - <el-col :span="6">
24   - <el-form-item>
25   - <el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>
26   - <el-button icon="el-icon-refresh-right" @click="reset()">重置</el-button>
27   - </el-form-item>
28   - </el-col>
29   - </el-form>
30   - </el-row>
31   - <div class="NCC-common-layout-main NCC-flex-main">
32   - <div class="NCC-common-head">
33   - <div>
34   - <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">新增</el-button>
35   - <el-button type="text" icon="el-icon-download" @click="exportData()">导出</el-button>
36   - <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">批量删除</el-button>
37   - </div>
38   - <div class="NCC-common-head-right">
39   - <el-tooltip effect="dark" content="刷新" placement="top">
40   - <el-link icon="icon-ym icon-ym-Refresh NCC-common-head-icon" :underline="false" @click="reset()" />
41   - </el-tooltip>
42   - <screenfull isContainer />
43   - </div>
44   - </div>
45   - <NCC-table v-loading="listLoading" :data="list" has-c @selection-change="handleSelectionChange">
46   - <el-table-column prop="id" label="部门编号" align="left" />
47   - <el-table-column prop="bmmc" label="部门名称" align="left" />
48   - <el-table-column label="部门分类" prop="bmfl" align="left">
49   - <template slot-scope="scope">{{ scope.row.bmfl | dynamicText(bmflOptions) }}</template>
50   - </el-table-column>
51   - <el-table-column label="操作" fixed="right" width="100">
52   - <template slot-scope="scope">
53   - <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" >编辑</el-button>
54   - <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button>
55   - </template>
56   - </el-table-column>
57   - </NCC-table>
58   - <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData" />
59   - </div>
60   - </div>
61   - <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" />
62   - <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />
63   - </div>
64   -</template>
65   -<script>
66   - import request from '@/utils/request'
67   - import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
68   - import NCCForm from './Form'
69   - import ExportBox from './ExportBox'
70   - import { previewDataInterface } from '@/api/systemData/dataInterface'
71   - export default {
72   - components: { NCCForm, ExportBox },
73   - data() {
74   - return {
75   - showAll: false,
76   - query: {
77   - id:undefined,
78   - bmmc:undefined,
79   - bmfl:undefined,
80   - },
81   - list: [],
82   - listLoading: true,
83   - multipleSelection: [], total: 0,
84   - listQuery: {
85   - currentPage: 1,
86   - pageSize: 20,
87   - sort: "desc",
88   - sidx: "",
89   - },
90   - formVisible: false,
91   - exportBoxVisible: false,
92   - columnList: [
93   - { prop: 'id', label: '部门编号' },
94   - { prop: 'bmmc', label: '部门名称' },
95   - { prop: 'bmfl', label: '部门分类' },
96   - ],
97   - bmflOptions:[{"fullName":"事业部","id":"事业部"},{"fullName":"教育部","id":"教育部"},{"fullName":"科技部","id":"科技部"},{"fullName":"大项目部","id":"大项目部"}],
98   - }
99   - },
100   - computed: {},
101   - created() {
102   - this.initData()
103   - },
104   - methods: {
105   - initData() {
106   - this.listLoading = true;
107   - let _query = {
108   - ...this.listQuery,
109   - ...this.query
110   - };
111   - let query = {}
112   - for (let key in _query) {
113   - if (Array.isArray(_query[key])) {
114   - query[key] = _query[key].join()
115   - } else {
116   - query[key] = _query[key]
117   - }
118   - }
119   - request({
120   - url: `/api/Extend/LqBmzb`,
121   - method: 'GET',
122   - data: query
123   - }).then(res => {
124   - this.list = res.data.list
125   - this.total = res.data.pagination.total
126   - this.listLoading = false
127   - })
128   - },
129   - handleDel(id) {
130   - this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
131   - type: 'warning'
132   - }).then(() => {
133   - request({
134   - url: `/api/Extend/LqBmzb/${id}`,
135   - method: 'DELETE'
136   - }).then(res => {
137   - this.$message({
138   - type: 'success',
139   - message: res.msg,
140   - onClose: () => {
141   - this.initData()
142   - }
143   - });
144   - })
145   - }).catch(() => {
146   - });
147   - },
148   - handleSelectionChange(val) {
149   - const res = val.map(item => item.id)
150   - this.multipleSelection = res
151   - },
152   - handleBatchRemoveDel() {
153   - if (!this.multipleSelection.length) {
154   - this.$message({
155   - type: 'error',
156   - message: '请选择一条数据',
157   - duration: 1500,
158   - })
159   - return
160   - }
161   - const ids = this.multipleSelection
162   - this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
163   - type: 'warning'
164   - }).then(() => {
165   - request({
166   - url: `/api/Extend/LqBmzb/batchRemove`,
167   - method: 'POST',
168   - data: ids ,
169   - }).then(res => {
170   - this.$message({
171   - type: 'success',
172   - message: res.msg,
173   - onClose: () => {
174   - this.initData()
175   - }
176   - });
177   - })
178   - }).catch(() => { })
179   - },
180   - addOrUpdateHandle(id, isDetail) {
181   - this.formVisible = true
182   - this.$nextTick(() => {
183   - this.$refs.NCCForm.init(id, isDetail)
184   - })
185   - },
186   - exportData() {
187   - this.exportBoxVisible = true
188   - this.$nextTick(() => {
189   - this.$refs.ExportBox.init(this.columnList)
190   - })
191   - },
192   - download(data) {
193   - let query = { ...data, ...this.listQuery, ...this.query }
194   - request({
195   - url: `/api/Extend/LqBmzb/Actions/Export`,
196   - method: 'GET',
197   - data: query
198   - }).then(res => {
199   - if (!res.data.url) return
200   - window.location.href = this.define.comUrl + res.data.url
201   - this.$refs.ExportBox.visible = false
202   - this.exportBoxVisible = false
203   - })
204   - },
205   - search() {
206   - this.listQuery = {
207   - currentPage: 1,
208   - pageSize: 20,
209   - sort: "desc",
210   - sidx: "",
211   - }
212   - this.initData()
213   - },
214   - refresh(isrRefresh) {
215   - this.formVisible = false
216   - if (isrRefresh) this.reset()
217   - },
218   - reset() {
219   - for (let key in this.query) {
220   - this.query[key] = undefined
221   - }
222   - this.listQuery = {
223   - currentPage: 1,
224   - pageSize: 20,
225   - sort: "desc",
226   - sidx: "",
227   - }
228   - this.initData()
229   - }
230   - }
231   - }
232   -</script>
233 0 \ No newline at end of file
antis-ncc-admin/src/views/lqKhxx/index.vue
... ... @@ -32,7 +32,7 @@
32 32 </el-select>
33 33 </el-form-item>
34 34 </el-col>
35   - <el-col :span="6">
  35 + <!-- <el-col :span="6">
36 36 <el-form-item label="公众号状态">
37 37 <el-select v-model="query.gzhzt" placeholder="公众号状态" clearable>
38 38 <el-option v-for="(item, index) in gzhztOptions" :key="index" :label="item.fullName"
... ... @@ -59,7 +59,7 @@
59 59 format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期">
60 60 </el-date-picker>
61 61 </el-form-item>
62   - </el-col>
  62 + </el-col> -->
63 63 <el-col :span="6">
64 64 <el-form-item label="客户目前归属">
65 65 <el-select v-model="query.khmqgs" placeholder="客户目前归属" clearable>
... ... @@ -241,49 +241,6 @@
241 241 </template>
242 242 </el-table-column>
243 243  
244   - <!-- 公众号状态 -->
245   - <el-table-column label="公众号状态" width="120" align="center">
246   - <template slot-scope="scope">
247   - <div class="wechat-status-info">
248   - <i class="el-icon-chat-dot-round wechat-status-icon"
249   - :class="getStatusClass(scope.row.gzhzt)"></i>
250   - <span class="text-nowrap">{{ scope.row.gzhzt | dynamicText(gzhztOptions) || '无'
251   - }}</span>
252   - </div>
253   - </template>
254   - </el-table-column>
255   -
256   - <!-- 微信昵称 -->
257   - <el-table-column label="微信昵称" width="120" align="center">
258   - <template slot-scope="scope">
259   - <div class="wechat-name-info">
260   - <i class="el-icon-chat-line-round wechat-name-icon"></i>
261   - <span class="text-nowrap">{{ scope.row.wxnc || '无' }}</span>
262   - </div>
263   - </template>
264   - </el-table-column>
265   -
266   - <!-- 小程序状态 -->
267   - <el-table-column label="小程序状态" width="120" align="center">
268   - <template slot-scope="scope">
269   - <div class="miniprogram-status-info">
270   - <i class="el-icon-mobile-phone miniprogram-status-icon"
271   - :class="getStatusClass(scope.row.wxxcxzt)"></i>
272   - <span class="text-nowrap">{{ scope.row.wxxcxzt | dynamicText(wxxcxztOptions) || '无'
273   - }}</span>
274   - </div>
275   - </template>
276   - </el-table-column>
277   -
278   - <!-- 最近登录时间 -->
279   - <el-table-column label="最近登录时间" width="140" align="center">
280   - <template slot-scope="scope">
281   - <div class="login-time-info">
282   - <i class="el-icon-time login-time-icon"></i>
283   - <span class="text-nowrap">{{ formatDate(scope.row.zjdlsj) }}</span>
284   - </div>
285   - </template>
286   - </el-table-column>
287 244  
288 245 <!-- 客户目前归属 -->
289 246 <el-table-column label="客户目前归属" width="120" align="center">
... ... @@ -301,7 +258,7 @@
301 258 <template slot-scope="scope">
302 259 <div class="store-info">
303 260 <i class="el-icon-office-building store-icon"></i>
304   - <span class="text-nowrap">{{ scope.row.gsmd || '无' }}</span>
  261 + <span class="text-nowrap">{{ scope.row.gsmdName || '无' }}</span>
305 262 </div>
306 263 </template>
307 264 </el-table-column>
... ... @@ -321,7 +278,7 @@
321 278 <template slot-scope="scope">
322 279 <div class="customer-type-info">
323 280 <i class="el-icon-user customer-type-icon"></i>
324   - <span class="text-nowrap">{{ scope.row.khlx | dynamicText(khlxOptions) || '无' }}</span>
  281 + <span class="text-nowrap">{{ scope.row.khlxName }}</span>
325 282 </div>
326 283 </template>
327 284 </el-table-column>
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqBmzb/LqBmzbCrInput.cs deleted
1   -using System;
2   -using System.Collections.Generic;
3   -
4   -namespace NCC.Extend.Entitys.Dto.LqBmzb
5   -{
6   - /// <summary>
7   - /// 部门管理修改输入参数
8   - /// </summary>
9   - public class LqBmzbCrInput
10   - {
11   - /// <summary>
12   - /// 部门编号
13   - /// </summary>
14   - public string id { get; set; }
15   -
16   - /// <summary>
17   - /// 部门名称
18   - /// </summary>
19   - public string bmmc { get; set; }
20   -
21   - /// <summary>
22   - /// 部门分类
23   - /// </summary>
24   - public string bmfl { get; set; }
25   -
26   - }
27   -}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqBmzb/LqBmzbInfoOutput.cs deleted
1   -using System;
2   -using System.Collections.Generic;
3   -
4   -namespace NCC.Extend.Entitys.Dto.LqBmzb
5   -{
6   - /// <summary>
7   - /// 部门管理输出参数
8   - /// </summary>
9   - public class LqBmzbInfoOutput
10   - {
11   - /// <summary>
12   - /// 部门编号
13   - /// </summary>
14   - public string id { get; set; }
15   -
16   - /// <summary>
17   - /// 部门名称
18   - /// </summary>
19   - public string bmmc { get; set; }
20   -
21   - /// <summary>
22   - /// 部门分类
23   - /// </summary>
24   - public string bmfl { get; set; }
25   -
26   - }
27   -}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqBmzb/LqBmzbListOutput.cs deleted
1   -using System;
2   -
3   -namespace NCC.Extend.Entitys.Dto.LqBmzb
4   -{
5   - /// <summary>
6   - /// 部门管理输入参数
7   - /// </summary>
8   - public class LqBmzbListOutput
9   - {
10   - /// <summary>
11   - /// 部门编号
12   - /// </summary>
13   - public string id { get; set; }
14   -
15   - /// <summary>
16   - /// 部门名称
17   - /// </summary>
18   - public string bmmc { get; set; }
19   -
20   - /// <summary>
21   - /// 部门分类
22   - /// </summary>
23   - public string bmfl { get; set; }
24   -
25   - }
26   -}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqBmzb/LqBmzbListQueryInput.cs deleted
1   -using NCC.Common.Filter;
2   -using System.Collections.Generic;
3   -
4   -namespace NCC.Extend.Entitys.Dto.LqBmzb
5   -{
6   - /// <summary>
7   - /// 部门管理列表查询输入
8   - /// </summary>
9   - public class LqBmzbListQueryInput : PageInputBase
10   - {
11   - /// <summary>
12   - /// 选择导出数据key
13   - /// </summary>
14   - public string selectKey { get; set; }
15   -
16   - /// <summary>
17   - ///
18   - /// </summary>
19   - public int dataType { get; set; }
20   -
21   -
22   - /// <summary>
23   - /// 部门编号
24   - /// </summary>
25   - public string id { get; set; }
26   -
27   - /// <summary>
28   - /// 部门名称
29   - /// </summary>
30   - public string bmmc { get; set; }
31   -
32   - /// <summary>
33   - /// 部门分类
34   - /// </summary>
35   - public string bmfl { get; set; }
36   -
37   - }
38   -}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqBmzb/LqBmzbUpInput.cs deleted
1   -using System;
2   -using System.Collections.Generic;
3   -
4   -namespace NCC.Extend.Entitys.Dto.LqBmzb
5   -{
6   - /// <summary>
7   - /// 部门管理更新输入参数
8   - /// </summary>
9   - public class LqBmzbUpInput : LqBmzbCrInput
10   - {
11   - /// <summary>
12   - /// 部门编号
13   - /// </summary>
14   - public string id { get; set; }
15   -
16   - }
17   -}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxInfoOutput.cs
... ... @@ -51,7 +51,7 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
51 51 /// <summary>
52 52 /// 最近登录时间
53 53 /// </summary>
54   - public string zjdlsj { get; set; }
  54 + public DateTime? zjdlsj { get; set; }
55 55  
56 56  
57 57 /// <summary>
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListOutput.cs
1 1 using System;
  2 +using NCC.Code;
  3 +using NCC.Extend.Entitys.Enum;
2 4  
3 5 namespace NCC.Extend.Entitys.Dto.LqKhxx
4 6 {
... ... @@ -50,7 +52,7 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
50 52 /// <summary>
51 53 /// 最近登录时间
52 54 /// </summary>
53   - public string zjdlsj { get; set; }
  55 + public DateTime? zjdlsj { get; set; }
54 56  
55 57 /// <summary>
56 58 /// 归属门店
... ... @@ -58,6 +60,11 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
58 60 public string gsmd { get; set; }
59 61  
60 62 /// <summary>
  63 + /// 归属门店名称
  64 + /// </summary>
  65 + public string gsmdName { get; set; }
  66 +
  67 + /// <summary>
61 68 /// 注册时间
62 69 /// </summary>
63 70 public DateTime? zcsj { get; set; }
... ... @@ -68,6 +75,22 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
68 75 public string khlx { get; set; }
69 76  
70 77 /// <summary>
  78 + /// <summary>
  79 + /// 客户类型名称
  80 + /// </summary>
  81 + public string khlxName
  82 + {
  83 + get
  84 + {
  85 + if (string.IsNullOrEmpty(khlx)) return "无";
  86 + if (int.TryParse(khlx, out var type))
  87 + {
  88 + return EnumHelper.GetEnumDesc<MemberTypeEnum>(type);
  89 + }
  90 + return "无";
  91 + }
  92 + }
  93 + /// <summary>
71 94 /// 客户阶段
72 95 /// </summary>
73 96 public string khjd { get; set; }
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKhxx/LqKhxxListQueryInput.cs
... ... @@ -59,11 +59,6 @@ namespace NCC.Extend.Entitys.Dto.LqKhxx
59 59 public string wxxcxzt { get; set; }
60 60  
61 61 /// <summary>
62   - /// 最近登录时间
63   - /// </summary>
64   - public string zjdlsj { get; set; }
65   -
66   - /// <summary>
67 62 /// 归属门店
68 63 /// </summary>
69 64 public string gsmd { get; set; }
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbInfoOutput.cs
... ... @@ -64,6 +64,11 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
64 64 public string storeId { get; set; }
65 65  
66 66 /// <summary>
  67 + /// 所属门店名称
  68 + /// </summary>
  69 + public string storeName { get; set; }
  70 +
  71 + /// <summary>
67 72 /// 所属战队
68 73 /// </summary>
69 74 public string teamName { get; set; }
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListOutput.cs
... ... @@ -63,6 +63,11 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
63 63 public string storeId { get; set; }
64 64  
65 65 /// <summary>
  66 + /// 所属门店名称
  67 + /// </summary>
  68 + public string storeName { get; set; }
  69 +
  70 + /// <summary>
66 71 /// 所属战队
67 72 /// </summary>
68 73 public string teamName { get; set; }
... ... @@ -72,6 +77,7 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
72 77 /// </summary>
73 78 public string eventId { get; set; }
74 79  
  80 +
75 81 /// <summary>
76 82 /// 拓客活动名称
77 83 /// </summary>
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYaoyjl/LqYaoyjlCrInput.cs
... ... @@ -12,41 +12,41 @@ namespace NCC.Extend.Entitys.Dto.LqYaoyjl
12 12 /// 邀约编号
13 13 /// </summary>
14 14 public string id { get; set; }
15   -
  15 +
16 16 /// <summary>
17 17 /// 邀约人
18 18 /// </summary>
19 19 public string yyr { get; set; }
20   -
  20 +
21 21 /// <summary>
22 22 /// 邀约时间
23 23 /// </summary>
24 24 public DateTime? yysj { get; set; }
25   -
  25 +
26 26 /// <summary>
27 27 /// 邀约客户
28 28 /// </summary>
29 29 public string yykh { get; set; }
30   -
  30 +
31 31 /// <summary>
32 32 /// 邀约客户姓名
33 33 /// </summary>
34 34 public string yykhxm { get; set; }
35   -
  35 +
36 36 /// <summary>
37 37 /// 电话是否有效
38 38 /// </summary>
39 39 public string dhsfyx { get; set; }
40   -
  40 +
41 41 /// <summary>
42 42 /// 联系时间
43 43 /// </summary>
44 44 public DateTime? lxsj { get; set; }
45   -
  45 +
46 46 /// <summary>
47 47 /// 联系记录
48 48 /// </summary>
49 49 public string lxjl { get; set; }
50   -
  50 +
51 51 }
52 52 }
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYaoyjl/LqYaoyjlInfoOutput.cs
... ... @@ -12,46 +12,61 @@ namespace NCC.Extend.Entitys.Dto.LqYaoyjl
12 12 /// 邀约编号
13 13 /// </summary>
14 14 public string id { get; set; }
15   -
  15 +
16 16 /// <summary>
17 17 /// 邀约人
18 18 /// </summary>
19 19 public string yyr { get; set; }
20   -
  20 +
21 21 /// <summary>
22 22 /// 邀约时间
23 23 /// </summary>
24 24 public DateTime? yysj { get; set; }
25   -
  25 +
26 26 /// <summary>
27 27 /// 邀约客户
28 28 /// </summary>
29 29 public string yykh { get; set; }
30   -
  30 +
31 31 /// <summary>
32 32 /// 邀约客户姓名
33 33 /// </summary>
34 34 public string yykhxm { get; set; }
35   -
  35 +
36 36 /// <summary>
37 37 /// 电话是否有效
38 38 /// </summary>
39 39 public string dhsfyx { get; set; }
40   -
  40 +
41 41 /// <summary>
42 42 /// 联系时间
43 43 /// </summary>
44 44 public DateTime? lxsj { get; set; }
45   -
  45 +
46 46 /// <summary>
47 47 /// 联系记录
48 48 /// </summary>
49 49 public string lxjl { get; set; }
50   -
  50 +
51 51 /// <summary>
52 52 /// 拓客编号
53 53 /// </summary>
54 54 public string tkbh { get; set; }
55   -
  55 +
  56 + /// <summary>
  57 + /// 所属门店ID
  58 + /// </summary>
  59 + public string storeId { get; set; }
  60 +
  61 + /// <summary>
  62 + /// 所属门店名称
  63 + /// </summary>
  64 + public string storeName { get; set; }
  65 +
  66 + /// <summary>
  67 + /// 添加时间
  68 + /// </summary>
  69 + public DateTime createTime { get; set; }
  70 +
56 71 }
57 72 }
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYaoyjl/LqYaoyjlListOutput.cs
... ... @@ -11,41 +11,61 @@ namespace NCC.Extend.Entitys.Dto.LqYaoyjl
11 11 /// 邀约编号
12 12 /// </summary>
13 13 public string id { get; set; }
14   -
  14 +
15 15 /// <summary>
16 16 /// 邀约人
17 17 /// </summary>
18 18 public string yyr { get; set; }
19   -
  19 +
  20 + /// <summary>
  21 + /// 邀约人名称
  22 + /// </summary>
  23 + public string yyrName { get; set; }
  24 +
20 25 /// <summary>
21 26 /// 邀约时间
22 27 /// </summary>
23 28 public DateTime? yysj { get; set; }
24   -
  29 +
25 30 /// <summary>
26 31 /// 邀约客户
27 32 /// </summary>
28 33 public string yykh { get; set; }
29   -
  34 +
30 35 /// <summary>
31 36 /// 邀约客户姓名
32 37 /// </summary>
33 38 public string yykhxm { get; set; }
34   -
  39 +
35 40 /// <summary>
36 41 /// 电话是否有效
37 42 /// </summary>
38 43 public string dhsfyx { get; set; }
39   -
  44 +
40 45 /// <summary>
41 46 /// 联系时间
42 47 /// </summary>
43 48 public DateTime? lxsj { get; set; }
44   -
  49 +
45 50 /// <summary>
46 51 /// 联系记录
47 52 /// </summary>
48 53 public string lxjl { get; set; }
49   -
  54 +
  55 + /// <summary>
  56 + /// 所属门店ID
  57 + /// </summary>
  58 + public string storeId { get; set; }
  59 +
  60 + /// <summary>
  61 + /// 所属门店名称
  62 + /// </summary>
  63 + public string storeName { get; set; }
  64 +
  65 + /// <summary>
  66 + /// 添加时间
  67 + /// </summary>
  68 + public DateTime createTime { get; set; }
  69 +
50 70 }
51 71 }
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYyjl/LqYyjlInfoOutput.cs
... ... @@ -12,66 +12,81 @@ namespace NCC.Extend.Entitys.Dto.LqYyjl
12 12 /// 预约编号
13 13 /// </summary>
14 14 public string id { get; set; }
15   -
  15 +
16 16 /// <summary>
17 17 /// 单据门店
18 18 /// </summary>
19 19 public string djmd { get; set; }
20   -
  20 +
  21 + /// <summary>
  22 + /// 单据门店名称
  23 + /// </summary>
  24 + public string djmdName { get; set; }
  25 +
21 26 /// <summary>
22 27 /// 邀约人
23 28 /// </summary>
24 29 public string yyr { get; set; }
25   -
  30 +
  31 + /// <summary>
  32 + /// 邀约人名称
  33 + /// </summary>
  34 + public string yyrName { get; set; }
  35 +
26 36 /// <summary>
27 37 /// 顾客类型
28 38 /// </summary>
29 39 public string gklx { get; set; }
30   -
  40 +
31 41 /// <summary>
32 42 /// 预约体验项目
33 43 /// </summary>
34 44 public string yytyxm { get; set; }
35   -
  45 +
36 46 /// <summary>
37 47 /// 操作人
38 48 /// </summary>
39 49 public string czr { get; set; }
40   -
  50 +
41 51 /// <summary>
42 52 /// 操作时间
43 53 /// </summary>
44 54 public DateTime? czsj { get; set; }
45   -
  55 +
46 56 /// <summary>
47 57 /// 顾客
48 58 /// </summary>
49 59 public string gk { get; set; }
50   -
  60 +
51 61 /// <summary>
52 62 /// 顾客姓名
53 63 /// </summary>
54 64 public string gkxm { get; set; }
55   -
  65 +
56 66 /// <summary>
57 67 /// 预约健康师
58 68 /// </summary>
59 69 public string yyjks { get; set; }
60   -
  70 +
  71 + /// <summary>
  72 + /// 预约健康师名称
  73 + /// </summary>
  74 + public string yyjksName { get; set; }
  75 +
61 76 /// <summary>
62 77 /// 预约开始时间
63 78 /// </summary>
64 79 public DateTime? yysj { get; set; }
65   -
  80 +
66 81 /// <summary>
67 82 /// 预约结束时间
68 83 /// </summary>
69 84 public DateTime? yyjs { get; set; }
70   -
  85 +
71 86 /// <summary>
72 87 /// 预约状态
73 88 /// </summary>
74 89 public string F_Status { get; set; }
75   -
  90 +
76 91 }
77 92 }
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYyjl/LqYyjlListOutput.cs
... ... @@ -11,66 +11,81 @@ namespace NCC.Extend.Entitys.Dto.LqYyjl
11 11 /// 预约编号
12 12 /// </summary>
13 13 public string id { get; set; }
14   -
  14 +
15 15 /// <summary>
16 16 /// 单据门店
17 17 /// </summary>
18 18 public string djmd { get; set; }
19   -
  19 +
  20 + /// <summary>
  21 + /// 单据门店名称
  22 + /// </summary>
  23 + public string djmdName { get; set; }
  24 +
20 25 /// <summary>
21 26 /// 邀约人
22 27 /// </summary>
23 28 public string yyr { get; set; }
24   -
  29 +
  30 + /// <summary>
  31 + /// 邀约人名称
  32 + /// </summary>
  33 + public string yyrName { get; set; }
  34 +
25 35 /// <summary>
26 36 /// 顾客类型
27 37 /// </summary>
28 38 public string gklx { get; set; }
29   -
  39 +
30 40 /// <summary>
31 41 /// 预约体验项目
32 42 /// </summary>
33 43 public string yytyxm { get; set; }
34   -
  44 +
35 45 /// <summary>
36 46 /// 操作人
37 47 /// </summary>
38 48 public string czr { get; set; }
39   -
  49 +
40 50 /// <summary>
41 51 /// 操作时间
42 52 /// </summary>
43 53 public DateTime? czsj { get; set; }
44   -
  54 +
45 55 /// <summary>
46 56 /// 顾客
47 57 /// </summary>
48 58 public string gk { get; set; }
49   -
  59 +
50 60 /// <summary>
51 61 /// 顾客姓名
52 62 /// </summary>
53 63 public string gkxm { get; set; }
54   -
  64 +
55 65 /// <summary>
56 66 /// 预约健康师
57 67 /// </summary>
58 68 public string yyjks { get; set; }
59   -
  69 +
  70 + /// <summary>
  71 + /// 预约健康师名称
  72 + /// </summary>
  73 + public string yyjksName { get; set; }
  74 +
60 75 /// <summary>
61 76 /// 预约开始时间
62 77 /// </summary>
63 78 public DateTime? yysj { get; set; }
64   -
  79 +
65 80 /// <summary>
66 81 /// 预约结束时间
67 82 /// </summary>
68 83 public DateTime? yyjs { get; set; }
69   -
  84 +
70 85 /// <summary>
71 86 /// 预约状态
72 87 /// </summary>
73 88 public string F_Status { get; set; }
74   -
  89 +
75 90 }
76 91 }
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/README.md
... ... @@ -67,7 +67,6 @@
67 67 - `lq_yaoyjl/` - 邀约记录
68 68 - `lq_yxhdfa/` - 营销活动方案
69 69 - `lq_yyjl/` - 预约记录
70   -- `lq_bmzb/` - 部门总表
71 70 - `lq_cpxx/` - 产品资料
72 71 - `lq_gz/` - 工资全字段
73 72 - `lq_yy/` - 医院
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_bmzb/LqBmzbEntity.cs deleted
1   -using NCC.Common.Const;
2   -using SqlSugar;
3   -using System;
4   -
5   -namespace NCC.Extend.Entitys.lq_bmzb
6   -{
7   - /// <summary>
8   - /// 部门管理
9   - /// </summary>
10   - [SugarTable("lq_bmzb")]
11   - [Tenant(ClaimConst.TENANT_ID)]
12   - public class LqBmzbEntity
13   - {
14   - /// <summary>
15   - /// 部门编号
16   - /// </summary>
17   - [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
18   - public string Id { get; set; }
19   -
20   - /// <summary>
21   - /// 部门名称
22   - /// </summary>
23   - [SugarColumn(ColumnName = "bmmc")]
24   - public string Bmmc { get; set; }
25   -
26   - /// <summary>
27   - /// 部门分类
28   - /// </summary>
29   - [SugarColumn(ColumnName = "bmfl")]
30   - public string Bmfl { get; set; }
31   -
32   - }
33   -}
34 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_khxx/LqKhxxEntity.cs
... ... @@ -63,7 +63,7 @@ namespace NCC.Extend.Entitys.lq_khxx
63 63 /// 最近登录时间
64 64 /// </summary>
65 65 [SugarColumn(ColumnName = "zjdlsj")]
66   - public string Zjdlsj { get; set; }
  66 + public DateTime? Zjdlsj { get; set; }
67 67  
68 68 /// <summary>
69 69 /// 归属门店
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_yaoyjl/LqYaoyjlEntity.cs
... ... @@ -16,54 +16,67 @@ namespace NCC.Extend.Entitys.lq_yaoyjl
16 16 /// </summary>
17 17 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
18 18 public string Id { get; set; }
19   -
  19 +
20 20 /// <summary>
21 21 /// 邀约人
22 22 /// </summary>
23   - [SugarColumn(ColumnName = "yyr")]
  23 + [SugarColumn(ColumnName = "yyr")]
24 24 public string Yyr { get; set; }
25   -
  25 +
26 26 /// <summary>
27 27 /// 邀约时间
28 28 /// </summary>
29   - [SugarColumn(ColumnName = "yysj")]
  29 + [SugarColumn(ColumnName = "yysj")]
30 30 public DateTime? Yysj { get; set; }
31   -
  31 +
32 32 /// <summary>
33 33 /// 邀约客户
34 34 /// </summary>
35   - [SugarColumn(ColumnName = "yykh")]
  35 + [SugarColumn(ColumnName = "yykh")]
36 36 public string Yykh { get; set; }
37   -
  37 +
38 38 /// <summary>
39 39 /// 邀约客户姓名
40 40 /// </summary>
41   - [SugarColumn(ColumnName = "yykhxm")]
  41 + [SugarColumn(ColumnName = "yykhxm")]
42 42 public string Yykhxm { get; set; }
43   -
  43 +
44 44 /// <summary>
45 45 /// 电话是否有效
46 46 /// </summary>
47   - [SugarColumn(ColumnName = "dhsfyx")]
  47 + [SugarColumn(ColumnName = "dhsfyx")]
48 48 public string Dhsfyx { get; set; }
49   -
  49 +
50 50 /// <summary>
51 51 /// 联系时间
52 52 /// </summary>
53   - [SugarColumn(ColumnName = "lxsj")]
  53 + [SugarColumn(ColumnName = "lxsj")]
54 54 public DateTime? Lxsj { get; set; }
55   -
  55 +
56 56 /// <summary>
57 57 /// 联系记录
58 58 /// </summary>
59   - [SugarColumn(ColumnName = "lxjl")]
  59 + [SugarColumn(ColumnName = "lxjl")]
60 60 public string Lxjl { get; set; }
61   -
  61 +
62 62 /// <summary>
63 63 /// 拓客编号
64 64 /// </summary>
65   - [SugarColumn(ColumnName = "tkbh")]
  65 + [SugarColumn(ColumnName = "tkbh")]
66 66 public string Tkbh { get; set; }
67   -
  67 +
  68 +
  69 + /// <summary>
  70 + /// 所属门店ID
  71 + /// </summary>
  72 + [SugarColumn(ColumnName = "F_StoreId")]
  73 + public string StoreId { get; set; }
  74 +
  75 + /// <summary>
  76 + /// 添加时间
  77 + /// </summary>
  78 + [SugarColumn(ColumnName = "F_CreateTime")]
  79 + public DateTime CreateTime { get; set; } = DateTime.Now;
  80 +
68 81 }
69 82 }
70 83 \ No newline at end of file
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_yyjl/LqYyjlEntity.cs
... ... @@ -16,78 +16,84 @@ namespace NCC.Extend.Entitys.lq_yyjl
16 16 /// </summary>
17 17 [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]
18 18 public string Id { get; set; }
19   -
  19 +
20 20 /// <summary>
21 21 /// 单据门店
22 22 /// </summary>
23   - [SugarColumn(ColumnName = "djmd")]
  23 + [SugarColumn(ColumnName = "djmd")]
24 24 public string Djmd { get; set; }
25   -
  25 +
26 26 /// <summary>
27 27 /// 邀约人
28 28 /// </summary>
29   - [SugarColumn(ColumnName = "yyr")]
  29 + [SugarColumn(ColumnName = "yyr")]
30 30 public string Yyr { get; set; }
31   -
  31 +
32 32 /// <summary>
33 33 /// 顾客类型
34 34 /// </summary>
35   - [SugarColumn(ColumnName = "gklx")]
  35 + [SugarColumn(ColumnName = "gklx")]
36 36 public string Gklx { get; set; }
37   -
  37 +
38 38 /// <summary>
39 39 /// 预约体验项目
40 40 /// </summary>
41   - [SugarColumn(ColumnName = "yytyxm")]
  41 + [SugarColumn(ColumnName = "yytyxm")]
42 42 public string Yytyxm { get; set; }
43   -
  43 +
44 44 /// <summary>
45 45 /// 操作人
46 46 /// </summary>
47   - [SugarColumn(ColumnName = "czr")]
  47 + [SugarColumn(ColumnName = "czr")]
48 48 public string Czr { get; set; }
49   -
  49 +
50 50 /// <summary>
51 51 /// 操作时间
52 52 /// </summary>
53   - [SugarColumn(ColumnName = "czsj")]
  53 + [SugarColumn(ColumnName = "czsj")]
54 54 public DateTime? Czsj { get; set; }
55   -
  55 +
56 56 /// <summary>
57 57 /// 顾客
58 58 /// </summary>
59   - [SugarColumn(ColumnName = "gk")]
  59 + [SugarColumn(ColumnName = "gk")]
60 60 public string Gk { get; set; }
61   -
  61 +
62 62 /// <summary>
63 63 /// 顾客姓名
64 64 /// </summary>
65   - [SugarColumn(ColumnName = "gkxm")]
  65 + [SugarColumn(ColumnName = "gkxm")]
66 66 public string Gkxm { get; set; }
67   -
  67 +
68 68 /// <summary>
69 69 /// 预约健康师
70 70 /// </summary>
71   - [SugarColumn(ColumnName = "yyjks")]
  71 + [SugarColumn(ColumnName = "yyjks")]
72 72 public string Yyjks { get; set; }
73   -
  73 +
74 74 /// <summary>
75 75 /// 预约开始时间
76 76 /// </summary>
77   - [SugarColumn(ColumnName = "yysj")]
  77 + [SugarColumn(ColumnName = "yysj")]
78 78 public DateTime? Yysj { get; set; }
79   -
  79 +
80 80 /// <summary>
81 81 /// 预约结束时间
82 82 /// </summary>
83   - [SugarColumn(ColumnName = "yyjs")]
  83 + [SugarColumn(ColumnName = "yyjs")]
84 84 public DateTime? Yyjs { get; set; }
85   -
  85 +
86 86 /// <summary>
87 87 /// 预约状态
88 88 /// </summary>
89   - [SugarColumn(ColumnName = "F_Status")]
  89 + [SugarColumn(ColumnName = "F_Status")]
90 90 public string F_Status { get; set; }
91   -
  91 +
  92 + /// <summary>
  93 + /// 创建时间
  94 + /// </summary>
  95 + [SugarColumn(ColumnName = "F_CreateTime")]
  96 + public DateTime CreateTime { get; set; }
  97 +
92 98 }
93 99 }
94 100 \ No newline at end of file
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/MemberTypeEnum.cs
... ... @@ -14,22 +14,22 @@ namespace NCC.Extend.Entitys.Enum
14 14 线索 = 0,
15 15  
16 16 /// <summary>
17   - ///
  17 + ///
18 18 /// </summary>
19   - [Description("潜客")]
20   - 潜客 = 1,
  19 + [Description("新客")]
  20 + 新客 = 1,
21 21  
22 22 /// <summary>
23   - ///
  23 + ///
24 24 /// </summary>
25   - [Description("新客")]
26   - 新客 = 2,
  25 + [Description("散客")]
  26 + 散客 = 2,
27 27  
28 28 /// <summary>
29   - /// 老客
  29 + /// 会员
30 30 /// </summary>
31   - [Description("老客")]
32   - 老客 = 3,
  31 + [Description("会员")]
  32 + 会员 = 3,
33 33  
34 34 }
35 35 }
36 36 \ No newline at end of file
... ...
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Mapper/LqBmzbMapper.cs deleted
1   -using NCC.Common.Helper;
2   -using NCC.Extend.Entitys.Dto.LqBmzb;
3   -using Mapster;
4   -using System.Collections.Generic;
5   -
6   -namespace NCC.Extend.Entitys.Mapper.LqBmzb
7   -{
8   - public class Mapper : IRegister
9   - {
10   - public void Register(TypeAdapterConfig config)
11   - {
12   - }
13   - }
14   -}
netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqBmzbService.cs deleted
1   -namespace NCC.Extend.Interfaces.LqBmzb
2   -{
3   - public interface ILqBmzbService
4   - {
5   - }
6   -}
7 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend/LqBmzbService.cs deleted
1   -// using NCC.Common.Core.Manager;
2   -// using NCC.Common.Enum;
3   -// using NCC.Common.Extension;
4   -// using NCC.Common.Filter;
5   -// using NCC.Dependency;
6   -// using NCC.DynamicApiController;
7   -// using NCC.FriendlyException;
8   -// using NCC.Extend.Interfaces.LqBmzb;
9   -// using Mapster;
10   -// using Microsoft.AspNetCore.Mvc;
11   -// using SqlSugar;
12   -// using System;
13   -// using System.Collections.Generic;
14   -// using System.Linq;
15   -// using System.Threading.Tasks;
16   -// using NCC.Extend.Entitys.lq_bmzb;
17   -// using NCC.Extend.Entitys.Dto.LqBmzb;
18   -// using Yitter.IdGenerator;
19   -// using NCC.Common.Helper;
20   -// using NCC.JsonSerialization;
21   -// using NCC.Common.Model.NPOI;
22   -// using NCC.Common.Configuration;
23   -// using NCC.DataEncryption;
24   -// using NCC.ClayObject;
25   -
26   -// namespace NCC.Extend.LqBmzb
27   -// {
28   -// /// <summary>
29   -// /// 部门管理服务
30   -// /// </summary>
31   -// [ApiDescriptionSettings(Tag = "Extend",Name = "LqBmzb", Order = 200)]
32   -// [Route("api/Extend/[controller]")]
33   -// public class LqBmzbService : ILqBmzbService, IDynamicApiController, ITransient
34   -// {
35   -// private readonly ISqlSugarRepository<LqBmzbEntity> _lqBmzbRepository;
36   -// private readonly SqlSugarScope _db;
37   -// private readonly IUserManager _userManager;
38   -
39   -// /// <summary>
40   -// /// 初始化一个<see cref="LqBmzbService"/>类型的新实例
41   -// /// </summary>
42   -// public LqBmzbService(
43   -// ISqlSugarRepository<LqBmzbEntity> lqBmzbRepository,
44   -// IUserManager userManager)
45   -// {
46   -// _lqBmzbRepository = lqBmzbRepository;
47   -// _db = _lqBmzbRepository.Context;
48   -// _userManager = userManager;
49   -// }
50   -
51   -// /// <summary>
52   -// /// 获取部门管理
53   -// /// </summary>
54   -// /// <param name="id">参数</param>
55   -// /// <returns></returns>
56   -// [HttpGet("{id}")]
57   -// public async Task<dynamic> GetInfo(string id)
58   -// {
59   -// var entity = await _db.Queryable<LqBmzbEntity>().FirstAsync(p => p.Id == id);
60   -// var output = entity.Adapt<LqBmzbInfoOutput>();
61   -// return output;
62   -// }
63   -
64   -// /// <summary>
65   -// /// 获取部门管理列表
66   -// /// </summary>
67   -// /// <param name="input">请求参数</param>
68   -// /// <returns></returns>
69   -// [HttpGet("")]
70   -// public async Task<dynamic> GetList([FromQuery] LqBmzbListQueryInput input)
71   -// {
72   -// var sidx = input.sidx == null ? "id" : input.sidx;
73   -// var data = await _db.Queryable<LqBmzbEntity>()
74   -// .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))
75   -// .WhereIF(!string.IsNullOrEmpty(input.bmmc), p => p.Bmmc.Contains(input.bmmc))
76   -// .WhereIF(!string.IsNullOrEmpty(input.bmfl), p => p.Bmfl.Equals(input.bmfl))
77   -// .Select(it=> new LqBmzbListOutput
78   -// {
79   -// id = it.Id,
80   -// bmmc=it.Bmmc,
81   -// bmfl=it.Bmfl,
82   -// }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize);
83   -// return PageResult<LqBmzbListOutput>.SqlSugarPageResult(data);
84   -// }
85   -
86   -// /// <summary>
87   -// /// 新建部门管理
88   -// /// </summary>
89   -// /// <param name="input">参数</param>
90   -// /// <returns></returns>
91   -// [HttpPost("")]
92   -// public async Task Create([FromBody] LqBmzbCrInput input)
93   -// {
94   -// var userInfo = await _userManager.GetUserInfo();
95   -// var entity = input.Adapt<LqBmzbEntity>();
96   -// entity.Id = YitIdHelper.NextId().ToString();
97   -// var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
98   -// if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000);
99   -// }
100   -
101   -// /// <summary>
102   -// /// 获取部门管理无分页列表
103   -// /// </summary>
104   -// /// <param name="input">请求参数</param>
105   -// /// <returns></returns>
106   -// [NonAction]
107   -// public async Task<dynamic> GetNoPagingList([FromQuery] LqBmzbListQueryInput input)
108   -// {
109   -// var sidx = input.sidx == null ? "id" : input.sidx;
110   -// var data = await _db.Queryable<LqBmzbEntity>()
111   -// .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))
112   -// .WhereIF(!string.IsNullOrEmpty(input.bmmc), p => p.Bmmc.Contains(input.bmmc))
113   -// .WhereIF(!string.IsNullOrEmpty(input.bmfl), p => p.Bmfl.Equals(input.bmfl))
114   -// .Select(it=> new LqBmzbListOutput
115   -// {
116   -// id = it.Id,
117   -// bmmc=it.Bmmc,
118   -// bmfl=it.Bmfl,
119   -// }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync();
120   -// return data;
121   -// }
122   -
123   -// /// <summary>
124   -// /// 导出部门管理
125   -// /// </summary>
126   -// /// <param name="input">请求参数</param>
127   -// /// <returns></returns>
128   -// [HttpGet("Actions/Export")]
129   -// public async Task<dynamic> Export([FromQuery] LqBmzbListQueryInput input)
130   -// {
131   -// var userInfo = await _userManager.GetUserInfo();
132   -// var exportData = new List<LqBmzbListOutput>();
133   -// if (input.dataType == 0)
134   -// {
135   -// var data = Clay.Object(await this.GetList(input));
136   -// exportData = data.Solidify<PageResult<LqBmzbListOutput>>().list;
137   -// }
138   -// else
139   -// {
140   -// exportData = await this.GetNoPagingList(input);
141   -// }
142   -// List<ParamsModel> paramList = "[{\"value\":\"部门编号\",\"field\":\"id\"},{\"value\":\"部门名称\",\"field\":\"bmmc\"},{\"value\":\"部门分类\",\"field\":\"bmfl\"},]".ToList<ParamsModel>();
143   -// ExcelConfig excelconfig = new ExcelConfig();
144   -// excelconfig.FileName = "部门管理.xls";
145   -// excelconfig.HeadFont = "微软雅黑";
146   -// excelconfig.HeadPoint = 10;
147   -// excelconfig.IsAllSizeColumn = true;
148   -// excelconfig.ColumnModel = new List<ExcelColumnModel>();
149   -// List<string> selectKeyList = input.selectKey.Split(',').ToList();
150   -// foreach (var item in selectKeyList)
151   -// {
152   -// var isExist = paramList.Find(p => p.field == item);
153   -// if (isExist != null)
154   -// {
155   -// excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value });
156   -// }
157   -// }
158   -// var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName;
159   -// ExcelExportHelper<LqBmzbListOutput>.Export(exportData, excelconfig, addPath);
160   -// var fileName = _userManager.UserId + "|" + addPath + "|xls";
161   -// var output = new
162   -// {
163   -// name = excelconfig.FileName,
164   -// url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC")
165   -// };
166   -// return output;
167   -// }
168   -
169   -// /// <summary>
170   -// /// 批量删除部门管理
171   -// /// </summary>
172   -// /// <param name="ids">主键数组</param>
173   -// /// <returns></returns>
174   -// [HttpPost("batchRemove")]
175   -// public async Task BatchRemove([FromBody] List<string> ids)
176   -// {
177   -// var entitys = await _db.Queryable<LqBmzbEntity>().In(it => it.Id, ids).ToListAsync();
178   -// if (entitys.Count > 0)
179   -// {
180   -// try
181   -// {
182   -// //开启事务
183   -// _db.BeginTran();
184   -// //批量删除部门管理
185   -// await _db.Deleteable<LqBmzbEntity>().In(d => d.Id,ids).ExecuteCommandAsync();
186   -// //关闭事务
187   -// _db.CommitTran();
188   -// }
189   -// catch (Exception)
190   -// {
191   -// //回滚事务
192   -// _db.RollbackTran();
193   -// throw NCCException.Oh(ErrorCode.COM1002);
194   -// }
195   -// }
196   -// }
197   -
198   -// /// <summary>
199   -// /// 更新部门管理
200   -// /// </summary>
201   -// /// <param name="id">主键</param>
202   -// /// <param name="input">参数</param>
203   -// /// <returns></returns>
204   -// [HttpPut("{id}")]
205   -// public async Task Update(string id, [FromBody] LqBmzbUpInput input)
206   -// {
207   -// var entity = input.Adapt<LqBmzbEntity>();
208   -// var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
209   -// if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001);
210   -// }
211   -
212   -// /// <summary>
213   -// /// 删除部门管理
214   -// /// </summary>
215   -// /// <returns></returns>
216   -// [HttpDelete("{id}")]
217   -// public async Task Delete(string id)
218   -// {
219   -// var entity = await _db.Queryable<LqBmzbEntity>().FirstAsync(p => p.Id == id);
220   -// _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005);
221   -// var isOk = await _db.Deleteable<LqBmzbEntity>().Where(d => d.Id == id).ExecuteCommandAsync();
222   -// if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002);
223   -// }
224   -// }
225   -// }
netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
... ... @@ -25,6 +25,7 @@ using NCC.Extend.Entitys.lq_hytk_mx;
25 25 using NCC.Extend.Entitys.lq_kd_kdjlb;
26 26 using NCC.Extend.Entitys.lq_kd_pxmx;
27 27 using NCC.Extend.Entitys.lq_khxx;
  28 +using NCC.Extend.Entitys.lq_mdxx;
28 29 using NCC.Extend.Entitys.lq_xh_hyhk;
29 30 using NCC.Extend.Entitys.lq_xh_pxmx;
30 31 using NCC.Extend.Interfaces.LqKhxx;
... ... @@ -114,8 +115,8 @@ namespace NCC.Extend.LqKhxx
114 115 gzhzt = it.Gzhzt,
115 116 wxnc = it.Wxnc,
116 117 wxxcxzt = it.Wxxcxzt,
117   - zjdlsj = it.Zjdlsj,
118 118 gsmd = it.Gsmd,
  119 + gsmdName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == it.Gsmd).Select(u => u.Dm),
119 120 zcsj = it.Zcsj,
120 121 khlx = it.Khlx,
121 122 khjd = it.Khjd,
... ... @@ -179,9 +180,6 @@ namespace NCC.Extend.LqKhxx
179 180 public async Task<dynamic> GetNoPagingList([FromQuery] LqKhxxListQueryInput input)
180 181 {
181 182 var sidx = input.sidx == null ? "id" : input.sidx;
182   - List<string> queryZjdlsj = input.zjdlsj != null ? input.zjdlsj.Split(',').ToObeject<List<string>>() : null;
183   - DateTime? startZjdlsj = queryZjdlsj != null ? Ext.GetDateTime(queryZjdlsj.First()) : null;
184   - DateTime? endZjdlsj = queryZjdlsj != null ? Ext.GetDateTime(queryZjdlsj.Last()) : null;
185 183 List<string> queryZcsj = input.zcsj != null ? input.zcsj.Split(',').ToObeject<List<string>>() : null;
186 184 DateTime? startZcsj = queryZcsj != null ? Ext.GetDateTime(queryZcsj.First()) : null;
187 185 DateTime? endZcsj = queryZcsj != null ? Ext.GetDateTime(queryZcsj.Last()) : null;
... ... @@ -200,8 +198,6 @@ namespace NCC.Extend.LqKhxx
200 198 .WhereIF(!string.IsNullOrEmpty(input.gzhzt), p => p.Gzhzt.Equals(input.gzhzt))
201 199 .WhereIF(!string.IsNullOrEmpty(input.wxnc), p => p.Wxnc.Contains(input.wxnc))
202 200 .WhereIF(!string.IsNullOrEmpty(input.wxxcxzt), p => p.Wxxcxzt.Equals(input.wxxcxzt))
203   - // .WhereIF(queryZjdlsj != null, p => p.Zjdlsj >= new DateTime(startZjdlsj.ToDate().Year, startZjdlsj.ToDate().Month, startZjdlsj.ToDate().Day, 0, 0, 0))
204   - // .WhereIF(queryZjdlsj != null, p => p.Zjdlsj <= new DateTime(endZjdlsj.ToDate().Year, endZjdlsj.ToDate().Month, endZjdlsj.ToDate().Day, 23, 59, 59))
205 201 .WhereIF(!string.IsNullOrEmpty(input.gsmd), p => p.Gsmd.Contains(input.gsmd))
206 202 .WhereIF(queryZcsj != null, p => p.Zcsj >= new DateTime(startZcsj.ToDate().Year, startZcsj.ToDate().Month, startZcsj.ToDate().Day, 0, 0, 0))
207 203 .WhereIF(queryZcsj != null, p => p.Zcsj <= new DateTime(endZcsj.ToDate().Year, endZcsj.ToDate().Month, endZcsj.ToDate().Day, 23, 59, 59))
... ... @@ -265,9 +261,6 @@ namespace NCC.Extend.LqKhxx
265 261 public async Task<PageResult<LqKhxxListOutput>> GetLeadsPoolList([FromQuery] LqKhxxListQueryInput input)
266 262 {
267 263 var sidx = input.sidx == null ? "id" : input.sidx;
268   - List<string> queryZjdlsj = input.zjdlsj != null ? input.zjdlsj.Split(',').ToObeject<List<string>>() : null;
269   - DateTime? startZjdlsj = queryZjdlsj != null ? Ext.GetDateTime(queryZjdlsj.First()) : null;
270   - DateTime? endZjdlsj = queryZjdlsj != null ? Ext.GetDateTime(queryZjdlsj.Last()) : null;
271 264 List<string> queryZcsj = input.zcsj != null ? input.zcsj.Split(',').ToObeject<List<string>>() : null;
272 265 DateTime? startZcsj = queryZcsj != null ? Ext.GetDateTime(queryZcsj.First()) : null;
273 266 DateTime? endZcsj = queryZcsj != null ? Ext.GetDateTime(queryZcsj.Last()) : null;
... ...
netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
... ... @@ -80,6 +80,7 @@ namespace NCC.Extend.LqTkjlb
80 80 teamName = p.TeamName,
81 81 eventId = p.EventId,
82 82 eventName = SqlFunc.Subqueryable<LqEventEntity>().Where(e => e.Id == p.EventId).Select(e => e.EventName),
  83 + storeName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == p.StoreId).Select(u => u.Dm),
83 84 })
84 85 .FirstAsync();
85 86  
... ... @@ -128,6 +129,7 @@ namespace NCC.Extend.LqTkjlb
128 129 isAddWeChat = it.IsAddWeChat,
129 130 remarks = it.Remarks,
130 131 storeId = it.StoreId,
  132 + storeName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == it.StoreId).Select(u => u.Dm),
131 133 teamName = it.TeamName,
132 134 eventId = it.EventId,
133 135 eventName = SqlFunc.Subqueryable<LqEventEntity>().Where(u => u.Id == it.EventId).Select(u => u.EventName),
... ...
netcore/src/Modularity/Extend/NCC.Extend/LqYaoyjlService.cs
... ... @@ -22,13 +22,15 @@ using NCC.Common.Model.NPOI;
22 22 using NCC.Common.Configuration;
23 23 using NCC.DataEncryption;
24 24 using NCC.ClayObject;
  25 +using NCC.System.Entitys.Permission;
  26 +using NCC.Extend.Entitys.lq_mdxx;
25 27  
26 28 namespace NCC.Extend.LqYaoyjl
27 29 {
28 30 /// <summary>
29 31 /// 邀约记录服务
30 32 /// </summary>
31   - [ApiDescriptionSettings(Tag = "Extend", Name = "LqYaoyjl", Order = 200)]
  33 + [ApiDescriptionSettings(Tag = "绿纤邀约记录服务", Name = "LqYaoyjl", Order = 200)]
32 34 [Route("api/Extend/[controller]")]
33 35 public class LqYaoyjlService : ILqYaoyjlService, IDynamicApiController, ITransient
34 36 {
... ... @@ -48,6 +50,7 @@ namespace NCC.Extend.LqYaoyjl
48 50 _userManager = userManager;
49 51 }
50 52  
  53 + #region 邀约记录
51 54 /// <summary>
52 55 /// 获取邀约记录
53 56 /// </summary>
... ... @@ -58,9 +61,12 @@ namespace NCC.Extend.LqYaoyjl
58 61 {
59 62 var entity = await _db.Queryable<LqYaoyjlEntity>().FirstAsync(p => p.Id == id);
60 63 var output = entity.Adapt<LqYaoyjlInfoOutput>();
  64 + output.storeName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == entity.StoreId).Select(u => u.Dm);
61 65 return output;
62 66 }
  67 + #endregion
63 68  
  69 + #region 邀约记录列表
64 70 /// <summary>
65 71 /// 获取邀约记录列表
66 72 /// </summary>
... ... @@ -97,10 +103,16 @@ namespace NCC.Extend.LqYaoyjl
97 103 dhsfyx = it.Dhsfyx,
98 104 lxsj = it.Lxsj,
99 105 lxjl = it.Lxjl,
  106 + storeId = it.StoreId,
  107 + storeName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == it.StoreId).Select(u => u.Dm),
  108 + createTime = it.CreateTime,
  109 + yyrName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == it.Yyr).Select(u => u.RealName),
100 110 }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize);
101 111 return PageResult<LqYaoyjlListOutput>.SqlSugarPageResult(data);
102 112 }
  113 + #endregion
103 114  
  115 + #region 新建邀约记录
104 116 /// <summary>
105 117 /// 新建邀约记录
106 118 /// </summary>
... ... @@ -112,10 +124,14 @@ namespace NCC.Extend.LqYaoyjl
112 124 var userInfo = await _userManager.GetUserInfo();
113 125 var entity = input.Adapt<LqYaoyjlEntity>();
114 126 entity.Id = YitIdHelper.NextId().ToString();
  127 + entity.CreateTime = DateTime.Now;
  128 + entity.StoreId = _db.Queryable<UserEntity>().Where(u => u.Id == input.yyr).Select(u => u.Mdid).First();
115 129 var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
116 130 if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000);
117 131 }
  132 + #endregion
118 133  
  134 + #region 邀约记录无分页列表
119 135 /// <summary>
120 136 /// 获取邀约记录无分页列表
121 137 /// </summary>
... ... @@ -152,10 +168,13 @@ namespace NCC.Extend.LqYaoyjl
152 168 dhsfyx = it.Dhsfyx,
153 169 lxsj = it.Lxsj,
154 170 lxjl = it.Lxjl,
  171 + yyrName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.MobilePhone == it.Yyr).Select(u => u.RealName),
155 172 }).MergeTable().OrderBy(sidx + " " + input.sort).ToListAsync();
156 173 return data;
157 174 }
  175 + #endregion
158 176  
  177 + #region 导出邀约记录
159 178 /// <summary>
160 179 /// 导出邀约记录
161 180 /// </summary>
... ... @@ -201,7 +220,9 @@ namespace NCC.Extend.LqYaoyjl
201 220 };
202 221 return output;
203 222 }
  223 + #endregion
204 224  
  225 + #region 批量删除邀约记录
205 226 /// <summary>
206 227 /// 批量删除邀约记录
207 228 /// </summary>
... ... @@ -230,7 +251,9 @@ namespace NCC.Extend.LqYaoyjl
230 251 }
231 252 }
232 253 }
  254 + #endregion
233 255  
  256 + #region 更新邀约记录
234 257 /// <summary>
235 258 /// 更新邀约记录
236 259 /// </summary>
... ... @@ -241,10 +264,13 @@ namespace NCC.Extend.LqYaoyjl
241 264 public async Task Update(string id, [FromBody] LqYaoyjlUpInput input)
242 265 {
243 266 var entity = input.Adapt<LqYaoyjlEntity>();
  267 + entity.StoreId = _db.Queryable<UserEntity>().Where(u => u.Id == input.yyr).Select(u => u.Mdid).First();
244 268 var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
245 269 if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001);
246 270 }
  271 + #endregion
247 272  
  273 + #region 删除邀约记录
248 274 /// <summary>
249 275 /// 删除邀约记录
250 276 /// </summary>
... ... @@ -257,5 +283,6 @@ namespace NCC.Extend.LqYaoyjl
257 283 var isOk = await _db.Deleteable<LqYaoyjlEntity>().Where(d => d.Id == id).ExecuteCommandAsync();
258 284 if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002);
259 285 }
  286 + #endregion
260 287 }
261 288 }
... ...
netcore/src/Modularity/Extend/NCC.Extend/LqYyjlService.cs
... ... @@ -16,10 +16,12 @@ using NCC.DataEncryption;
16 16 using NCC.Dependency;
17 17 using NCC.DynamicApiController;
18 18 using NCC.Extend.Entitys.Dto.LqYyjl;
  19 +using NCC.Extend.Entitys.lq_mdxx;
19 20 using NCC.Extend.Entitys.lq_yyjl;
20 21 using NCC.Extend.Interfaces.LqYyjl;
21 22 using NCC.FriendlyException;
22 23 using NCC.JsonSerialization;
  24 +using NCC.System.Entitys.Permission;
23 25 using SqlSugar;
24 26 using Yitter.IdGenerator;
25 27  
... ... @@ -28,7 +30,7 @@ namespace NCC.Extend.LqYyjl
28 30 /// <summary>
29 31 /// 预约记录服务
30 32 /// </summary>
31   - [ApiDescriptionSettings(Tag = "Extend", Name = "LqYyjl", Order = 200)]
  33 + [ApiDescriptionSettings(Tag = "绿纤预约记录服务", Name = "LqYyjl", Order = 200)]
32 34 [Route("api/Extend/[controller]")]
33 35 public class LqYyjlService : ILqYyjlService, IDynamicApiController, ITransient
34 36 {
... ... @@ -45,7 +47,7 @@ namespace NCC.Extend.LqYyjl
45 47 _db = _lqYyjlRepository.Context;
46 48 _userManager = userManager;
47 49 }
48   -
  50 + #region 预约记录
49 51 /// <summary>
50 52 /// 获取预约记录
51 53 /// </summary>
... ... @@ -56,9 +58,33 @@ namespace NCC.Extend.LqYyjl
56 58 {
57 59 var entity = await _db.Queryable<LqYyjlEntity>().FirstAsync(p => p.Id == id);
58 60 var output = entity.Adapt<LqYyjlInfoOutput>();
  61 +
  62 + // 获取门店名称
  63 + if (!string.IsNullOrEmpty(entity.Djmd))
  64 + {
  65 + var store = await _db.Queryable<LqMdxxEntity>().Where(u => u.Id == entity.Djmd).FirstAsync();
  66 + output.djmdName = store?.Dm;
  67 + }
  68 +
  69 + // 获取预约人姓名
  70 + if (!string.IsNullOrEmpty(entity.Yyr))
  71 + {
  72 + var user = await _db.Queryable<UserEntity>().Where(u => u.Id == entity.Yyr).FirstAsync();
  73 + output.yyrName = user?.RealName;
  74 + }
  75 +
  76 + // 获取预约健康师姓名
  77 + if (!string.IsNullOrEmpty(entity.Yyjks))
  78 + {
  79 + var healthCoach = await _db.Queryable<UserEntity>().Where(u => u.Id == entity.Yyjks).FirstAsync();
  80 + output.yyjksName = healthCoach?.RealName;
  81 + }
  82 +
59 83 return output;
60 84 }
  85 + #endregion
61 86  
  87 + #region 预约记录列表
62 88 /// <summary>
63 89 /// 获取预约记录列表
64 90 /// </summary>
... ... @@ -109,13 +135,18 @@ namespace NCC.Extend.LqYyjl
109 135 yysj = it.Yysj,
110 136 yyjs = it.Yyjs,
111 137 F_Status = it.F_Status,
  138 + yyrName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == it.Yyr).Select(u => u.RealName),
  139 + yyjksName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == it.Yyjks).Select(u => u.RealName),
  140 + djmdName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == it.Djmd).Select(u => u.Dm),
112 141 })
113 142 .MergeTable()
114 143 .OrderBy(sidx + " " + input.sort)
115 144 .ToPagedListAsync(input.currentPage, input.pageSize);
116 145 return PageResult<LqYyjlListOutput>.SqlSugarPageResult(data);
117 146 }
  147 + #endregion
118 148  
  149 + #region 新建预约记录
119 150 /// <summary>
120 151 /// 新建预约记录
121 152 /// </summary>
... ... @@ -129,11 +160,14 @@ namespace NCC.Extend.LqYyjl
129 160 entity.Id = YitIdHelper.NextId().ToString();
130 161 entity.Czr = _userManager.UserId;
131 162 entity.Czsj = DateTime.Now;
  163 + entity.CreateTime = DateTime.Now;
132 164 var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();
133 165 if (!(isOk > 0))
134 166 throw NCCException.Oh(ErrorCode.COM1000);
135 167 }
  168 + #endregion
136 169  
  170 + #region 预约记录无分页列表
137 171 /// <summary>
138 172 /// 获取预约记录无分页列表
139 173 /// </summary>
... ... @@ -184,13 +218,18 @@ namespace NCC.Extend.LqYyjl
184 218 yysj = it.Yysj,
185 219 yyjs = it.Yyjs,
186 220 F_Status = it.F_Status,
  221 + yyrName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == it.Yyr).Select(u => u.RealName),
  222 + yyjksName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == it.Yyjks).Select(u => u.RealName),
  223 + djmdName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == it.Djmd).Select(u => u.Dm),
187 224 })
188 225 .MergeTable()
189 226 .OrderBy(sidx + " " + input.sort)
190 227 .ToListAsync();
191 228 return data;
192 229 }
  230 + #endregion
193 231  
  232 + #region 导出预约记录
194 233 /// <summary>
195 234 /// 导出预约记录
196 235 /// </summary>
... ... @@ -233,7 +272,9 @@ namespace NCC.Extend.LqYyjl
233 272 var output = new { name = excelconfig.FileName, url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") };
234 273 return output;
235 274 }
  275 + #endregion
236 276  
  277 + #region 批量删除预约记录
237 278 /// <summary>
238 279 /// 批量删除预约记录
239 280 /// </summary>
... ... @@ -262,7 +303,9 @@ namespace NCC.Extend.LqYyjl
262 303 }
263 304 }
264 305 }
  306 + #endregion
265 307  
  308 + #region 更新预约记录
266 309 /// <summary>
267 310 /// 更新预约记录
268 311 /// </summary>
... ... @@ -277,7 +320,9 @@ namespace NCC.Extend.LqYyjl
277 320 if (!(isOk > 0))
278 321 throw NCCException.Oh(ErrorCode.COM1001);
279 322 }
  323 + #endregion
280 324  
  325 + #region 删除预约记录
281 326 /// <summary>
282 327 /// 删除预约记录
283 328 /// </summary>
... ... @@ -291,5 +336,6 @@ namespace NCC.Extend.LqYyjl
291 336 if (!(isOk > 0))
292 337 throw NCCException.Oh(ErrorCode.COM1002);
293 338 }
  339 + #endregion
294 340 }
295 341 }
... ...