public async Task UpdateResumeSkill(ResumeSkillModel skill) { skill.UpdateTimestamps(false); using (var ct = GetConnection(DatabaseType.PEngine, false)) { await ct.DbConnection.ExecuteAsync(ReadQuery("UpdateResumeSkill", ct.ProviderName), skill, transaction : ct.DbTransaction); } }
public async Task InsertResumeSkill(ResumeSkillModel skill, bool importFlag = false) { skill.UpdateGuid(); skill.UpdateTimestamps(true, importFlag); using (var ct = GetConnection(DatabaseType.PEngine, false)) { await ct.DbConnection.ExecuteAsync(ReadQuery("InsertResumeSkill", ct.ProviderName), skill, transaction : ct.DbTransaction); } }
/// <summary> /// 简历结构化入库(新增或更新具体方法) /// </summary> /// <param name="structuredResumeModel"></param> /// <param name="username"></param> /// <param name="companyId"></param> /// <param name="flag"></param> /// <param name="resumeOldId"></param> /// <param name="importFrom"></param> /// <returns></returns> public StoreResult AddOrUpdateResume(StructuredResumeModel structuredResumeModel, string username, string companyId, int flag, string resumeOldId = "", int importFrom = 0) { StoreResult result = new StoreResult(); var company = companyDb.GetCompanyById(companyId); if (company == null) { result.Flag = 4; result.Message = "公司不存在"; return(result); } resumeDb = new ResumeDb(new ApplicationCommon().GetUserDBConnection(company)); userDb = new UserDb(new ApplicationCommon().GetUserDBConnection(company)); var user = userDb.GetUserByUsername(username); if (user == null) { result.Flag = 4; result.Message = "该账号不存在"; return(result); } //简历基础表 var resumeModel = new ResumeModel(); resumeModel.account = structuredResumeModel.basic.account; resumeModel.account_province = structuredResumeModel.basic.account_province; resumeModel.address = structuredResumeModel.basic.address; resumeModel.address_province = structuredResumeModel.basic.address; resumeModel.age = structuredResumeModel.basic.age.ToString(); if (!string.IsNullOrWhiteSpace(structuredResumeModel.basic.birth)) { var birthArrary = structuredResumeModel.basic.birth.Split('-'); if (birthArrary.Length == 1) { resumeModel.birth = Convert.ToDateTime(structuredResumeModel.basic.birth + "-1-1"); } else if (birthArrary.Length == 2) { resumeModel.birth = Convert.ToDateTime(structuredResumeModel.basic.birth + "-1"); } else { resumeModel.birth = Convert.ToDateTime(structuredResumeModel.basic.birth); } } resumeModel.can_buy = "1"; resumeModel.company_id = companyId; resumeModel.resume_id = flag == 1 ? resumeOldId : Guid.NewGuid().ToString(); resumeModel.import_from = importFrom; resumeModel.import_type = Convert.ToInt32(structuredResumeModel.importType); resumeModel.created_by = user.user_id; resumeModel.created_time = DateTime.Now; resumeModel.current_salary = structuredResumeModel.basic.current_salary; resumeModel.current_status = structuredResumeModel.basic.current_status; resumeModel.degree = structuredResumeModel.basic.degree; resumeModel.email = structuredResumeModel.contact.email; resumeModel.expect_annual_salary_from = structuredResumeModel.basic.expect_annual_salary_from; resumeModel.expect_annual_salary_to = structuredResumeModel.basic.expect_annual_salary_to; resumeModel.expect_bonus = structuredResumeModel.basic.expect_bonus; resumeModel.expect_city_ids = structuredResumeModel.basic.expect_city_ids; resumeModel.expect_industry_name = structuredResumeModel.basic.expect_industry_name; resumeModel.expect_position_name = structuredResumeModel.basic.expect_position_name; resumeModel.expect_salary_from = structuredResumeModel.basic.expect_salary_from; resumeModel.expect_salary_month = structuredResumeModel.basic.expect_salary_month; resumeModel.expect_salary_to = structuredResumeModel.basic.expect_salary_to; resumeModel.expect_type = structuredResumeModel.basic.expect_type; resumeModel.expect_work_at = structuredResumeModel.basic.expect_work_at; resumeModel.gender = structuredResumeModel.basic.gender; resumeModel.graduate_date = structuredResumeModel.basic.graduate_date; resumeModel.htmlContent = structuredResumeModel.htmlContent; resumeModel.interests = structuredResumeModel.basic.interests; resumeModel.is_fertility = structuredResumeModel.basic.is_fertility; resumeModel.is_house = structuredResumeModel.basic.is_house; resumeModel.last_updated_by = user.user_id; resumeModel.last_updated_time = resumeModel.created_time; resumeModel.live_family = structuredResumeModel.basic.live_family; resumeModel.marital = structuredResumeModel.basic.marital; resumeModel.msn = structuredResumeModel.contact.msn; resumeModel.name = structuredResumeModel.basic.name; resumeModel.nation = structuredResumeModel.basic.nation; resumeModel.noHtmlContent = structuredResumeModel.noHtmlContent; resumeModel.other_info = structuredResumeModel.basic.other_info; resumeModel.overseas = structuredResumeModel.basic.overseas; resumeModel.phone = structuredResumeModel.contact.phone; resumeModel.photo = structuredResumeModel.basic.photo; resumeModel.political_status = structuredResumeModel.basic.political_status; resumeModel.qq = structuredResumeModel.contact.qq; resumeModel.resume_hideId = structuredResumeModel.basic.hidId; resumeModel.resume_orginalId = structuredResumeModel.basic.id; resumeModel.resume_status = 0; resumeModel.resume_updated_at = string.IsNullOrWhiteSpace(structuredResumeModel.update_info.updated_at) ? (DateTime?)null : Convert.ToDateTime(structuredResumeModel.update_info.updated_at); resumeModel.resume_userId = structuredResumeModel.basic.resumeUserId; resumeModel.school = structuredResumeModel.basic.school; resumeModel.self_remark = structuredResumeModel.basic.self_remark; resumeModel.sina = structuredResumeModel.contact.sina; if (structuredResumeModel.src != null) { var srcString = ""; for (int i = 0; i < structuredResumeModel.src.Length; i++) { srcString = srcString == "" ? structuredResumeModel.src[i].ToString() : ("," + structuredResumeModel.src[i].ToString()); } resumeModel.src = srcString; } else { resumeModel.src = "-1"; } resumeModel.tel = structuredResumeModel.contact.tel; resumeModel.ten = structuredResumeModel.contact.ten; resumeModel.wechat = structuredResumeModel.contact.wechat; resumeModel.work_experience = structuredResumeModel.basic.work_experience; //简历证书 var certificateList = new List <ResumeCertificateModel>(); if (structuredResumeModel.certificate != null) { foreach (var cerInfo in structuredResumeModel.certificate) { var certificateTemp = new ResumeCertificateModel(); certificateTemp.description = cerInfo.description; certificateTemp.name = cerInfo.name; certificateTemp.resume_id = resumeModel.resume_id; certificateTemp.start_time = cerInfo.start_time; certificateList.Add(certificateTemp); } } //简历教育经历 var educationList = new List <ResumeEducationModel>(); if (structuredResumeModel.education != null) { foreach (var eduInfo in structuredResumeModel.education) { var educationTemp = new ResumeEducationModel(); educationTemp.degree = eduInfo.degree; educationTemp.discipline_desc = eduInfo.discipline_desc; educationTemp.discipline_name = eduInfo.discipline_name; educationTemp.end_time = eduInfo.end_time; educationTemp.is_entrance = eduInfo.is_entrance; educationTemp.resume_id = resumeModel.resume_id; educationTemp.school_name = eduInfo.school_name; educationTemp.so_far = eduInfo.so_far; educationTemp.start_time = eduInfo.start_time; educationList.Add(educationTemp); } } //简历语言 var languageList = new List <ResumeLanguageModel>(); if (structuredResumeModel.language != null) { foreach (var lanInfo in structuredResumeModel.language) { var languageTemp = new ResumeLanguageModel(); languageTemp.certificate = lanInfo.certificate; languageTemp.level = lanInfo.level; languageTemp.name = lanInfo.name; languageTemp.resume_id = resumeModel.resume_id; languageList.Add(languageTemp); } } //项目经验 var projectList = new List <ResumeProjectModel>(); if (structuredResumeModel.project != null) { foreach (var proInfo in structuredResumeModel.project) { var projectTemp = new ResumeProjectModel(); projectTemp.describe = proInfo.describe; projectTemp.develop_tool = proInfo.develop_tool; projectTemp.end_time = proInfo.end_time; projectTemp.hard_env = proInfo.hard_env; projectTemp.name = proInfo.name; projectTemp.responsibilities = proInfo.responsibilities; projectTemp.resume_id = resumeModel.resume_id; projectTemp.so_far = proInfo.so_far; projectTemp.soft_env = proInfo.soft_env; projectTemp.start_time = proInfo.start_time; projectList.Add(projectTemp); } } //技能信息 var skillList = new List <ResumeSkillModel>(); if (structuredResumeModel.skill != null) { foreach (var skiInfo in structuredResumeModel.skill) { var skillTemp = new ResumeSkillModel(); skillTemp.level = skiInfo.level; skillTemp.name = skiInfo.name; skillTemp.period = skiInfo.period; skillTemp.resume_id = resumeModel.resume_id; skillList.Add(skillTemp); } } //培训信息 var trainList = new List <ResumeTrainingModel>(); if (structuredResumeModel.training != null) { foreach (var traInfo in structuredResumeModel.training) { var trainTemp = new ResumeTrainingModel(); trainTemp.authority = traInfo.authority; trainTemp.certificate = traInfo.certificate; trainTemp.city = traInfo.city; trainTemp.description = traInfo.description; trainTemp.end_time = traInfo.end_time; trainTemp.name = traInfo.name; trainTemp.resume_id = resumeModel.resume_id; trainTemp.so_far = traInfo.so_far; trainTemp.start_time = traInfo.start_time; trainList.Add(trainTemp); } } //工作经验 var workList = new List <ResumeWorkExperienceModel>(); if (structuredResumeModel.work != null) { foreach (var workInfo in structuredResumeModel.work) { var workTemp = new ResumeWorkExperienceModel(); workTemp.annual_salary_from = workInfo.annual_salary_from; workTemp.annual_salary_to = workInfo.annual_salary_to; workTemp.architecture_name = workInfo.architecture_name; workTemp.basic_salary_from = workInfo.basic_salary_from; workTemp.basic_salary_to = workInfo.basic_salary_to; workTemp.bonus = workInfo.bonus; workTemp.city = workInfo.city; workTemp.corporation_desc = workInfo.corporation_desc; workTemp.corporation_name = workInfo.corporation_name; workTemp.corporation_type = workInfo.corporation_type; workTemp.end_time = workInfo.end_time; workTemp.industry_name = workInfo.industry_name; workTemp.management_experience = workInfo.management_experience; workTemp.position_name = workInfo.position_name; workTemp.reporting_to = workInfo.reporting_to; workTemp.responsibilities = workInfo.responsibilities; workTemp.resume_id = resumeModel.resume_id; workTemp.salary_month = workInfo.salary_month; workTemp.scale = workInfo.scale; workTemp.so_far = workInfo.so_far; workTemp.start_time = workInfo.salary_month; workTemp.station_name = workInfo.station_name; workTemp.subordinates_count = workInfo.subordinates_count; workList.Add(workTemp); } } if (flag == 1) { if (string.IsNullOrEmpty(resumeOldId)) { result.Flag = 4; result.Message = "简历不存在"; return(result); } else { var oldResume = resumeDb.GetResumeById(resumeOldId); if (oldResume == null) { result.Flag = 4; result.Message = "简历不存在"; return(result); } resumeModel.created_by = oldResume.created_by; resumeModel.created_time = oldResume.created_time; resumeModel.last_updated_time = DateTime.Now; if (oldResume.last_updated_time.Value.AddDays(14) > resumeModel.last_updated_time.Value) { result.Flag = 3; result.Message = "重复简历更新时间在两周内,无法覆盖"; result.ResumeId = resumeModel.resume_id; return(result); } if (string.IsNullOrEmpty(resumeModel.name)) { result.Flag = 1; result.Message = "姓名不能为空"; return(result); } if (string.IsNullOrEmpty(resumeModel.phone) && string.IsNullOrEmpty(resumeModel.email)) { result.Flag = 2; result.Message = "手机和邮箱为空或格式错误"; return(result); } var dbReturn = resumeDb.UpdateResumeDetails(resumeModel, certificateList, educationList, languageList, projectList, skillList, trainList, workList); if (dbReturn) { result.Flag = 0; result.ResumeId = resumeModel.resume_id; result.Message = "简历覆盖成功"; return(result); } else { result.Flag = 5; result.Message = "异常"; return(result); } } } else { var returnVal = resumeDb.InsertResumeDetails(resumeModel, certificateList, educationList, languageList, projectList, skillList, trainList, workList); if (returnVal) { return(result); } else { result.Flag = 5; result.Message = "异常"; return(result); } } }