lifa 2 лет назад
Родитель
Сommit
90cb1aafae

+ 51 - 0
src/platform/ZhonTai.Admin/Services/DiTuiAPI/Dto/BindQrcodeInput.cs

@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+
+#region <<版本注释>>
+/* ---------------------------
+* 版权所有 (c) 2023 Frank 保留所有权利。
+* CLR版本:4.0.30319.42000
+* 机器名称:FRANK-WIN
+* 命名空间:ZhonTai.Admin.Services.DiTuiAPI.Dto
+* 唯一标识:5386e3c8-ec2e-458f-b4d2-8dea1e652d7e
+* 
+* 创建者:Frank
+* 电子邮箱: cfrank227@gmail.com
+* 创建时间:2023/5/17 10:05:39
+--------------------------*/
+#endregion <<版本注释>>
+
+namespace ZhonTai.Admin.Services.DiTuiAPI.Dto
+{
+    public class BindQrcodeInput
+    {
+        /// <summary>
+        /// 项目ID
+        /// </summary>
+        public long ProjectId { get; set; }
+        /// <summary>
+        /// 姓名
+        /// </summary>
+        public string Salesman { get; set; }
+        /// <summary>
+        /// s手机号
+        /// </summary>
+        public string SalesmanPhone { get; set; }
+        /// <summary>
+        /// 省份
+        /// </summary>
+        public string SalesmanProvince { get; set; }
+        /// <summary>
+        /// 城市
+        /// </summary>
+        public string SalesmanCity { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string SalesmanRemark { get; set; }
+    }
+}

+ 55 - 0
src/platform/ZhonTai.Admin/Services/DiTuiAPI/Dto/BindQrcodeOutput.cs

@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+
+#region <<版本注释>>
+/* ---------------------------
+* 版权所有 (c) 2023 Frank 保留所有权利。
+* CLR版本:4.0.30319.42000
+* 机器名称:FRANK-WIN
+* 命名空间:ZhonTai.Admin.Services.DiTuiAPI.Dto
+* 唯一标识:92f62441-3592-490f-bf57-32303733c822
+* 
+* 创建者:Frank
+* 电子邮箱: cfrank227@gmail.com
+* 创建时间:2023/5/17 10:24:13
+--------------------------*/
+#endregion <<版本注释>>
+
+namespace ZhonTai.Admin.Services.DiTuiAPI.Dto
+{
+    public class BindQrcodeOutput
+    {
+        /// <summary>
+        /// ID 
+        /// </summary>
+        public long Id { get; set; }
+        /// <summary>
+        /// 项目ID
+        /// </summary>
+        public long ProjectId { get; set; }
+        /// <summary>
+        /// 姓名
+        /// </summary>
+        public string Salesman { get; set; }
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string SalesmanPhone { get; set; }
+        /// <summary>
+        /// 省份
+        /// </summary>
+        public string SalesmanProvince { get; set; }
+        /// <summary>
+        /// 城市
+        /// </summary>
+        public string SalesmanCity { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string SalesmanRemark { get; set; }
+    }
+}

+ 70 - 0
src/platform/ZhonTai.Admin/Services/DiTuiAPI/ProjectsService.cs

@@ -2,13 +2,16 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Linq.Expressions;
 using System.Text;
 using System.Threading.Tasks;
 using ZhonTai.Admin.Core.Attributes;
 using ZhonTai.Admin.Core.Consts;
 using ZhonTai.Admin.Core.Dto;
+using ZhonTai.Admin.Domain.User;
 using ZhonTai.Admin.Repositories.ProjectLink;
 using ZhonTai.Admin.Services.DiTuiAPI.Dto;
+using ZhonTai.Admin.Services.Notice.Dto;
 using ZhonTai.Admin.Services.ProjectLink.Dto;
 using ZhonTai.DynamicApi;
 using ZhonTai.DynamicApi.Attributes;
@@ -226,6 +229,73 @@ namespace ZhonTai.Admin.Services.DiTuiAPI
             return data;
         }
 
+        /// <summary>
+        /// 开码
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [NoOprationLog]
+        public async Task<string> BindQrcodeAsync(BindQrcodeInput input)
+        {
+            // 判断用户是否已经 开码  同租户 同项目 手机号唯一
+            var doubleUser = await _ProjectLinkRepository.Select.Where(a => a.SalesmanPhone == input.SalesmanPhone && a.ProjectId == input.ProjectId)
+                .FirstAsync(a => new { a.Salesman, a.SalesmanPhone, a.Id });
+            if(doubleUser != null)
+            {
+                throw ResultOutput.Exception($"手机号已开码");
+            }
+
+            // 查询未使用的链接的第一条数据
+            var existsLink = await _ProjectLinkRepository.Select.Where(a => a.IsUse == 0 && a.ProjectId == input.ProjectId)
+                .FirstAsync(a => new { a.Id, a.ModifiedTime});
+            if (existsLink == null)
+            {
+                throw ResultOutput.Exception($"当前项目已无可用链接");
+            }
+
+            var qrcode = await _ProjectLinkRepository.GetAsync(existsLink.Id);
+            if (!(qrcode?.Id > 0))
+            {
+                throw ResultOutput.Exception("链接不存在");
+            }
+            if(qrcode?.IsUse > 0)
+            {
+                throw ResultOutput.Exception("链接已使用,请重新开码");
+            }
+
+            Mapper.Map(input, qrcode);
+            qrcode.IsUse = 1;
+
+            await _ProjectLinkRepository.UpdateAsync(qrcode);
+
+            // 返回 链接ID 
+            return qrcode.Id.ToString();
+        }
+
+        /// <summary>
+        /// 获取开码信息
+        /// </summary>
+        /// <param name="id">二维码ID(链接ID)</param>
+        /// <returns></returns>
+        [HttpGet]
+        [NoOprationLog]
+        public async Task<BindQrcodeOutput> GetBindQrcodeAsync(long id = 0)
+        {
+            if (id == 0)
+            {
+                throw ResultOutput.Exception($"无效参数");
+            }
+            var result = await _ProjectLinkRepository.GetAsync<BindQrcodeOutput>(id);
+            return result;
+        }
+
+
+        /// <summary>
+        /// 判断字符串是否是手机号
+        /// </summary>
+        /// <param name="str_handset"></param>
+        /// <returns></returns>
         private static bool IsPhoneNumber(string str_handset)
         {
             return System.Text.RegularExpressions.Regex.IsMatch(str_handset, @"^1[3456789]\d{9}$");

+ 86 - 0
src/platform/ZhonTai.Admin/ZhonTai.Admin.xml

@@ -5290,6 +5290,71 @@
             <param name="user">用户信息</param>
             <returns></returns>
         </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeInput.ProjectId">
+            <summary>
+            项目ID
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeInput.Salesman">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeInput.SalesmanPhone">
+            <summary>
+            s手机号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeInput.SalesmanProvince">
+            <summary>
+            省份
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeInput.SalesmanCity">
+            <summary>
+            城市
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeInput.SalesmanRemark">
+            <summary>
+            备注
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeOutput.Id">
+            <summary>
+            ID 
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeOutput.ProjectId">
+            <summary>
+            项目ID
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeOutput.Salesman">
+            <summary>
+            姓名
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeOutput.SalesmanPhone">
+            <summary>
+            手机号
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeOutput.SalesmanProvince">
+            <summary>
+            省份
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeOutput.SalesmanCity">
+            <summary>
+            城市
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeOutput.SalesmanRemark">
+            <summary>
+            备注
+            </summary>
+        </member>
         <member name="P:ZhonTai.Admin.Services.DiTuiAPI.Dto.IndexOutput.Name">
             <summary>
             平台名称
@@ -5567,6 +5632,27 @@
             <param name="input"></param>
             <returns></returns>
         </member>
+        <member name="M:ZhonTai.Admin.Services.DiTuiAPI.ProjectsService.BindQrcodeAsync(ZhonTai.Admin.Services.DiTuiAPI.Dto.BindQrcodeInput)">
+            <summary>
+            开码
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Admin.Services.DiTuiAPI.ProjectsService.GetBindQrcodeAsync(System.Int64)">
+            <summary>
+            获取开码信息
+            </summary>
+            <param name="id">二维码ID(链接ID)</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZhonTai.Admin.Services.DiTuiAPI.ProjectsService.IsPhoneNumber(System.String)">
+            <summary>
+            判断字符串是否是手机号
+            </summary>
+            <param name="str_handset"></param>
+            <returns></returns>
+        </member>
         <member name="T:ZhonTai.Admin.Services.Document.DocumentService">
             <summary>
             文档服务