Compare commits

..

16 Commits

Author SHA1 Message Date
sh
8b3b7f63f9 1.sys_user添加idCard字段-与企业(company)能关联上
2.注册时保存idCard字段
2025-10-22 19:38:08 +08:00
sh
9b9e80dc62 修改求职者保存信息 2025-10-22 17:54:02 +08:00
sh
7752c74063 1.app_user表中添加工作经验(workExperience)字段
2.求职者注册时自动填充userId
2025-10-22 17:18:47 +08:00
sh
f4730c60fb 移动端岗位发布-添加岗位联系人 2025-10-22 16:00:57 +08:00
sh
d57ce9e3fc 移动端岗位查询-添加五险一金、企业类型查询条件 2025-10-22 15:28:32 +08:00
sh
8988c52594 修改移动端-授权第一次登录增加返回字段idCard、isCompanyUser 2025-10-22 15:20:13 +08:00
sh
ba3e66a3c4 修改移动端-注册接口 2025-10-22 14:55:14 +08:00
sh
aa55276a81 企业表-添加法人姓名、法人身份证、法人联系方式 2025-10-22 11:29:51 +08:00
sh
8c5ec3e0b3 app发布岗位时,添加描述-敏感词验证 2025-10-21 19:53:28 +08:00
sh
c795e63e96 添加查询岗位详情时-查询对应的附件信息 2025-10-21 19:20:33 +08:00
sh
9281eb700b 企业表添加-企业类型(0普通 1就业见习基地) 2025-10-21 18:51:36 +08:00
sh
8cf753ad54 1.添加多个企业查询功能-用户移动端企业比对 2025-10-21 18:19:06 +08:00
sh
65487c073f 1.添加多个企业查询功能-用户移动端企业比对 2025-10-21 18:14:12 +08:00
sh
4c28d07bc3 添加根据企业社会信用代码查询企业信息接口。 2025-10-21 17:16:31 +08:00
sh
a6d43c0bca /appLogin返回参数添加角色和idcard 2025-10-21 16:56:19 +08:00
sh
070239d1d5 /appLogin返回idCard(身份证或社会信用代码) 2025-10-21 16:15:03 +08:00
18 changed files with 205 additions and 27 deletions

View File

@@ -12,6 +12,7 @@ import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
@@ -133,4 +134,14 @@ public class AppCompanyController extends BaseController
Company status = companyService.registerStatus(); Company status = companyService.registerStatus();
return AjaxResult.success(status); return AjaxResult.success(status);
} }
@GetMapping("/queryCodeCompany")
@ApiOperation("根据社会信用代码查询企业")
public AjaxResult queryCodeCompany(@RequestParam("code") String code)
{
if (!StringUtils.hasText(code)) {
return AjaxResult.error("社会信用代码不能为空");
}
return AjaxResult.success(companyService.queryCodeCompany(code));
}
} }

View File

@@ -6,6 +6,7 @@ import com.ruoyi.cms.domain.query.ESJobSearch;
import com.ruoyi.cms.service.IESJobSearchService; import com.ruoyi.cms.service.IESJobSearchService;
import com.ruoyi.cms.service.IJobCollectionService; import com.ruoyi.cms.service.IJobCollectionService;
import com.ruoyi.cms.service.IJobService; import com.ruoyi.cms.service.IJobService;
import com.ruoyi.cms.util.sensitiveWord.SensitiveWordChecker;
import com.ruoyi.common.annotation.BussinessLog; import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
@@ -13,6 +14,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.ArrayUtils;
import org.dromara.easyes.core.biz.EsPageInfo; import org.dromara.easyes.core.biz.EsPageInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -36,6 +38,8 @@ public class AppJobController extends BaseController
private IJobCollectionService jobCollectionService; private IJobCollectionService jobCollectionService;
@Autowired @Autowired
private IESJobSearchService esJobSearchService; private IESJobSearchService esJobSearchService;
@Autowired
private SensitiveWordChecker sensitiveWordChecker;
/** /**
* 查询岗位列表 * 查询岗位列表
@@ -192,7 +196,25 @@ public class AppJobController extends BaseController
@PostMapping("/publishJob") @PostMapping("/publishJob")
public AjaxResult fix(@RequestBody Job job) public AjaxResult fix(@RequestBody Job job)
{ {
// 校验描述中的敏感词
List<String> sensitiveWords = sensitiveWordChecker.checkSensitiveWords(job.getDescription());
if (!sensitiveWords.isEmpty()) {
String errorMsg = "描述中包含敏感词:" + String.join("", sensitiveWords);
return AjaxResult.error(errorMsg);
}
jobService.publishJob(job); jobService.publishJob(job);
return success(); return success();
} }
@GetMapping("/jobCompare")
@ApiOperation("根据多个岗位id查询岗位详情")
public AjaxResult jobCompare(@ApiParam("岗位ID数组") @RequestParam("jobIds") Long[] jobIds) {
if (ArrayUtils.isEmpty(jobIds)) {
return AjaxResult.error("请传递岗位ID参数jobIds多个ID用&分隔");
}
if (jobIds.length > 5) {
return AjaxResult.error("最多支持对比5个岗位请减少参数数量");
}
return success(esJobSearchService.selectByIds(jobIds));
}
} }

View File

@@ -109,7 +109,7 @@ public class Job extends BaseEntity
@ApiModelProperty("是否收藏 0为否 1为是") @ApiModelProperty("是否收藏 0为否 1为是")
private Integer isCollection; private Integer isCollection;
@ApiModelProperty("工作地点") @ApiModelProperty("岗位描述")
private String description; private String description;
@ApiModelProperty("是否发布 0未发布 1发布") @ApiModelProperty("是否发布 0未发布 1发布")
@@ -169,4 +169,8 @@ public class Job extends BaseEntity
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty("岗位联系人列表") @ApiModelProperty("岗位联系人列表")
private List<JobContact> jobContactList; private List<JobContact> jobContactList;
@TableField(exist = false)
@ApiModelProperty("附件列表")
private List<File> filesList;
} }

View File

@@ -15,4 +15,6 @@ import java.util.List;
public interface JobContactMapper extends BaseMapper<JobContact> { public interface JobContactMapper extends BaseMapper<JobContact> {
List<JobContact> getSelectList(JobContact jobContact); List<JobContact> getSelectList(JobContact jobContact);
int batchInsert(List<JobContact> list);
} }

View File

@@ -75,4 +75,6 @@ public interface ICompanyService
List<Company> approvalList(Company company); List<Company> approvalList(Company company);
Company approval(Company company); Company approval(Company company);
Company queryCodeCompany(String code);
} }

View File

@@ -67,4 +67,6 @@ public interface IESJobSearchService
void updateJob(Long jobId); void updateJob(Long jobId);
void deleteJob(Long jobId); void deleteJob(Long jobId);
List<ESJobDocument> selectByIds(Long[] jobIds);
} }

View File

@@ -9,6 +9,7 @@ import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.cms.mapper.*; import com.ruoyi.cms.mapper.*;
import com.ruoyi.cms.util.StringUtil; import com.ruoyi.cms.util.StringUtil;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.common.core.domain.entity.JobTitle; import com.ruoyi.common.core.domain.entity.JobTitle;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.common.core.domain.model.RegisterBody;
@@ -130,13 +131,23 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
@Override @Override
public int registerAppUser(RegisterBody registerBody) { public int registerAppUser(RegisterBody registerBody) {
AppUser appUser=registerBody.getAppUser(); AppUser appUser=registerBody.getAppUser();
appUser.setUserId(SiteSecurityUtils.getUserId()); System.out.println("userId================"+SiteSecurityUtils.getUserId());
if(SiteSecurityUtils.isLogin()){
AppUser appUserResult=appUserMapper.selectById(SiteSecurityUtils.getUserId());
if(appUser==null){
appUser=appUserResult;
}else{
appUser.setPhone(appUserResult.getPhone());
appUser.setUserId(appUserResult.getUserId());
}
}
//角色集合 //角色集合
Map mapUserRole=new HashMap<>(); Map mapUserRole=new HashMap<>();
switch (appUser.getIsCompanyUser()){ switch (appUser.getIsCompanyUser()){
case "0"://企业 case "0"://企业
if(registerBody.getCompany()!=null){ if(registerBody.getCompany()!=null){
Long companyId=registerBody.getCompany().getCompanyId(); Company company=registerBody.getCompany();
Long companyId=company.getCompanyId();
if(companyId==null){ if(companyId==null){
companyMapper.insert(registerBody.getCompany()); companyMapper.insert(registerBody.getCompany());
registerBody.getCompany().getCompanyContactList().forEach(it->{ registerBody.getCompany().getCompanyContactList().forEach(it->{
@@ -146,29 +157,38 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
if(registerBody.getCompany().getCompanyContactList()!=null){ if(registerBody.getCompany().getCompanyContactList()!=null){
companyContactMapper.batchInsert(registerBody.getCompany().getCompanyContactList()); companyContactMapper.batchInsert(registerBody.getCompany().getCompanyContactList());
} }
//保存app_user信息
appUser.setIdCard(company.getCode());
appUser.setName(company.getName());
} }
mapUserRole.put("roleId",100); mapUserRole.put("roleId",100);
break; break;
default://求职者 default://求职者
if(registerBody.getExperiencesList()!=null){ if(registerBody.getExperiencesList()!=null){
registerBody.getExperiencesList().forEach(it->{
it.setUserId(SiteSecurityUtils.getUserId());
});
userWorkExperiencesMapper.batchInsert(registerBody.getExperiencesList()); userWorkExperiencesMapper.batchInsert(registerBody.getExperiencesList());
} }
if(registerBody.getAppSkillsList()!=null){ if(registerBody.getAppSkillsList()!=null){
registerBody.getAppSkillsList().forEach(it->{
it.setUserId(SiteSecurityUtils.getUserId());
});
appSkillMapper.batchInsert(registerBody.getAppSkillsList()); appSkillMapper.batchInsert(registerBody.getAppSkillsList());
} }
mapUserRole.put("roleId",1); mapUserRole.put("roleId",1);
} }
//保存sys_user //保存sys_user
SysUser sysUser=new SysUser(); SysUser sysUser=new SysUser();
sysUser.setUserId(appUser.getUserId());
sysUser.setUserName(appUser.getPhone()); sysUser.setUserName(appUser.getPhone());
sysUser.setNickName(appUser.getName()); sysUser.setNickName(StringUtils.isEmpty(appUser.getName())?appUser.getPhone():appUser.getName());
sysUser.setPassword(SecurityUtils.encryptPassword("123456")); sysUser.setPassword(SecurityUtils.encryptPassword("123456"));
sysUser.setPhonenumber(appUser.getPhone()); sysUser.setPhonenumber(appUser.getPhone());
sysUser.setSex(appUser.getSex()); sysUser.setSex(appUser.getSex());
sysUser.setStatus("0"); sysUser.setStatus("0");
sysUser.setLoginIp(appUser.getLoginIp()); sysUser.setLoginIp(appUser.getLoginIp());
sysUser.setLoginDate(appUser.getLoginDate()); sysUser.setLoginDate(appUser.getLoginDate());
sysUser.setIdCard(appUser.getIdCard());
appUserMapper.insertSysUser(sysUser); appUserMapper.insertSysUser(sysUser);
//保存sys_user_role //保存sys_user_role
mapUserRole.put("userId",appUser.getUserId()); mapUserRole.put("userId",appUser.getUserId());

View File

@@ -296,4 +296,9 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
return company1; return company1;
} }
@Override
public Company queryCodeCompany(String code) {
Company companyResult = companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getCode, code).orderByDesc(Company::getUpdateTime).last("LIMIT 1"));
return companyResult;
}
} }

View File

@@ -178,6 +178,12 @@ public class ESJobSearchImpl implements IESJobSearchService
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){ if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
newSearch.setType(esJobSearch.getType()); newSearch.setType(esJobSearch.getType());
} }
if(!StringUtil.isEmptyOrNull(esJobSearch.getDescription())){
newSearch.setDescription(esJobSearch.getDescription());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
newSearch.setCompanyNature(esJobSearch.getCompanyNature());
}
} }
LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds); LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds);
@@ -405,6 +411,12 @@ public class ESJobSearchImpl implements IESJobSearchService
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){ if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
wrapper.and(x->x.eq(ESJobDocument::getType,esJobSearch.getType())); wrapper.and(x->x.eq(ESJobDocument::getType,esJobSearch.getType()));
} }
if(!StringUtil.isEmptyOrNull(esJobSearch.getDescription())){
wrapper.and(x->x.like(ESJobDocument::getDescription,esJobSearch.getDescription()));
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
wrapper.and(x->x.eq(ESJobDocument::getCompanyNature,esJobSearch.getCompanyNature()));
}
if(Objects.nonNull(esJobSearch.getOrder())){ if(Objects.nonNull(esJobSearch.getOrder())){
if(esJobSearch.getOrder()==1){ if(esJobSearch.getOrder()==1){
wrapper.orderByDesc(ESJobDocument::getIsHot); wrapper.orderByDesc(ESJobDocument::getIsHot);
@@ -553,4 +565,10 @@ public class ESJobSearchImpl implements IESJobSearchService
esJobDocumentMapper.delete(lambdaEsQueryWrapper); esJobDocumentMapper.delete(lambdaEsQueryWrapper);
esJobDocumentMapper.insert(esJobDocument); esJobDocumentMapper.insert(esJobDocument);
} }
public List<ESJobDocument> selectByIds(Long[] jobIds) {
LambdaEsQueryWrapper<ESJobDocument> wrapper = new LambdaEsQueryWrapper<>();
wrapper.in(ESJobDocument::getJobId,jobIds);
return esJobDocumentMapper.selectList(wrapper);
}
} }

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.cms.domain.*; import com.ruoyi.cms.domain.*;
import com.ruoyi.cms.domain.File;
import com.ruoyi.cms.domain.query.ESJobSearch; import com.ruoyi.cms.domain.query.ESJobSearch;
import com.ruoyi.cms.domain.vo.CandidateVO; import com.ruoyi.cms.domain.vo.CandidateVO;
import com.ruoyi.cms.mapper.*; import com.ruoyi.cms.mapper.*;
@@ -75,6 +76,8 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
private RedisCache redisCache; private RedisCache redisCache;
@Autowired @Autowired
private JobContactMapper jobContactMapper; private JobContactMapper jobContactMapper;
@Autowired
private FileMapper fileMapper;
/** /**
* 更新工作地址的经纬度信息 * 更新工作地址的经纬度信息
@@ -206,6 +209,14 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
if(contacts!=null){ if(contacts!=null){
job.setJobContactList(contacts); job.setJobContactList(contacts);
} }
//查询附件
File file=new File();
file.setBussinessId(jobId);
List<File> filesList=fileMapper.selectFileList(file);
if(filesList!=null){
job.setFilesList(filesList);
}
return job; return job;
} }
@@ -784,6 +795,12 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
// } // }
// job.setCompanyId(company.getCompanyId()); // job.setCompanyId(company.getCompanyId());
jobMapper.insert(job); jobMapper.insert(job);
if(job.getJobContactList()!=null){
job.getJobContactList().forEach(it->{
it.setJobId(job.getJobId());
});
jobContactMapper.batchInsert(job.getJobContactList());
}
iesJobSearchService.updateJob(job.getJobId()); iesJobSearchService.updateJob(job.getJobId());
} }
} }

View File

@@ -29,10 +29,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="jobTitleId" column="job_title_id" /> <result property="jobTitleId" column="job_title_id" />
<result property="isRecommend" column="is_recommend" /> <result property="isRecommend" column="is_recommend" />
<result property="idCard" column="id_card" /> <result property="idCard" column="id_card" />
<result property="workExperience" column="work_experience" />
</resultMap> </resultMap>
<sql id="selectAppUserVo"> <sql id="selectAppUserVo">
select user_id, name, age, sex, birth_date, education, political_affiliation, phone, avatar, salary_min, salary_max, area, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark,job_title_id,is_recommend,id_card from app_user select user_id, name, age, sex, birth_date, education, political_affiliation, phone, avatar, salary_min, salary_max, area, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark,job_title_id,is_recommend,id_card,work_experience from app_user
</sql> </sql>
<select id="selectAppUserList" parameterType="AppUser" resultMap="AppUserResult"> <select id="selectAppUserList" parameterType="AppUser" resultMap="AppUserResult">
@@ -64,7 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectByOpenid" resultType="com.ruoyi.common.core.domain.entity.AppUser"> <select id="selectByOpenid" resultType="com.ruoyi.common.core.domain.entity.AppUser">
SELECT * FROM app_user WHERE DEL_FLAG = '0' and openid=#{openid} LIMIT 1 <include refid="selectAppUserVo"/> WHERE DEL_FLAG = '0' and openid=#{openid} LIMIT 1
</select> </select>
<insert id="insertSysUserRole" parameterType="java.util.Map"> <insert id="insertSysUserRole" parameterType="java.util.Map">

View File

@@ -31,10 +31,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="notPassReason" column="not_pass_reason" /> <result property="notPassReason" column="not_pass_reason" />
<result property="registeredAddress" column="registered_address" /> <result property="registeredAddress" column="registered_address" />
<result property="isAbnormal" column="is_abnormal" /> <result property="isAbnormal" column="is_abnormal" />
<result property="enterpriseType" column="enterprise_type" />
<result property="isImpCompany" column="is_imp_company" />
<result property="impCompanyType" column="imp_company_type" />
<result property="legalPerson" column="legal_person" />
<result property="legalIdCard" column="legal_id_card" />
<result property="legalPhone" column="legal_phone" />
</resultMap> </resultMap>
<sql id="selectCompanyVo"> <sql id="selectCompanyVo">
select company_id, name, location, industry, scale, del_flag, create_by, create_time, update_by, update_time, remark,code,description,nature,total_recruitment,registered_address,contact_person,contact_person_phone,is_abnormal,not_pass_reason,status,case when status='2' then update_time else null end reject_time from company select company_id, name, location, industry, scale, del_flag, create_by, create_time, update_by, update_time, remark,code,description,nature,total_recruitment,registered_address,contact_person,contact_person_phone,is_abnormal,not_pass_reason,status,case when status='2' then update_time else null end reject_time,is_imp_company,imp_company_type,enterprise_type,legal_person,legal_id_card,legal_phone from company
</sql> </sql>
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO company ( INSERT INTO company (

View File

@@ -42,4 +42,17 @@
</where> </where>
</select> </select>
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO job_contact (
job_id, contact_person, contact_person_phone,position,
create_by, create_time, del_flag,remark
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.jobId}, #{item.contactPerson}, #{item.contactPersonPhone},#{item.position},
#{item.createBy}, #{item.createTime}, #{item.delFlag},#{item.remark}
)
</foreach>
</insert>
</mapper> </mapper>

View File

@@ -127,4 +127,7 @@ public class AppUser extends BaseEntity
@ApiModelProperty("民族") @ApiModelProperty("民族")
private String nation; private String nation;
@ApiModelProperty("工作经验")
private String workExperience;
} }

View File

@@ -50,7 +50,7 @@ public class Company extends BaseEntity
@ApiModelProperty("单位介绍") @ApiModelProperty("单位介绍")
private String description; private String description;
@Excel(name = "性质") @Excel(name = "性质-已改为企业类型")
@ApiModelProperty("性质") @ApiModelProperty("性质")
private String nature; private String nature;
@@ -111,4 +111,16 @@ public class Company extends BaseEntity
@ApiModelProperty("本地重点发展产业") @ApiModelProperty("本地重点发展产业")
private String impCompanyType; private String impCompanyType;
@ApiModelProperty("是否是就业见习基地 0是 1否")
private String enterpriseType;
@ApiModelProperty("法人姓名")
private String legalPerson;
@ApiModelProperty("法人身份证")
private String legalIdCard;
@ApiModelProperty("法人联系方式")
private String legalPhone;
} }

View File

@@ -70,6 +70,9 @@ public class SysUser extends BaseEntity
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
private Date loginDate; private Date loginDate;
@Excel(name = "身份证/信用代码")
private String idCard;
/** 部门对象 */ /** 部门对象 */
@Excels({ @Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
@@ -297,6 +300,14 @@ public class SysUser extends BaseEntity
this.roleId = roleId; this.roleId = roleId;
} }
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -319,6 +330,7 @@ public class SysUser extends BaseEntity
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.append("dept", getDept()) .append("dept", getDept())
.append("idCard", getIdCard())
.toString(); .toString();
} }
} }

View File

@@ -256,10 +256,15 @@ public class SysLoginService
//验证是否登录过 //验证是否登录过
AppUser existingUser=appUserService.selectByOpenid(openid); AppUser existingUser=appUserService.selectByOpenid(openid);
if(existingUser!=null){ if(existingUser!=null){
if(StringUtils.isEmpty(existingUser.getIsCompanyUser())){
existingUser.setIsCompanyUser(dto.getUserType());
appUserService.updateAppUser(existingUser);
}
String token = loginUserIdApp(existingUser); String token = loginUserIdApp(existingUser);
ajax.put(Constants.TOKEN, token); ajax.put(Constants.TOKEN, token);
ajax.put("isNewUser", false); ajax.put("isNewUser", false);
ajax.put("code", existingUser.getIdCard()); ajax.put("idCard",existingUser.getIdCard());
ajax.put("isCompanyUser",existingUser.getIsCompanyUser());
return ajax; return ajax;
}else { }else {
JSONObject phoneInfo = wechatUtil.decryptPhoneNumber(dto.getEncryptedData(), sessionKey, dto.getIv()); JSONObject phoneInfo = wechatUtil.decryptPhoneNumber(dto.getEncryptedData(), sessionKey, dto.getIv());
@@ -270,22 +275,31 @@ public class SysLoginService
// 3. 检查手机号是否已被绑定 // 3. 检查手机号是否已被绑定
AppUser existUser = appUserService.getPhone(phone); AppUser existUser = appUserService.getPhone(phone);
String token="";
boolean isNewUser=false;
if (existUser != null) { if (existUser != null) {
return AjaxResult.error("该手机号已注册"); existUser.setOpenid(openid);
appUserService.updateAppUser(existUser);
// 5. 生成系统令牌
token = loginUserIdApp(existUser);
ajax.put("idCard",existUser.getIdCard());
ajax.put("isCompanyUser",existUser.getIsCompanyUser());
}else{
// 4. 创建用户并存储所有信息
AppUser appUser = new AppUser();
appUser.setOpenid(openid);
appUser.setUnionid(unionid);
appUser.setPhone(phone);
appUser.setIsCompanyUser(dto.getUserType());//保存角色
appUserService.insertAppUser(appUser);
// 5. 生成系统令牌
token = loginUserIdApp(appUser);
isNewUser=true;
ajax.put("idCard",null);
ajax.put("isCompanyUser",dto.getUserType());
} }
ajax.put("isNewUser", isNewUser);
// 4. 创建用户并存储所有信息
AppUser appUser = new AppUser();
appUser.setOpenid(openid);
appUser.setUnionid(unionid);
appUser.setPhone(phone);
appUser.setIsCompanyUser(dto.getUserType());//保存角色
appUserService.insertAppUser(appUser);
// 5. 生成系统令牌
String token = loginUserIdApp(appUser);
ajax.put(Constants.TOKEN, token); ajax.put(Constants.TOKEN, token);
ajax.put("isNewUser", true);
return ajax; return ajax;
} }
} }

View File

@@ -23,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="idCard" column="id_card" />
<association property="dept" javaType="SysDept" resultMap="deptResult" /> <association property="dept" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap> </resultMap>
@@ -49,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.id_card
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
@@ -57,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader,u.id_card from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' where u.del_flag = '0'
<if test="userId != null and userId != 0"> <if test="userId != null and userId != 0">
@@ -81,12 +82,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId != null and deptId != 0"> <if test="deptId != null and deptId != 0">
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) )) AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
</if> </if>
<if test="idCard != null and idCard != ''">
AND u.id_card = #{idCard}
</if>
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${params.dataScope} ${params.dataScope}
</select> </select>
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time,id_card
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
@@ -98,12 +102,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="phonenumber != null and phonenumber != ''"> <if test="phonenumber != null and phonenumber != ''">
AND u.phonenumber like concat('%', #{phonenumber}, '%') AND u.phonenumber like concat('%', #{phonenumber}, '%')
</if> </if>
<if test="idCard != null and idCard != ''">
AND u.id_card =#{idCard}
</if>
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${params.dataScope} ${params.dataScope}
</select> </select>
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time,u.id_card
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
@@ -116,6 +123,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="phonenumber != null and phonenumber != ''"> <if test="phonenumber != null and phonenumber != ''">
AND u.phonenumber like concat('%', #{phonenumber}, '%') AND u.phonenumber like concat('%', #{phonenumber}, '%')
</if> </if>
<if test="idCard != null and idCard != ''">
AND u.id_card =#{idCard}
</if>
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${params.dataScope} ${params.dataScope}
</select> </select>
@@ -159,6 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">status,</if> <if test="status != null and status != ''">status,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
<if test="idCard != null and idCard != ''">id_card,</if>
create_time create_time
)values( )values(
<if test="userId != null and userId != ''">#{userId},</if> <if test="userId != null and userId != ''">#{userId},</if>
@@ -173,6 +184,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">#{status},</if> <if test="status != null and status != ''">#{status},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
<if test="idCard != null and idCard != ''">#{idCard},</if>
sysdate() sysdate()
) )
</insert> </insert>
@@ -193,6 +205,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="loginDate != null">login_date = #{loginDate},</if> <if test="loginDate != null">login_date = #{loginDate},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="idCard != null">id_card = #{idCard},</if>
update_time = sysdate() update_time = sysdate()
</set> </set>
where user_id = #{userId} where user_id = #{userId}