@ -0,0 +1,59 @@ | |||
package org.jeecg.modules.userCode.controller; | |||
import com.alibaba.fastjson.JSONObject; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiOperation; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.jeecg.common.api.vo.Result; | |||
import org.jeecg.common.exception.JeecgBootException; | |||
import org.jeecg.modules.bean.LoginReq; | |||
import org.jeecg.modules.postBean.ReqUserRole; | |||
import org.jeecg.modules.postBean.ReqUserRole2; | |||
import org.jeecg.modules.tbTask.entity.TbTask; | |||
import org.jeecg.modules.tbTask.service.ITbTaskService; | |||
import org.jeecg.modules.userCode.model.req.TaskReq; | |||
import org.jeecg.modules.userCode.model.req.TaskReq2; | |||
import org.jeecg.modules.userCode.service.AppletLoginService; | |||
import org.jeecg.modules.userCode.service.UserService; | |||
import org.jeecg.modules.utils.ValidateTool; | |||
import org.springframework.web.bind.annotation.*; | |||
import javax.annotation.Resource; | |||
/** | |||
* 服务化 system模块 对外接口请求类 | |||
* | |||
* @author: jeecg-boot | |||
*/ | |||
@Slf4j | |||
@RestController | |||
@RequestMapping("/order") | |||
@Api(tags = "订单相关接口") | |||
public class OrderController { | |||
@Resource | |||
private AppletLoginService appletLoginService; | |||
@Resource | |||
private UserService userService; | |||
@Resource | |||
private ITbTaskService tbTaskService; | |||
@ApiOperation(value = "公司发布任务", notes = "发布任务") | |||
@PostMapping(value = "/addTask") | |||
public Result<String> addTask(@RequestBody TaskReq tbTask, @RequestHeader("X-Access-Token") String token) { | |||
if (ValidateTool.isNull(tbTask)) { | |||
throw new JeecgBootException("请填写资料"); | |||
} | |||
userService.addTask(tbTask, token); | |||
return Result.OK("添加成功!"); | |||
} | |||
} |
@ -0,0 +1,25 @@ | |||
package org.jeecg.modules.userCode.mapper; | |||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||
import com.baomidou.mybatisplus.core.metadata.IPage; | |||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
import org.apache.ibatis.annotations.Param; | |||
import org.jeecg.modules.tbTask.entity.TbTask; | |||
import org.jeecg.modules.userCode.model.vo.TbTaskVo; | |||
import java.util.List; | |||
/** | |||
* @Description: merchant_info | |||
* @Author: jeecg-boot | |||
* @Date: 2021-03-15 | |||
* @Version: V1.0 | |||
*/ | |||
public interface TaskMapper extends BaseMapper<TbTask> { | |||
IPage<TbTaskVo> tasks(@Param("lon") String lon, @Param("lat") String lat | |||
, @Param("distance") String distance, @Param("search") String search, Page page); | |||
} |
@ -0,0 +1,57 @@ | |||
<?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="org.jeecg.modules.userCode.mapper.TaskMapper"> | |||
<!-- 通过字典code获取字典数据 --> | |||
<select id="tasks" parameterType="String" | |||
resultType="org.jeecg.modules.userCode.model.vo.TbTaskVo"> | |||
<!-- SELECT *,--> | |||
<!-- (6371 * acos (--> | |||
<!-- cos (RADIANS(${lat}))--> | |||
<!-- * cos(RADIANS(SUBSTRING_INDEX(longit_lat,',',-1) ) )--> | |||
<!-- * cos(RADIANS(SUBSTRING_INDEX(longit_lat,',',1)) - RADIANS(${lon}) )--> | |||
<!-- + sin (RADIANS(${lat}))--> | |||
<!-- * sin(RADIANS(SUBSTRING_INDEX(longit_lat,',',-1) ) )--> | |||
<!-- )) AS distances--> | |||
<!-- FROM merchant_info HAVING <![CDATA[ distances <= 5 ]]> and <![CDATA[ del_flag = 0 ]]> ORDER BY distances--> | |||
select * | |||
from ( | |||
SELECT *,ROUND( | |||
6378.138 * 2 * ASIN( | |||
SQRT( | |||
POW( | |||
SIN( | |||
( | |||
#{lat,jdbcType=VARCHAR} * PI() / 180 - SUBSTRING_INDEX(longitude,',',-1) * PI() / 180 | |||
) / 2 | |||
), | |||
2 | |||
) + COS(#{lat,jdbcType=VARCHAR} * PI() / 180) * COS(SUBSTRING_INDEX(longitude,',',-1) * PI() / 180) * POW( | |||
SIN( | |||
( | |||
#{lon,jdbcType=VARCHAR} * PI() / 180 - SUBSTRING_INDEX(longitude,',',1) * PI() / 180 | |||
) / 2 | |||
), | |||
2 | |||
) | |||
) | |||
) * 1000 | |||
) AS distances | |||
FROM | |||
tb_task | |||
where del_flag =0 and audit_status =1 and role in (0,1) | |||
ORDER BY distances ASC) | |||
as a | |||
<where> | |||
del_flag =0 | |||
<if test="search!=null and search!='' "> | |||
and a.name like '%${search}%' | |||
</if> | |||
<if test="distance!=null and distance!='' "> | |||
and a.distances <![CDATA[ <=]]> #{distance} | |||
</if> | |||
</where> | |||
</select> | |||
</mapper> |
@ -0,0 +1,99 @@ | |||
package org.jeecg.modules.userCode.model.req; | |||
import com.baomidou.mybatisplus.annotation.TableName; | |||
import com.fasterxml.jackson.annotation.JsonFormat; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
import lombok.EqualsAndHashCode; | |||
import lombok.experimental.Accessors; | |||
import org.jeecg.common.aspect.annotation.Dict; | |||
import org.jeecgframework.poi.excel.annotation.Excel; | |||
import org.springframework.format.annotation.DateTimeFormat; | |||
import java.io.Serializable; | |||
import java.util.Date; | |||
/** | |||
* @Description: tb_task | |||
* @Author: jeecg-boot | |||
* @Date: 2024-12-12 | |||
* @Version: V1.0 | |||
*/ | |||
@Data | |||
@TableName("tb_task") | |||
@Accessors(chain = true) | |||
@EqualsAndHashCode(callSuper = false) | |||
@ApiModel(value="tb_task对象", description="tb_task") | |||
public class TaskReq implements Serializable { | |||
private static final long serialVersionUID = 1L; | |||
/**工作标题*/ | |||
@Excel(name = "工作标题", width = 15) | |||
@ApiModelProperty(value = "工作标题") | |||
private String title; | |||
/**上班地址*/ | |||
@Excel(name = "上班地址", width = 15) | |||
@ApiModelProperty(value = "上班地址") | |||
private String workAddress; | |||
/**上班地址经度*/ | |||
@Excel(name = "上班地址经度", width = 15) | |||
@ApiModelProperty(value = "上班地址经度") | |||
private String latitude; | |||
/**上班地址纬度*/ | |||
@Excel(name = "上班地址纬度", width = 15) | |||
@ApiModelProperty(value = "上班地址纬度") | |||
private String longitude; | |||
/**行业/工种*/ | |||
@Excel(name = "行业/工种", width = 15) | |||
@ApiModelProperty(value = "行业/工种") | |||
private String industryName; | |||
/**行业/工种id*/ | |||
@Excel(name = "行业/工种id", width = 15) | |||
@ApiModelProperty(value = "行业/工种id") | |||
private String industryId; | |||
/**工作内容*/ | |||
@Excel(name = "工作内容", width = 15) | |||
@ApiModelProperty(value = "工作内容") | |||
private String workDetail; | |||
/**图片上传*/ | |||
@Excel(name = "图片上传", width = 15) | |||
@ApiModelProperty(value = "图片上传") | |||
private String workPic; | |||
/**招聘方联系方式*/ | |||
@Excel(name = "招聘方联系方式", width = 15) | |||
@ApiModelProperty(value = "招聘方联系方式") | |||
private String bossPhone; | |||
/**期望日薪*/ | |||
@Excel(name = "期望日薪", width = 15) | |||
@ApiModelProperty(value = "期望日薪") | |||
private Integer dayMoney; | |||
/**时间范围*/ | |||
@Excel(name = "时间范围", width = 20, format = "yyyy-MM-dd HH:mm:ss") | |||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") | |||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") | |||
@ApiModelProperty(value = "时间范围") | |||
private Date startTime; | |||
/**时间范围*/ | |||
@Excel(name = "时间范围", width = 20, format = "yyyy-MM-dd HH:mm:ss") | |||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") | |||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") | |||
@ApiModelProperty(value = "时间范围") | |||
private Date endTime; | |||
/**期望薪资最小值*/ | |||
@Excel(name = "期望薪资最小值", width = 15) | |||
@ApiModelProperty(value = "期望薪资最小值") | |||
private Integer moneymin; | |||
/**期望薪资最大值*/ | |||
@Excel(name = "期望薪资最大值", width = 15) | |||
@ApiModelProperty(value = "期望薪资最大值") | |||
private Integer moneymax; | |||
/**结算方式 0提前支付 1 试用后支付*/ | |||
@Excel(name = "结算方式 0提前支付 1 试用后支付", width = 15, dicCode = "pay_type") | |||
@Dict(dicCode = "pay_type") | |||
@ApiModelProperty(value = "结算方式 0提前支付 1 试用后支付") | |||
private Integer payType; | |||
} |
@ -0,0 +1,87 @@ | |||
package org.jeecg.modules.userCode.model.req; | |||
import com.baomidou.mybatisplus.annotation.IdType; | |||
import com.baomidou.mybatisplus.annotation.TableId; | |||
import com.baomidou.mybatisplus.annotation.TableName; | |||
import com.fasterxml.jackson.annotation.JsonFormat; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
import lombok.EqualsAndHashCode; | |||
import lombok.experimental.Accessors; | |||
import org.jeecg.common.aspect.annotation.Dict; | |||
import org.jeecgframework.poi.excel.annotation.Excel; | |||
import org.springframework.format.annotation.DateTimeFormat; | |||
import java.io.Serializable; | |||
import java.util.Date; | |||
/** | |||
* @Description: tb_task | |||
* @Author: jeecg-boot | |||
* @Date: 2024-12-12 | |||
* @Version: V1.0 | |||
*/ | |||
@Data | |||
@TableName("tb_task") | |||
@Accessors(chain = true) | |||
@EqualsAndHashCode(callSuper = false) | |||
@ApiModel(value="tb_task对象", description="tb_task") | |||
public class TaskReq2 implements Serializable { | |||
private static final long serialVersionUID = 1L; | |||
/**工人出发地址*/ | |||
@Excel(name = "工人出发地址", width = 15) | |||
@ApiModelProperty(value = "工人出发地址") | |||
private String workerAddress; | |||
/**出行方式 0出租车 1 网约车 2 公交地铁 3无*/ | |||
@Excel(name = "出行方式 0出租车 1 网约车 2 公交地铁 3无", width = 15, dicCode = "travel_type") | |||
@Dict(dicCode = "travel_type") | |||
@ApiModelProperty(value = "出行方式 0出租车 1 网约车 2 公交地铁 3无") | |||
private Integer travelType; | |||
/**上班地址经度*/ | |||
@Excel(name = "上班地址经度", width = 15) | |||
@ApiModelProperty(value = "地址经度") | |||
private String latitude; | |||
/**上班地址纬度*/ | |||
@Excel(name = "上班地址纬度", width = 15) | |||
@ApiModelProperty(value = "地址纬度") | |||
private String longitude; | |||
/**行业/工种*/ | |||
@Excel(name = "行业/工种", width = 15) | |||
@ApiModelProperty(value = "行业/工种") | |||
private String industryName; | |||
/**行业/工种id*/ | |||
@Excel(name = "行业/工种id", width = 15) | |||
@ApiModelProperty(value = "行业/工种id") | |||
private String industryId; | |||
/**工作内容*/ | |||
@Excel(name = "工作内容", width = 15) | |||
@ApiModelProperty(value = "工作内容") | |||
private String workDetail; | |||
/**期望日薪*/ | |||
@Excel(name = "期望日薪", width = 15) | |||
@ApiModelProperty(value = "期望日薪") | |||
private Integer dayMoney; | |||
/**期望薪资最小值*/ | |||
@Excel(name = "期望薪资最小值", width = 15) | |||
@ApiModelProperty(value = "期望薪资最小值") | |||
private Integer moneymin; | |||
/**期望薪资最大值*/ | |||
@Excel(name = "期望薪资最大值", width = 15) | |||
@ApiModelProperty(value = "期望薪资最大值") | |||
private Integer moneymax; | |||
/**结算方式 0提前支付 1 试用后支付*/ | |||
@Excel(name = "结算方式 0提前支付 1 试用后支付", width = 15, dicCode = "pay_type") | |||
@Dict(dicCode = "pay_type") | |||
@ApiModelProperty(value = "结算方式 0提前支付 1 试用后支付") | |||
private Integer payType; | |||
} |
@ -0,0 +1,98 @@ | |||
package org.jeecg.modules.userCode.model.vo; | |||
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.fasterxml.jackson.annotation.JsonFormat; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
import lombok.EqualsAndHashCode; | |||
import lombok.experimental.Accessors; | |||
import org.jeecg.common.aspect.annotation.Dict; | |||
import org.jeecgframework.poi.excel.annotation.Excel; | |||
import org.springframework.format.annotation.DateTimeFormat; | |||
import java.io.Serializable; | |||
import java.util.Date; | |||
/** | |||
* @Description: tb_task | |||
* @Author: jeecg-boot | |||
* @Date: 2024-12-12 | |||
* @Version: V1.0 | |||
*/ | |||
@Data | |||
@TableName("tb_task") | |||
@Accessors(chain = true) | |||
@EqualsAndHashCode(callSuper = false) | |||
@ApiModel(value="tb_task对象", description="tb_task") | |||
public class TbTaskVo implements Serializable { | |||
private static final long serialVersionUID = 1L; | |||
/**id*/ | |||
@TableId(type = IdType.ASSIGN_ID) | |||
@ApiModelProperty(value = "id") | |||
private String id; | |||
/**用户id*/ | |||
@Excel(name = "用户id", width = 15) | |||
@ApiModelProperty(value = "用户id") | |||
private String userId; | |||
/**工作标题*/ | |||
@Excel(name = "工作标题", width = 15) | |||
@ApiModelProperty(value = "工作标题") | |||
private String title; | |||
/**公司名称*/ | |||
@Excel(name = "公司名称", width = 15) | |||
@ApiModelProperty(value = "公司名称") | |||
private String companyName; | |||
/**上班地址*/ | |||
@Excel(name = "上班地址", width = 15) | |||
@ApiModelProperty(value = "上班地址") | |||
private String workAddress; | |||
/**行业/工种*/ | |||
@Excel(name = "行业/工种", width = 15) | |||
@ApiModelProperty(value = "行业/工种") | |||
private String industryName; | |||
/**行业/工种id*/ | |||
@Excel(name = "行业/工种id", width = 15) | |||
@ApiModelProperty(value = "行业/工种id") | |||
private String industryId; | |||
/**招聘方联系方式*/ | |||
@Excel(name = "招聘方联系方式", width = 15) | |||
@ApiModelProperty(value = "招聘方联系方式") | |||
private String bossPhone; | |||
/**时间范围*/ | |||
@Excel(name = "时间范围", width = 20, format = "yyyy-MM-dd HH:mm:ss") | |||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") | |||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") | |||
@ApiModelProperty(value = "时间范围") | |||
private Date startTime; | |||
/**时间范围*/ | |||
@Excel(name = "时间范围", width = 20, format = "yyyy-MM-dd HH:mm:ss") | |||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") | |||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") | |||
@ApiModelProperty(value = "时间范围") | |||
private Date endTime; | |||
/**工作时长*/ | |||
@Excel(name = "工作时长", width = 15) | |||
@ApiModelProperty(value = "工作时长") | |||
private String workTime; | |||
/**期望薪资最小值*/ | |||
@Excel(name = "期望薪资最小值", width = 15) | |||
@ApiModelProperty(value = "期望薪资最小值") | |||
private Integer moneymin; | |||
/**期望薪资最大值*/ | |||
@Excel(name = "期望薪资最大值", width = 15) | |||
@ApiModelProperty(value = "期望薪资最大值") | |||
private Integer moneymax; | |||
/**结算方式 0提前支付 1 试用后支付*/ | |||
@Excel(name = "结算方式 0提前支付 1 试用后支付", width = 15, dicCode = "pay_type") | |||
@Dict(dicCode = "pay_type") | |||
@ApiModelProperty(value = "结算方式 0提前支付 1 试用后支付") | |||
private Integer payType; | |||
@ApiModelProperty(value = "距离(米)") | |||
@TableField(exist = false) | |||
private String distances; | |||
} |
@ -0,0 +1,80 @@ | |||
package org.jeecg.modules.userCode.model.vo; | |||
import com.baomidou.mybatisplus.annotation.IdType; | |||
import com.baomidou.mybatisplus.annotation.TableId; | |||
import com.baomidou.mybatisplus.annotation.TableName; | |||
import com.fasterxml.jackson.annotation.JsonFormat; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
import lombok.EqualsAndHashCode; | |||
import lombok.experimental.Accessors; | |||
import org.jeecg.common.aspect.annotation.Dict; | |||
import org.jeecgframework.poi.excel.annotation.Excel; | |||
import org.springframework.format.annotation.DateTimeFormat; | |||
import java.io.Serializable; | |||
import java.util.Date; | |||
/** | |||
* @Description: tb_user_role | |||
* @Author: jeecg-boot | |||
* @Date: 2024-12-07 | |||
* @Version: V1.0 | |||
*/ | |||
@Data | |||
@TableName("tb_user_role") | |||
@Accessors(chain = true) | |||
@EqualsAndHashCode(callSuper = false) | |||
@ApiModel(value="tb_user_role对象", description="tb_user_role") | |||
public class UserRole1Vo implements Serializable { | |||
private static final long serialVersionUID = 1L; | |||
/**用户id*/ | |||
@Excel(name = "用户id", width = 15) | |||
@ApiModelProperty(value = "用户id") | |||
private String userId; | |||
/**用户名*/ | |||
@Excel(name = "用户名", width = 15) | |||
@ApiModelProperty(value = "用户名") | |||
private String userName; | |||
/**行业/工种*/ | |||
@Excel(name = "行业/工种", width = 15) | |||
@ApiModelProperty(value = "行业/工种") | |||
private String industryName; | |||
/**行业/工种id*/ | |||
@Excel(name = "行业/工种id", width = 15) | |||
@ApiModelProperty(value = "行业/工种id") | |||
private String industryId; | |||
/**个人简介*/ | |||
@Excel(name = "个人简介", width = 15) | |||
@ApiModelProperty(value = "个人简介") | |||
private String detail; | |||
/**用户头像*/ | |||
@Excel(name = "用户头像", width = 15) | |||
@ApiModelProperty(value = "用户头像") | |||
private java.lang.String headImage; | |||
/**电话*/ | |||
@Excel(name = "电话", width = 15) | |||
@ApiModelProperty(value = "电话") | |||
private String phone; | |||
/**年龄*/ | |||
@Excel(name = "年龄", width = 15) | |||
@ApiModelProperty(value = "年龄") | |||
private Integer age; | |||
/**性别*/ | |||
@Excel(name = "性别", width = 15, dicCode = "sex") | |||
@Dict(dicCode = "sex") | |||
@ApiModelProperty(value = "性别") | |||
private Integer gender; | |||
/**期望薪资最小值*/ | |||
@Excel(name = "期望薪资最小值", width = 15) | |||
@ApiModelProperty(value = "期望薪资最小值") | |||
private Integer moneyMin; | |||
/**期望薪资最大值*/ | |||
@Excel(name = "期望薪资最大值", width = 15) | |||
@ApiModelProperty(value = "期望薪资最大值") | |||
private Integer moneyMax; | |||
} |
@ -1,15 +1,13 @@ | |||
package org.jeecg.modules.userCode.service; | |||
import com.alibaba.fastjson.JSONObject; | |||
import org.jeecg.common.api.vo.Result; | |||
import org.jeecg.modules.postBean.ReqUserRole; | |||
import org.jeecg.modules.userCode.model.req.TaskReq; | |||
import org.jeecg.modules.userCode.model.req.TaskReq2; | |||
public interface UserService { | |||
void addTask(TaskReq tbTask, String token); | |||
void addTask2(TaskReq2 tbTask, String token); | |||
} |