修改注册接口-1.保存企业联系2.保存工作经历和用户技能

This commit is contained in:
sh
2025-10-21 13:01:34 +08:00
parent e56a8a285d
commit 44ec48c49d
25 changed files with 341 additions and 15 deletions

View File

@@ -0,0 +1,81 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.service.AppSkillService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.AppSkill;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 用户技能信息
*
* @author
* @email
* @date 2025-10-21 12:22:09
*/
@RestController
@RequestMapping("/appskill/list")
@Api(tags = "移动端:用户技能")
public class AppSkillController extends BaseController {
@Autowired
private AppSkillService appSkillService;
/**
* 列表
*/
@ApiOperation("获取工作经历详细信息")
@GetMapping("/list")
public TableDataInfo list(AppSkill appSkill){
startPage();
List<AppSkill> list=appSkillService.getList(appSkill);
return getDataTable(list);
}
/**
* 信息
*/
@ApiOperation("获取工作经历详细信息")
@GetMapping(value = "/{id}")
public AjaxResult info(@PathVariable("id") Long id){
return success(appSkillService.getAppskillById(id));
}
/**
* 保存
*/
@ApiOperation("获取工作经历详细信息")
@PostMapping("/add")
public AjaxResult save(@RequestBody AppSkill appSkill){
return toAjax(appSkillService.insertAppskill(appSkill));
}
/**
* 修改
*/
@ApiOperation("获取工作经历详细信息")
@PutMapping("/edit")
public AjaxResult update(@RequestBody AppSkill appSkill){
return toAjax(appSkillService.updateAppskillById(appSkill));
}
/**
* 删除
*/
@ApiOperation("获取工作经历详细信息")
@DeleteMapping("/{id}")
public AjaxResult delete(@ApiParam("主键id") @PathVariable Long id){
return toAjax(appSkillService.removeAppskillIds(new Long[]{id}));
}
}

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.UserWorkExperiences;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import com.ruoyi.cms.service.UserWorkExperiencesService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;

View File

@@ -1,7 +1,7 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.CompanyContact;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import com.ruoyi.cms.service.CompanyContactService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.UserWorkExperiences;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import com.ruoyi.cms.service.UserWorkExperiencesService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;

View File

@@ -1,6 +1,7 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;

View File

@@ -0,0 +1,20 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.entity.AppSkill;
import java.util.List;
/**
* 用户技能信息
*
* @author
* @email
* @date 2025-10-21 12:22:09
*/
public interface AppSkillMapper extends BaseMapper<AppSkill> {
List<AppSkill> getList(AppSkill appSkill);
int batchInsert(List<AppSkill> list);
}

View File

@@ -1,7 +1,7 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.CompanyContact;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import java.util.List;
@@ -15,4 +15,6 @@ import java.util.List;
public interface CompanyContactMapper extends BaseMapper<CompanyContact> {
List<CompanyContact> getSelectList(CompanyContact companyContact);
int batchInsert(List<CompanyContact> list);
}

View File

@@ -1,7 +1,7 @@
package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.UserWorkExperiences;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import java.util.List;
@@ -15,4 +15,6 @@ import java.util.List;
public interface UserWorkExperiencesMapper extends BaseMapper<UserWorkExperiences> {
List<UserWorkExperiences> getWorkExperiencesList(UserWorkExperiences userWorkExperiences);
int batchInsert(List<UserWorkExperiences> list);
}

View File

@@ -0,0 +1,26 @@
package com.ruoyi.cms.service;
import com.ruoyi.common.core.domain.entity.AppSkill;
import java.util.List;
/**
* 用户技能信息
*
* @author
* @email
* @date 2025-10-21 12:22:09
*/
public interface AppSkillService{
List<AppSkill> getList(AppSkill appSkill);
int insertAppskill(AppSkill appSkill);
int updateAppskillById(AppSkill appSkill);
int removeAppskillIds(Long[] ids);
AppSkill getAppskillById(Long id);
}

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cms.service;
import com.ruoyi.cms.domain.CompanyContact;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import java.util.List;

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cms.service;
import com.ruoyi.cms.domain.UserWorkExperiences;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import java.util.List;

View File

@@ -0,0 +1,43 @@
package com.ruoyi.cms.service.impl;
import com.ruoyi.cms.mapper.AppSkillMapper;
import com.ruoyi.cms.service.AppSkillService;
import com.ruoyi.common.core.domain.entity.AppSkill;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class AppSkillServiceImpl extends ServiceImpl<AppSkillMapper, AppSkill> implements AppSkillService {
@Autowired
AppSkillMapper appSkillMapper;
public List<AppSkill> getList(AppSkill appSkill){
return appSkillMapper.getList(appSkill);
}
@Override
public int insertAppskill(AppSkill appSkill) {
return appSkillMapper.insert(appSkill);
}
@Override
public int updateAppskillById(AppSkill appSkill) {
return appSkillMapper.updateById(appSkill);
}
@Override
public int removeAppskillIds(Long[] ids) {
return appSkillMapper.deleteBatchIds(Arrays.asList(ids));
}
@Override
public AppSkill getAppskillById(Long id) {
return appSkillMapper.selectById(id);
}
}

View File

@@ -5,14 +5,13 @@ import java.util.Arrays;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.cms.mapper.JobTitleMapper;
import com.ruoyi.cms.mapper.*;
import com.ruoyi.cms.util.StringUtil;
import com.ruoyi.common.core.domain.entity.JobTitle;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.ruoyi.cms.mapper.AppUserMapper;
import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.cms.service.IAppUserService;
@@ -29,6 +28,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
private AppUserMapper appUserMapper;
@Autowired
private JobTitleMapper jobTitleMapper;
@Autowired
private CompanyContactMapper companyContactMapper;
@Autowired
private UserWorkExperiencesMapper userWorkExperiencesMapper;
@Autowired
private AppSkillMapper appSkillMapper;
/**
* 查询APP用户
*
@@ -88,6 +93,20 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
@Override
public int updateAppUser(AppUser appUser)
{
switch (appUser.getIsCompanyUser()){
case "0"://企业
if(appUser.getContactsList()!=null){
companyContactMapper.batchInsert(appUser.getContactsList());
}
break;
default://求职者
if(appUser.getExperiencesList()!=null){
userWorkExperiencesMapper.batchInsert(appUser.getExperiencesList());
}
if(appUser.getAppSkillsList()!=null){
appSkillMapper.batchInsert(appUser.getAppSkillsList());
}
}
return appUserMapper.updateById(appUser);
}

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cms.service.impl;
import com.ruoyi.cms.domain.CompanyContact;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import com.ruoyi.cms.mapper.CompanyContactMapper;
import com.ruoyi.cms.service.CompanyContactService;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -10,6 +10,7 @@ import com.ruoyi.cms.domain.*;
import com.ruoyi.cms.domain.query.LabelQuery;
import com.ruoyi.cms.mapper.*;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.entity.CompanyContact;
import com.ruoyi.common.core.domain.model.LoginSiteUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.exception.ServiceException;

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cms.service.impl;
import com.ruoyi.cms.domain.UserWorkExperiences;
import com.ruoyi.common.core.domain.entity.UserWorkExperiences;
import com.ruoyi.cms.mapper.UserWorkExperiencesMapper;
import com.ruoyi.cms.service.UserWorkExperiencesService;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -28,8 +28,8 @@ public class WechatUtil {
/**
* 生成signature
**/
private static String appid = "wx9d1cbc11c8c40ba7";
private static String secret = "38e87cf6251945446e8ac091a0ba9ab2";
private static String appid = "wxee0d0655e464f184";
private static String secret = "38a71cb90ea12c6b2eee4434ae7932cf";
public AppWechatEntity sign(String url) {
Map<String, String> ret = new HashMap();
String nonceStr = create_nonce_str();

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cms.mapper.AppSkillMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="AppSkill" id="AppSkillResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="name" column="name"/>
<result property="levels" column="levels"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
<sql id="selectAppSkillVo">
select id, user_id, name, levels, del_flag, create_by, create_time, update_by, update_time, remark from app_skill
</sql>
<select id="getList" resultType="AppSkill" resultMap="AppSkillResult">
<include refid="selectAppSkillVo"/>
<where> del_flag = '0'
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="levels != null and levels != ''"> and levels = #{levels}</if>
</where>
</select>
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO app_skill (
user_id, name, levels, create_by, create_time, del_flag
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.userId}, #{item.name}, #{item.levels},
#{item.createBy}, #{item.createTime}, #{item.delFlag}
)
</foreach>
</insert>
</mapper>

View File

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

View File

@@ -35,4 +35,17 @@
</where>
</select>
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO user_work_experiences (
company_name, position, user_id, start_date, end_date, description,
create_by, create_time, del_flag,remark
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.companyName}, #{item.position}, #{item.userId},#{item.startDate},#{item.endDate},
#{item.description},#{item.createBy}, #{item.createTime}, #{item.delFlag},#{item.remark}
)
</foreach>
</insert>
</mapper>

View File

@@ -0,0 +1,46 @@
package com.ruoyi.common.core.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户技能信息
*
* @author
* @email
* @date 2025-10-21 12:22:09
*/
@Data
@TableName("app_skill")
public class AppSkill extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "user_id",type = IdType.AUTO)
@ApiModelProperty("用户ID")
private Long id;
/**
* 用户id
*/
@ApiModelProperty("用户id")
private Long userId;
/**
* 技能名称
*/
@ApiModelProperty("技能名称")
private String name;
/**
* 技能等级
*/
@ApiModelProperty("技能等级")
private String levels;
}

View File

@@ -127,4 +127,16 @@ public class AppUser extends BaseEntity
@ApiModelProperty("民族")
private String nation;
@TableField(exist = false)
@ApiModelProperty("工作经历列表")
private List<UserWorkExperiences> experiencesList;
@TableField(exist = false)
@ApiModelProperty("公司联系人列表")
private List<CompanyContact> contactsList;
@TableField(exist = false)
@ApiModelProperty("技能列表")
private List<AppSkill> appSkillsList;
}

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cms.domain;
package com.ruoyi.common.core.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cms.domain;
package com.ruoyi.common.core.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@@ -258,6 +258,7 @@ public class SysLoginService
if(existingUser!=null){
String token = loginUserIdApp(existingUser);
ajax.put(Constants.TOKEN, token);
ajax.put("isNewUser", false);
return ajax;
}else {
JSONObject phoneInfo = wechatUtil.decryptPhoneNumber(dto.getEncryptedData(), sessionKey, dto.getIv());
@@ -283,6 +284,7 @@ public class SysLoginService
// 5. 生成系统令牌
String token = loginUserIdApp(appUser);
ajax.put(Constants.TOKEN, token);
ajax.put("isNewUser", true);
return ajax;
}
}