username@email.com
2024-05-17 a9d26b7c151f2727c9dc06a8236f2cf45a765cda
Merge branch 'master' of http://47.108.235.38:8080/r/baifenbaishop

# Conflicts:
# CoreCms.Net.Model/Entities/baifenbingfa/job/ApplicantProfile.cs
15个文件已修改
1个文件已删除
1个文件已添加
519 ■■■■ 已修改文件
CoreCms.Net.IRepository/IBaseRepository.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.IRepository/baifenbinfa/IJob_ApplicantProfileRepository.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.IRepository/baifenbinfa/IJob_jobSetingRepository.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/Entities/baifenbingfa/job/ApplicantProfile.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Model/Entities/baifenbingfa/job/ApplicantProfilePartial.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Repository/baifenbingfa/Job_ApplicantProfileRepository.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Repository/baifenbingfa/Job_jobSetingRepository.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/baifenbingfa/Job_ApplicantProfileServices.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Services/baifenbingfa/Job_jobSetingServices.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.deps.json 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/Controllers/baifenbingfa/Job_jobSetingController.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/job_jobseting/create.html 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/job_jobseting/details.html 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/job_jobseting/edit.html 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/job_jobseting/index.html 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/Controllers/baifenbingfa/JobController.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CoreCms.Net.IRepository/IBaseRepository.cs
@@ -103,7 +103,7 @@
        /// <param name="cacheTimes">缓存时长(分钟)</param>
        /// <returns></returns>
        Task<List<T>> QueryAsync(bool blUseNoLock = false, bool isDataCache = false, int cacheTimes = int.MaxValue);
        /// <summary>
        ///     根据条件查询数据
        /// </summary>
CoreCms.Net.IRepository/baifenbinfa/IJob_ApplicantProfileRepository.cs
@@ -35,7 +35,12 @@
        /// <returns></returns>
        Task<AdminUiCallBack> InsertAsync(Job_ApplicantProfile entity);
        /// <summary>
        /// 导航出入
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        Task<AdminUiCallBack> NvInsertAsync(Job_ApplicantProfile entity);
        /// <summary>
        /// 重写异步更新方法
        /// </summary>
CoreCms.Net.IRepository/baifenbinfa/IJob_jobSetingRepository.cs
@@ -95,5 +95,11 @@
            Expression<Func<Job_jobSeting, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
            int pageSize = 20, bool blUseNoLock = false);
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        Task<List<Job_jobSeting>> QueryAsyncALL();
    }
}
CoreCms.Net.Model/Entities/baifenbingfa/job/ApplicantProfile.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
@@ -42,12 +43,12 @@
        /// <summary>
        /// 应聘者的全名。
        /// </summary>
        public string name { get; set; }
        public string? name { get; set; }
        /// <summary>
        /// 应聘者的性别。
        /// </summary>
        public string gender { get; set; }
        public string? gender { get; set; }
        /// <summary>
        /// 应聘者的身高(单位:厘米)。
@@ -62,7 +63,7 @@
        /// <summary>
        /// 应聘者的出生日期。
        /// </summary>
        public DateTime dateOfBirth { get; set; }
        public DateTime? dateOfBirth { get; set; }
        /// <summary>
        /// 应聘者的出生日期。
@@ -80,12 +81,12 @@
        /// 应聘者的毕业学校名称。
        /// </summary>
        [SugarColumn(IsNullable =true)]
        public string graduatingSchool { get; set; }
        public string? graduatingSchool { get; set; }
        /// <summary>
        /// 应聘者的最高学历。
        /// </summary>
        public string educationLevel { get; set; }
        public string? educationLevel { get; set; }
        /// <summary>
        /// 应聘者的专业名称。
@@ -96,7 +97,7 @@
        /// <summary>
        /// 是否吸烟。
        /// </summary>
        public string smokes { get; set; }
        public string? smokes { get; set; }
        /// <summary>
        /// 驾驶技术等级(如新手、熟练、专业)。
@@ -210,7 +211,7 @@
    /// 工作经历
    /// </summary>
    [SqlCodeFirst]
    public class Job_EmploymentRecord
    public partial  class  Job_EmploymentRecord
    {
        /// <summary>
        /// 主键ID,自增长
@@ -220,7 +221,7 @@
        /// <summary>
        /// 工作开始日期。
        /// </summary>
        public DateTime startDate { get; set; }
        public DateTime? startDate { get; set; }
        /// <summary>
        /// 工作结束日期,如果是当前工作,则为空或表示至今的日期。
@@ -237,24 +238,27 @@
        /// <summary>
        /// 工作单位的名称。
        /// </summary>
        public string workplace { get; set; }
        [SugarColumn(IsNullable = true)]
        public string? workplace { get; set; }
        /// <summary>
        /// 在该单位担任的职务或职位。
        /// </summary>
        [SugarColumn(Length =512)]
        public string position { get; set; }
        [SugarColumn(Length =512, IsNullable = true)]
        public string? position { get; set; }
        /// <summary>
        /// 每月的工资或薪水。
        /// </summary>
        public decimal monthlySalary { get; set; }
        [SugarColumn(IsNullable = true)]
        public decimal? monthlySalary { get; set; }
        /// <summary>
        /// 离职的原因。
        /// </summary>
        [SugarColumn(Length = 512)]
        public string reasonForLeaving { get; set; }
        [SugarColumn(Length = 512, IsNullable = true)]
        public string? reasonForLeaving { get; set; }
        /// <summary>
@@ -280,22 +284,26 @@
        /// <summary>
        /// 姓名
        /// </summary>
        public string name { get; set; }
        [SugarColumn(IsNullable =true)]
        public string? name { get; set; }
        /// <summary>
        /// 称谓
        /// </summary>
        public string title { get; set; }
        [SugarColumn(IsNullable = true)]
        public string? title { get; set; }
        /// <summary>
        /// 年龄
        /// </summary>
        public int age { get; set; }
        [SugarColumn(IsNullable =true)]
        public int? age { get; set; }
        /// <summary>
        /// 工作单位及职务
        /// </summary>
        public string workUnitAndPosition { get; set; }
        [SugarColumn(IsNullable = true)]
        public string? workUnitAndPosition { get; set; }
    }
}
CoreCms.Net.Model/Entities/baifenbingfa/job/ApplicantProfilePartial.cs
@@ -25,13 +25,27 @@
        /// 工作简历
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(Job_EmploymentRecord.ApplicantProfileId))]
        public List<Job_EmploymentRecord> employmentRecords{ get; set; }
        public List<Job_EmploymentRecord>? employmentRecords{ get; set; }
        /// <summary>
        /// 工作简历
        /// 家庭成员
        /// </summary>
        [Display(Name = "洽谈时间")]
        [Display(Name = "家庭成员")]
        [Navigate(NavigateType.OneToMany, nameof(Job_FamilyMember.ApplicantProfileId))]
        public List<Job_FamilyMember> FamilyMembers { get; set; }
        public List<Job_FamilyMember>? FamilyMembers { get; set; }
    }
    public partial class Job_EmploymentRecord
    {
        /// <summary>
        /// 起始结束时间
        /// </summary>
        [SugarColumn(IsIgnore =true)]
        [Required]
        public List<DateTime> StartEndDateTimes { get; set; }
    }
}
CoreCms.Net.Repository/baifenbingfa/Job_ApplicantProfileRepository.cs
@@ -21,6 +21,7 @@
using CoreCms.Net.Model.ViewModels.UI;
using SqlSugar;
using CoreCms.Net.Model.Entities.baifenbingfa.jon;
using Org.BouncyCastle.Crypto;
namespace CoreCms.Net.Repository
{
@@ -263,6 +264,17 @@
            return list;
        }
        public async Task<AdminUiCallBack> NvInsertAsync(Job_ApplicantProfile entity)
        {
            var jm = new AdminUiCallBack();
            var bl = await DbClient.InsertNav<Job_ApplicantProfile>(entity).Include(x=>x.FamilyMembers).Include(x=>x.employmentRecords).ExecuteCommandAsync();
            jm.code = bl ? 0 : 1;
            jm.msg = bl ? GlobalConstVars.InsertSuccess : GlobalConstVars.InsertFailure;
            return jm;
        }
        #endregion
    }
CoreCms.Net.Repository/baifenbingfa/Job_jobSetingRepository.cs
@@ -218,6 +218,12 @@
            return list;
        }
        public async Task<List<Job_jobSeting>> QueryAsyncALL()
        {
            var page = await DbClient.Queryable<Job_jobSeting>().Where(x => x.isEN == true&&x.isdelete==false).ToListAsync();
            return page;
        }
        #endregion
    }
CoreCms.Net.Services/baifenbingfa/Job_ApplicantProfileServices.cs
@@ -49,7 +49,7 @@
        /// <returns></returns>
        public async Task<AdminUiCallBack> InsertAsync(Job_ApplicantProfile entity)
        {
            return await _dal.InsertAsync(entity);
            return await _dal.NvInsertAsync(entity);
        }
        /// <summary>
CoreCms.Net.Services/baifenbingfa/Job_jobSetingServices.cs
@@ -79,7 +79,9 @@
        /// <returns></returns>
        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
        {
            return await _dal.DeleteByIdAsync(id);
         var dta=await   _unitOfWork.GetDbClient().Queryable<Job_jobSeting>().In(id).FirstAsync();
            dta.isdelete = true;
            return await _dal.UpdateAsync(dta);
        }
        /// <summary>
@@ -89,7 +91,12 @@
        /// <returns></returns>
        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
        {
            return await _dal.DeleteByIdsAsync(ids);
            var dta = await _unitOfWork.GetDbClient().Queryable<Job_jobSeting>().In(ids).ToListAsync();
            foreach (var item in dta)
            {
                item.isdelete = true;
            }
            return await _dal.UpdateAsync(dta);
        }
        #endregion
CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.deps.json
File was deleted
CoreCms.Net.Web.Admin/Controllers/baifenbingfa/Job_jobSetingController.cs
@@ -32,6 +32,8 @@
using SqlSugar;
using CoreCms.Net.Model.Entities.baifenbingfa.jon;
using CoreCms.Net.Web.Admin.Infrastructure;
using CoreCms.Net.Services;
using CoreCms.Net.Auth.HttpContextUser;
namespace CoreCms.Net.Web.Admin.Controllers
{
@@ -47,16 +49,21 @@
    {
        private readonly IWebHostEnvironment _webHostEnvironment;
        private readonly IJob_jobSetingServices _Job_jobSetingServices;
        private readonly IHttpContextUser _user;
        /// <summary>
        /// 构造函数
        ///</summary>
        public Job_jobSetingController(IWebHostEnvironment webHostEnvironment
            ,IJob_jobSetingServices Job_jobSetingServices
            ,ICoreCmsUserLogServices CoreCmsUserLogServices
            ,IHttpContextUser User
            )
        {
            _webHostEnvironment = webHostEnvironment;
            _Job_jobSetingServices = Job_jobSetingServices;
            _user = User;
        }
        #region 获取列表============================================================
@@ -138,6 +145,7 @@
            {
                where = where.And(p => p.isEN == false);
            }
            where=where.And(p=>p.isdelete == false);
            //建立时间 datetime
            var createTime = Request.Form["createTime"].FirstOrDefault();
            if (!string.IsNullOrEmpty(createTime))
@@ -250,6 +258,8 @@
        [Description("创建提交")]
        public async Task<AdminUiCallBack> DoCreate([FromBody]Job_jobSeting entity)
        {
            entity.createBy = _user?.Name??"系统或者其他";
            entity.createTime = DateTime.Now;
            var jm = await _Job_jobSetingServices.InsertAsync(entity);
            return jm;
        }
@@ -292,7 +302,18 @@
        [Description("编辑提交")]
        public async Task<AdminUiCallBack> DoEdit([FromBody]Job_jobSeting entity)
        {
            var jm = await _Job_jobSetingServices.UpdateAsync(entity);
            entity.upDataBy = _user?.Name ?? "系统或者其他";
                entity.upDataTime = DateTime.Now;
            var data = await _Job_jobSetingServices.QueryByIdAsync(entity.id);
            data.upDataTime = DateTime.Now;
            data.upDataBy = _user?.Name ?? "系统或者其他";
            data.position=entity.position;
            data.quantity = entity.quantity;
            data.isEN=entity.isEN;
            data.jobDescription = entity.jobDescription;
            data.requirements = entity.requirements;
            data.location = entity.location;
            var jm = await _Job_jobSetingServices.UpdateAsync(data);
            return jm;
        }
        #endregion
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/job_jobseting/create.html
@@ -1,89 +1,51 @@
<script type="text/html" template lay-done="layui.data.done(d);">
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-Job_jobSeting-createForm" id="LAY-app-Job_jobSeting-createForm">
    
    <div class="layui-form-item">
        <label for="id" class="layui-form-label  layui-form-required">主键ID</label>
        <div class="layui-input-block">
            <input  type="number" min="0" max="999999" name="id"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="请输入主键ID" lay-reqText="请输入主键ID并为数字"  />
        </div>
    </div>
    
    <div class="layui-form-item">
        <label for="position" class="layui-form-label  layui-form-required">职位名称,用于描述工作岗位的职责和角色。</label>
        <label for="position" class="layui-form-label  layui-form-required">职位名称</label>
        <div class="layui-input-block">
            <input name="position"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="请输入职位名称,用于描述工作岗位的职责和角色。" lay-reqText="请输入职位名称,用于描述工作岗位的职责和角色。"  />
        </div>
    </div>
    
    <div class="layui-form-item">
        <label for="quantity" class="layui-form-label  layui-form-required">需求人数,表示公司招聘该职位的计划招聘数量。</label>
        <label for="quantity" class="layui-form-label  layui-form-required">需求人数。</label>
        <div class="layui-input-block">
            <input  type="number" min="0" max="999999" name="quantity"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="请输入需求人数,表示公司招聘该职位的计划招聘数量。" lay-reqText="请输入需求人数,表示公司招聘该职位的计划招聘数量。并为数字"  />
        </div>
    </div>
    
    <div class="layui-form-item">
        <label for="location" class="layui-form-label  layui-form-required">工作地点,包括城市和可能的具体办公地址。</label>
        <label for="location" class="layui-form-label  layui-form-required">工作地点</label>
        <div class="layui-input-block">
            <input name="location"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="请输入工作地点,包括城市和可能的具体办公地址。" lay-reqText="请输入工作地点,包括城市和可能的具体办公地址。"  />
        </div>
    </div>
    
    <div class="layui-form-item">
        <label for="jobDescription" class="layui-form-label  layui-form-required">工作描述,包含职位的主要职责、任务以及期望的工作成果。</label>
        <label for="jobDescription" class="layui-form-label  layui-form-required">工作描述</label>
        <div class="layui-input-block">
            <input name="jobDescription"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="请输入工作描述,包含职位的主要职责、任务以及期望的工作成果。" lay-reqText="请输入工作描述,包含职位的主要职责、任务以及期望的工作成果。"  />
        </div>
    </div>
    
    <div class="layui-form-item">
        <label for="requirements" class="layui-form-label  layui-form-required">岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。</label>
        <label for="requirements" class="layui-form-label  layui-form-required">岗位要求</label>
        <div class="layui-input-block">
            <input name="requirements"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="请输入岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。" lay-reqText="请输入岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。"  />
        </div>
    </div>
    
    <div class="layui-form-item" pane>
        <label for="isEN" class="layui-form-label  layui-form-required">是否有效</label>
        <label for="isEN" class="layui-form-label  layui-form-required">是否上架</label>
        <div class="layui-input-block">
            <input type="checkbox" lay-filter="switch" name="isEN"   lay-skin="switch" lay-text="开启|关闭">
            <input type="checkbox" lay-filter="switch" name="isEN"   lay-skin="switch" lay-text="上架|下架">
        </div>
    </div>
    
    <div class="layui-form-item">
        <label for="createTime" class="layui-form-label  layui-form-required">建立时间</label>
        <div class="layui-input-block">
            <input name="createTime"  id="createTime-Job_jobSeting-createTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="请输入建立时间" lay-reqText="请输入建立时间"  />
        </div>
    </div>
    
    <div class="layui-form-item">
        <label for="upDataTime" class="layui-form-label  layui-form-required">修改时间</label>
        <div class="layui-input-block">
            <input name="upDataTime"  id="createTime-Job_jobSeting-upDataTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="请输入修改时间" lay-reqText="请输入修改时间"  />
        </div>
    </div>
    <div class="layui-form-item">
        <label for="createBy" class="layui-form-label  layui-form-required">创建人</label>
        <div class="layui-input-block">
            <input name="createBy"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="请输入创建人" lay-reqText="请输入创建人"  />
        </div>
    </div>
    <div class="layui-form-item">
        <label for="upDataBy" class="layui-form-label  layui-form-required">修改人</label>
        <div class="layui-input-block">
            <input name="upDataBy"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="请输入修改人" lay-reqText="请输入修改人"  />
        </div>
    </div>
    <div class="layui-form-item" pane>
        <label for="isdelete" class="layui-form-label  layui-form-required">删除标志</label>
        <div class="layui-input-block">
            <input type="checkbox" lay-filter="switch" name="isdelete"   lay-skin="switch" lay-text="开启|关闭">
        </div>
    </div>
    
      <div class="layui-form-item text-right core-hidden">
        <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-Job_jobSeting-createForm-submit" id="LAY-app-Job_jobSeting-createForm-submit" value="确认添加">
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/job_jobseting/details.html
@@ -1,3 +1,12 @@
<!--
 * @FilePath: details.html
 * @Author: 小飞侠
 * @Date: 2024-05-15 14:27:56
 * @LastEditors:
 * @LastEditTime: 2024-05-15 17:01:59
 * Copyright: 2024  MinTinge CO.,LTD. All Rights Reserved.
 * @Descripttion: 写入你的描述
-->
<script type="text/html" template  lay-done="layui.data.done(d);">
    <table class="layui-table layui-form" lay-filter="LAY-app-Job_jobSeting-detailsForm" id="LAY-app-Job_jobSeting-detailsForm">
        <colgroup>
@@ -6,18 +15,11 @@
        </colgroup>
        <tbody>
            
            <tr>
                <td>
                    <label for="id">主键ID</label>
                </td>
                <td>
                    {{ d.params.data.id || '' }}
                </td>
            </tr>
            
            <tr>
                <td>
                    <label for="position">职位名称,用于描述工作岗位的职责和角色。</label>
                    <label for="position">职位名称</label>
                </td>
                <td>
                    {{ d.params.data.position || '' }}
@@ -26,7 +28,7 @@
            
            <tr>
                <td>
                    <label for="quantity">需求人数,表示公司招聘该职位的计划招聘数量。</label>
                    <label for="quantity">需求人数</label>
                </td>
                <td>
                    {{ d.params.data.quantity || '' }}
@@ -35,7 +37,7 @@
            
            <tr>
                <td>
                    <label for="location">工作地点,包括城市和可能的具体办公地址。</label>
                    <label for="location">工作地点</label>
                </td>
                <td>
                    {{ d.params.data.location || '' }}
@@ -44,7 +46,7 @@
            
            <tr>
                <td>
                    <label for="jobDescription">工作描述,包含职位的主要职责、任务以及期望的工作成果。</label>
                    <label for="jobDescription">工作描述</label>
                </td>
                <td>
                    {{ d.params.data.jobDescription || '' }}
@@ -53,7 +55,7 @@
            
            <tr>
                <td>
                    <label for="requirements">岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。</label>
                    <label for="requirements">岗位要求</label>
                </td>
                <td>
                    {{ d.params.data.requirements || '' }}
@@ -62,10 +64,10 @@
            
            <tr>
                <td>
                    <label for="isEN">是否有效</label>
                    <label for="isEN">是否上架</label>
                </td>
                <td>
                    <input type="checkbox" disabled name="isEN" value="{{d.params.data.isEN}}" lay-skin="switch" lay-text="开启|关闭" lay-filter="isEN" {{ d.params.data.isEN ? 'checked' : '' }}>
                    <input type="checkbox" disabled name="isEN" value="{{d.params.data.isEN}}" lay-skin="switch" lay-text="上架|下架" lay-filter="isEN" {{ d.params.data.isEN ? 'checked' : '' }}>
                </td>
            </tr>
            
@@ -78,41 +80,7 @@
                </td>
            </tr>
            
            <tr>
                <td>
                    <label for="upDataTime">修改时间</label>
                </td>
                <td>
                    {{ d.params.data.upDataTime || '' }}
                </td>
            </tr>
            <tr>
                <td>
                    <label for="createBy">创建人</label>
                </td>
                <td>
                    {{ d.params.data.createBy || '' }}
                </td>
            </tr>
            <tr>
                <td>
                    <label for="upDataBy">修改人</label>
                </td>
                <td>
                    {{ d.params.data.upDataBy || '' }}
                </td>
            </tr>
            <tr>
                <td>
                    <label for="isdelete">删除标志</label>
                </td>
                <td>
                    <input type="checkbox" disabled name="isdelete" value="{{d.params.data.isdelete}}" lay-skin="switch" lay-text="开启|关闭" lay-filter="isdelete" {{ d.params.data.isdelete ? 'checked' : '' }}>
                </td>
            </tr>
            
        </tbody>
    </table>
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/job_jobseting/edit.html
@@ -1,89 +1,49 @@
<script type="text/html" template lay-done="layui.data.sendParams(d);">
    <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-Job_jobSeting-editForm" id="LAY-app-Job_jobSeting-editForm">
        <input type="hidden" name="id"  value="{{d.params.data.id || '' }}" />
        <div class="layui-form-item">
            <label for="id" class="layui-form-label  layui-form-required">主键ID</label>
            <div class="layui-input-block">
                <input  type="number" min="0" max="999999" name="id"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.id || '' }}" placeholder="请输入主键ID" lay-reqText="请输入主键ID并为数字"  />
            </div>
        </div>
        
        <div class="layui-form-item">
            <label for="position" class="layui-form-label  layui-form-required">职位名称,用于描述工作岗位的职责和角色。</label>
            <label for="position" class="layui-form-label  layui-form-required">职位名称</label>
            <div class="layui-input-block">
                <input name="position"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="请输入职位名称,用于描述工作岗位的职责和角色。" lay-reqText="请输入职位名称,用于描述工作岗位的职责和角色。"  value="{{d.params.data.position || '' }}" />
            </div>
        </div>
        
        <div class="layui-form-item">
            <label for="quantity" class="layui-form-label  layui-form-required">需求人数,表示公司招聘该职位的计划招聘数量。</label>
            <label for="quantity" class="layui-form-label  layui-form-required">需求人数</label>
            <div class="layui-input-block">
                <input  type="number" min="0" max="999999" name="quantity"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.quantity || '' }}" placeholder="请输入需求人数,表示公司招聘该职位的计划招聘数量。" lay-reqText="请输入需求人数,表示公司招聘该职位的计划招聘数量。并为数字"  />
            </div>
        </div>
        
        <div class="layui-form-item">
            <label for="location" class="layui-form-label  layui-form-required">工作地点,包括城市和可能的具体办公地址。</label>
            <label for="location" class="layui-form-label  layui-form-required">工作地点</label>
            <div class="layui-input-block">
                <input name="location"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="请输入工作地点,包括城市和可能的具体办公地址。" lay-reqText="请输入工作地点,包括城市和可能的具体办公地址。"  value="{{d.params.data.location || '' }}" />
            </div>
        </div>
        
        <div class="layui-form-item">
            <label for="jobDescription" class="layui-form-label  layui-form-required">工作描述,包含职位的主要职责、任务以及期望的工作成果。</label>
            <label for="jobDescription" class="layui-form-label  layui-form-required">工作描述</label>
            <div class="layui-input-block">
                <input name="jobDescription"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="请输入工作描述,包含职位的主要职责、任务以及期望的工作成果。" lay-reqText="请输入工作描述,包含职位的主要职责、任务以及期望的工作成果。"  value="{{d.params.data.jobDescription || '' }}" />
            </div>
        </div>
        
        <div class="layui-form-item">
            <label for="requirements" class="layui-form-label  layui-form-required">岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。</label>
            <label for="requirements" class="layui-form-label  layui-form-required">岗位要求</label>
            <div class="layui-input-block">
                <input name="requirements"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="请输入岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。" lay-reqText="请输入岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。"  value="{{d.params.data.requirements || '' }}" />
            </div>
        </div>
        
        <div class="layui-form-item" pane>
            <label for="isEN" class="layui-form-label  layui-form-required">是否有效</label>
            <label for="isEN" class="layui-form-label  layui-form-required">是否上架</label>
            <div class="layui-input-block">
                <input type="checkbox" lay-filter="switch" name="isEN"   {{ d.params.data.isEN ? 'checked' : '' }} lay-skin="switch" lay-text="开启|关闭">
                <input type="checkbox" lay-filter="switch" name="isEN"   {{ d.params.data.isEN ? 'checked' : '' }} lay-skin="switch" lay-text="上架|下架">
            </div>
        </div>
        <div class="layui-form-item">
            <label for="createTime" class="layui-form-label  layui-form-required">建立时间</label>
            <div class="layui-input-block">
                <input name="createTime"  id="editTime-Job_jobSeting-createTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="请输入建立时间" lay-reqText="请输入建立时间"   value="{{d.params.data.createTime || '' }}"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label for="upDataTime" class="layui-form-label  layui-form-required">修改时间</label>
            <div class="layui-input-block">
                <input name="upDataTime"  id="editTime-Job_jobSeting-upDataTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="请输入修改时间" lay-reqText="请输入修改时间"   value="{{d.params.data.upDataTime || '' }}"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label for="createBy" class="layui-form-label  layui-form-required">创建人</label>
            <div class="layui-input-block">
                <input name="createBy"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="请输入创建人" lay-reqText="请输入创建人"  value="{{d.params.data.createBy || '' }}" />
            </div>
        </div>
        <div class="layui-form-item">
            <label for="upDataBy" class="layui-form-label  layui-form-required">修改人</label>
            <div class="layui-input-block">
                <input name="upDataBy"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="请输入修改人" lay-reqText="请输入修改人"  value="{{d.params.data.upDataBy || '' }}" />
            </div>
        </div>
        <div class="layui-form-item" pane>
            <label for="isdelete" class="layui-form-label  layui-form-required">删除标志</label>
            <div class="layui-input-block">
                <input type="checkbox" lay-filter="switch" name="isdelete"   {{ d.params.data.isdelete ? 'checked' : '' }} lay-skin="switch" lay-text="开启|关闭">
            </div>
        </div>
        </div>
        
        <div class="layui-form-item text-right core-hidden">
            <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-Job_jobSeting-editForm-submit" id="LAY-app-Job_jobSeting-editForm-submit" value="确认编辑">
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/job_jobseting/index.html
@@ -21,44 +21,16 @@
    <div class="layui-form coreshop-toolbar-search-form">
        <div class="layui-form-item">
            
            <div class="layui-inline">
                <label class="layui-form-label" for="id">主键ID</label>
                <label class="layui-form-label" for="position">职位名称</label>
                <div class="layui-input-inline">
                    <input type="text" name="id"  placeholder="请输入主键ID" class="layui-input">
                    <input type="text" name="position"  placeholder="请输入职位名称" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="position">职位名称,用于描述工作岗位的职责和角色。</label>
                <div class="layui-input-inline">
                    <input type="text" name="position"  placeholder="请输入职位名称,用于描述工作岗位的职责和角色。" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="quantity">需求人数,表示公司招聘该职位的计划招聘数量。</label>
                <div class="layui-input-inline">
                    <input type="text" name="quantity"  placeholder="请输入需求人数,表示公司招聘该职位的计划招聘数量。" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="location">工作地点,包括城市和可能的具体办公地址。</label>
                <div class="layui-input-inline">
                    <input type="text" name="location"  placeholder="请输入工作地点,包括城市和可能的具体办公地址。" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="jobDescription">工作描述,包含职位的主要职责、任务以及期望的工作成果。</label>
                <div class="layui-input-inline">
                    <input type="text" name="jobDescription"  placeholder="请输入工作描述,包含职位的主要职责、任务以及期望的工作成果。" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="requirements">岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。</label>
                <div class="layui-input-inline">
                    <input type="text" name="requirements"  placeholder="请输入岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="isEN">是否有效</label>
                <label class="layui-form-label" for="isEN">是否上架</label>
                <div class="layui-input-inline">
                    <select name="isEN">
                        <option value="">请选择</option>
@@ -73,34 +45,7 @@
                    <input type="text" name="createTime" id="searchTime-Job_jobSeting-createTime" placeholder="请输入建立时间" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="upDataTime">修改时间</label>
                <div class="layui-input-inline" style="width: 260px;">
                    <input type="text" name="upDataTime" id="searchTime-Job_jobSeting-upDataTime" placeholder="请输入修改时间" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="createBy">创建人</label>
                <div class="layui-input-inline">
                    <input type="text" name="createBy"  placeholder="请输入创建人" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="upDataBy">修改人</label>
                <div class="layui-input-inline">
                    <input type="text" name="upDataBy"  placeholder="请输入修改人" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" for="isdelete">删除标志</label>
                <div class="layui-input-inline">
                    <select name="isdelete">
                        <option value="">请选择</option>
                        <option value="True">是</option>
                        <option value="False">否</option>
                    </select>
                </div>
            </div>
            <div class="layui-inline">
                <button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-Job_jobSeting-search"><i class="layui-icon layui-icon-search"></i>筛选</button>
            </div>
@@ -181,18 +126,15 @@
                    cols: [
                        [
                            { type: "checkbox", fixed: "left" },
                            { field: 'id', title: '主键ID', width: 60, sort: false},
                            { field: 'position', title: '职位名称,用于描述工作岗位的职责和角色。', sort: false,width: 105 },
                            { field: 'quantity', title: '需求人数,表示公司招聘该职位的计划招聘数量。', sort: false,width: 105 },
                            { field: 'location', title: '工作地点,包括城市和可能的具体办公地址。', sort: false,width: 105 },
                            { field: 'jobDescription', title: '工作描述,包含职位的主要职责、任务以及期望的工作成果。', sort: false,width: 105 },
                            { field: 'requirements', title: '岗位要求,列出申请者需要满足的教育背景、技能、经验和资格。', sort: false,width: 105 },
                            { field: 'isEN', title: '是否有效', width: 95, templet: '#switch_isEN', sort: false , unresize: true},
                            { field: 'createTime', title: '建立时间', width: 130, sort: false},
                            { field: 'upDataTime', title: '修改时间', width: 130, sort: false},
                            { field: 'createBy', title: '创建人', sort: false,width: 105 },
                            { field: 'upDataBy', title: '修改人', sort: false,width: 105 },
                            { field: 'isdelete', title: '删除标志', width: 95, templet: '#switch_isdelete', sort: false , unresize: true},
                            {  type: 'numbers', title: '序号', width: 60, sort: false},
                            { field: 'position', title: '职位名称', sort: false,width: 105 },
                            { field: 'quantity', title: '需求人数', sort: false,width: 105 },
                            { field: 'location', title: '工作地点', sort: false,width: 105 },
                            { field: 'jobDescription', title: '工作描述', sort: false },
                            { field: 'requirements', title: '岗位要求', sort: false },
                            { field: 'isEN', title: '是否上架', width: 95, templet: '#switch_isEN', sort: false , unresize: true},
                            { field: 'createTime', title: '建立时间', width: 130, sort: false},
                            { width: 162, align: 'center', title:'操作', fixed: 'right', toolbar: '#LAY-app-Job_jobSeting-tableBox-bar' }
                        ]
                    ]
@@ -251,7 +193,7 @@
                                    area: ['1200px', '90%'],
                                    id: 'LAY-popup-Job_jobSeting-create',
                                    success: function (layero, index) {
                                        view(this.id).render('base/Job_jobSeting/create', { data: e.data }).done(function () {
                                        view(this.id).render('baifenbingfa/Job_jobSeting/create', { data: e.data }).done(function () {
                                            //监听提交
                                            form.on('submit(LAY-app-Job_jobSeting-createForm-submit)',
                                                function(data) {
@@ -297,7 +239,7 @@
                                area: ['1200px', '90%'],
                                id: 'LAY-popup-Job_jobSeting-edit',
                                success: function (layero, index) {
                                    view(this.id).render('base/Job_jobSeting/edit', { data: e.data }).done(function () {
                                    view(this.id).render('baifenbingfa/Job_jobSeting/edit', { data: e.data }).done(function () {
                                        //监听提交
                                        form.on('submit(LAY-app-Job_jobSeting-editForm-submit)',
                                            function(data) {
@@ -343,7 +285,7 @@
                                area: ['1200px', '90%'],
                                id: 'LAY-popup-Job_jobSeting-details',
                                success: function (layero, index) {
                                    view(this.id).render('base/Job_jobSeting/details', { data: e.data }).done(function () {
                                    view(this.id).render('baifenbingfa/Job_jobSeting/details', { data: e.data }).done(function () {
                                        form.render();
                                    });
                                    // 禁止弹窗出现滚动条
CoreCms.Net.Web.WebApi/Controllers/baifenbingfa/JobController.cs
New file
@@ -0,0 +1,82 @@
using CoreCms.Net.IRepository;
using CoreCms.Net.IServices;
using CoreCms.Net.Model.Entities.baifenbingfa.jon;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Services;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;
using System;
using System.Threading.Tasks;
namespace CoreCms.Net.Web.WebApi.Controllers.baifenbingfa
{
    /// <summary>
    /// 招聘相关
    /// </summary>
    [Route("api/[controller]")]
    [ApiController]
    public class JobController : ControllerBase
    {
        IJob_jobSetingRepository _job_JobSetingRepository;
        IJob_jobSetingServices _job_JobSetingServices;
        IJob_ApplicantProfileServices _job_ApplicantProfileServices;
         public JobController(IJob_jobSetingRepository job_JobSeting ,IJob_jobSetingServices job_JobSetingServices,IJob_ApplicantProfileServices job_ApplicantProfileServices)
        {
            _job_JobSetingRepository=job_JobSeting;
            _job_JobSetingServices=job_JobSetingServices;
             _job_ApplicantProfileServices=job_ApplicantProfileServices;
        }
        /// <summary>
        /// 获取招聘信息
        /// </summary>
        /// <returns></returns>
        [HttpPost("jobSet")]
        [SwaggerResponse(200, "返回数据", typeof(WebApiCallBack))]
        [SwaggerResponse(201, "Data类型", typeof(Job_jobSeting))]
        public async Task<WebApiCallBack> GetjobSeting()
        {
            var jm = new WebApiCallBack();
            jm.data = await _job_JobSetingRepository.QueryAsyncALL();
            jm.status = true;
            return jm;
        }
        /// <summary>
        /// 创建简历
        /// </summary>
        /// <param name="Param"></param>
        /// <returns></returns>
        [HttpPost("CreatCV")]
        public async Task<WebApiCallBack> CreatCVFile([FromBody] Job_ApplicantProfile Param)
        {
            var jm = new WebApiCallBack();
            var CreatTime=DateTime.Now;
            Param.createTime = CreatTime;
            Param.createBy = "PC";
            if (Param.employmentRecords!=null)
                foreach(var record in Param.employmentRecords)
                {
                    if(record.StartEndDateTimes==null||record.StartEndDateTimes.Count<2)
                    {
                        jm.status = false;
                        jm.msg = "工作经历必须填起止时间";
                        jm.code = 1;
                        return jm;
                    }
                    record.startDate= record.StartEndDateTimes[0];
                    record.endDate = record.StartEndDateTimes[1];
                }
            jm.data = await _job_ApplicantProfileServices.InsertAsync(Param);
            jm.status = true;
            return jm;
        }
    }
}
CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj
@@ -73,6 +73,7 @@
    <PackageReference Include="NLog.Web.AspNetCore" Version="5.3.7" />
    <PackageReference Include="Snowflake.Core" Version="2.0.0" />
    <PackageReference Include="StackExchange.Redis" Version="2.7.10" />
    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.6.1" />
    <PackageReference Include="Tencent.QCloud.Cos.Sdk" Version="5.4.35" />
    <PackageReference Include="ToolGood.Words" Version="3.1.0" />
  </ItemGroup>
@@ -108,10 +109,6 @@
    <None Update="Dockerfile">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Controllers\baifenbingfa\" />
  </ItemGroup>
  <ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>