lsw il y a 11 mois
Parent
commit
1ba1cac130

+ 8 - 6
app/pages/index/index.vue

@@ -62,12 +62,14 @@ export default {
 				}
 			});
 			//初始化所有地区
-			this.http.request({
-				url: '/app/common/column/city/all',
-				success: (res) => {
-					uni.setStorageSync('city_all', res.data.data);
-				}
-			});
+			if(!uni.getStorageSync('city_all')){
+				this.http.request({
+					url: '/app/common/column/city/all',
+					success: (res) => {
+						uni.setStorageSync('city_all', res.data.data);
+					}
+				});
+			}
 			// #ifdef MP-WEIXIN
 			//授权获取位置
 			uni.authorize({

+ 12 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/api/Api_ResumeDeliverController.java

@@ -4,8 +4,10 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.web.work.api.config.BaseController;
 import com.ruoyi.web.work.domain.ResumeDeliver;
+import com.ruoyi.web.work.domain.dto.JTaskCompleteDto;
 import com.ruoyi.web.work.domain.dto.ResumeDeliverDto;
 import com.ruoyi.web.work.domain.dto.ResumeInviteDto;
+import com.ruoyi.web.work.domain.dto.YTaskCompleteDto;
 import com.ruoyi.web.work.domain.vo.ReceiveListVo;
 import com.ruoyi.web.work.domain.vo.ReceiveVo;
 import com.ruoyi.web.work.service.IResumeDeliverService;
@@ -94,4 +96,14 @@ public class Api_ResumeDeliverController extends BaseController {
     public AjaxResult agree(@Validated @RequestBody ResumeDeliverDto dto) throws ParseException {
         return resumeDeliverService.agree(dto);
     }
+
+    @PostMapping("/yTaskComplete")
+    public AjaxResult yTaskComplete(@Validated @RequestBody YTaskCompleteDto dto) {
+        return resumeDeliverService.yTaskComplete(dto);
+    }
+
+    @PostMapping("/jTaskComplete")
+    public AjaxResult jTaskComplete(@Validated @RequestBody JTaskCompleteDto dto) {
+        return resumeDeliverService.jTaskComplete(dto);
+    }
 }

+ 44 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/api/Api_TaskListController.java

@@ -0,0 +1,44 @@
+package com.ruoyi.web.work.api;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.web.work.api.config.BaseController;
+import com.ruoyi.web.work.domain.TaskList;
+import com.ruoyi.web.work.domain.dto.TaskListDto;
+import com.ruoyi.web.work.service.ITaskListService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 任务进度列
+ *
+ * @author lsw
+ * @date 2024-07-03
+ */
+@RestController
+@RequestMapping("/app/task")
+public class Api_TaskListController extends BaseController {
+    @Autowired
+    private ITaskListService taskListService;
+
+    @GetMapping("/list")
+    public TableDataInfo list(TaskList taskList) {
+        taskList.setUserId(getUser().getId());
+        startPage();
+        List<TaskList> list = taskListService.selectList(taskList);
+        return getDataTable(list);
+    }
+
+    @PostMapping("/add")
+    public AjaxResult add(@Validated @RequestBody TaskListDto dto) {
+        return taskListService.add(dto);
+    }
+
+    @GetMapping("/remove/{id}")
+    public AjaxResult remove(@PathVariable Long id) {
+        return taskListService.remove(id);
+    }
+}

+ 0 - 66
ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/TaskListController.java

@@ -1,66 +0,0 @@
-package com.ruoyi.web.work.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.web.work.domain.TaskList;
-import com.ruoyi.web.work.service.ITaskListService;
-import com.ruoyi.common.core.page.TableDataInfo;
-
-/**
- * 任务进度列
- * @author lsw
- * @date 2024-07-03
- */
-@RestController
-@RequestMapping("/work/list")
-public class TaskListController extends BaseController {
-    @Autowired
-    private ITaskListService taskListService;
-
-    @PreAuthorize("@ss.hasPermi('work:list:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(TaskList taskList){
-        startPage();
-        List<TaskList> list = taskListService.selectList(taskList);
-        return getDataTable(list);
-    }
-
-    @PreAuthorize("@ss.hasPermi('work:list:query')")
-    @GetMapping(value = "/detail/{id}")
-    public AjaxResult detail(@PathVariable("id") Long id){
-        return AjaxResult.success(taskListService.getById(id));
-    }
-
-    @PreAuthorize("@ss.hasPermi('work:list:add')")
-    @Log(title = "任务进度列", businessType = BusinessType.INSERT)
-    @PostMapping("/add")
-    public AjaxResult add(@RequestBody TaskList taskList){
-        return toAjax(taskListService.save(taskList));
-    }
-
-    @PreAuthorize("@ss.hasPermi('work:list:edit')")
-    @Log(title = "任务进度列", businessType = BusinessType.UPDATE)
-    @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody TaskList taskList){
-        return toAjax(taskListService.updateById(taskList));
-    }
-
-    @PreAuthorize("@ss.hasPermi('work:list:remove')")
-    @Log(title = "任务进度列", businessType = BusinessType.DELETE)
-    @GetMapping("/remove/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids){
-        return toAjax(taskListService.removeByIds(Arrays.asList(ids)));
-    }
-}

+ 10 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/ResumeDeliver.java

@@ -51,18 +51,24 @@ public class ResumeDeliver {
     @ApiModelProperty(value = "是否签订合同:0=未发送,1=已发送,2=已签订")
     private Integer isContract;
 
-    @ApiModelProperty(value = "是否完成:0=未完成,1=已完成")
+    @ApiModelProperty(value = "是否完成:0=进行中,1=申请完成,2=确认完成,3=甲方驳回")
     private Integer isComplete;
 
+    @ApiModelProperty(value = "乙方完成说明")
+    private String cMsg;
+
+    @ApiModelProperty(value = "甲方驳回完成说明")
+    private String rMsg;
+
     @ApiModelProperty(value = "乙方给甲方评分")
     private BigDecimal jScore;
 
     @ApiModelProperty(value = "甲方给乙方评分")
-    private BigDecimal yScore;
-
-    @ApiModelProperty(value = "乙方给甲方评价")
+    private BigDecimal yScore;    @ApiModelProperty(value = "乙方给甲方评价")
     private String jMsg;
 
+
+
     @ApiModelProperty(value = "甲方给乙方评价")
     private String yMsg;
 

+ 26 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/JTaskCompleteDto.java

@@ -0,0 +1,26 @@
+package com.ruoyi.web.work.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+@Data
+@Accessors(chain = true)
+public class JTaskCompleteDto {
+
+    @NotNull(message = "参数错误")
+    private Long id;
+
+    @NotNull(message = "参数错误")
+    @Min(value = 2, message = "参数错误")
+    @Max(value = 3, message = "参数错误")
+    private Integer isComplete;
+
+    @ApiModelProperty(value = "甲方驳回完成说明")
+    private String rMsg;
+
+}

+ 26 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/TaskListDto.java

@@ -0,0 +1,26 @@
+package com.ruoyi.web.work.domain.dto;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lsw
+ * @date 2024-07-03
+ */
+@Data
+@Accessors(chain = true)
+public class TaskListDto {
+
+    @NotNull(message = "错误错误")
+    private Long taskId;
+
+    @NotBlank(message = "任务图片不能为空")
+    private String pic;
+
+    @NotBlank(message = "任务内容不能为空")
+    private String contents;
+
+}

+ 19 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/YTaskCompleteDto.java

@@ -0,0 +1,19 @@
+package com.ruoyi.web.work.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@Accessors(chain = true)
+public class YTaskCompleteDto {
+
+    @NotNull(message = "参数错误")
+    private Long id;
+
+    @ApiModelProperty(value = "乙方完成说明")
+    private String cMsg;
+
+}

+ 19 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IResumeDeliverService.java

@@ -3,8 +3,10 @@ package com.ruoyi.web.work.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.web.work.domain.ResumeDeliver;
+import com.ruoyi.web.work.domain.dto.JTaskCompleteDto;
 import com.ruoyi.web.work.domain.dto.ResumeDeliverDto;
 import com.ruoyi.web.work.domain.dto.ResumeInviteDto;
+import com.ruoyi.web.work.domain.dto.YTaskCompleteDto;
 import com.ruoyi.web.work.domain.vo.ReceiveListVo;
 import com.ruoyi.web.work.domain.vo.ReceiveVo;
 
@@ -54,6 +56,7 @@ public interface IResumeDeliverService extends IService<ResumeDeliver> {
 
     /**
      * 面试完成
+     *
      * @param id
      * @return
      */
@@ -98,4 +101,20 @@ public interface IResumeDeliverService extends IService<ResumeDeliver> {
      * @param resumeDeliver
      */
     public void sendMessage(ResumeDeliver resumeDeliver) throws ParseException;
+
+
+    /**
+     * 乙方申请完成任务
+     *
+     * @param dto
+     * @return
+     */
+    AjaxResult yTaskComplete(YTaskCompleteDto dto);
+
+    /**
+     * 甲方确认申任务完成状态
+     * @param dto
+     * @return
+     */
+    AjaxResult jTaskComplete(JTaskCompleteDto dto);
 }

+ 22 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/ITaskListService.java

@@ -1,13 +1,32 @@
 package com.ruoyi.web.work.service;
 
-import java.util.List;
-import com.ruoyi.web.work.domain.TaskList;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.work.domain.TaskList;
+import com.ruoyi.web.work.domain.dto.TaskListDto;
+
+import java.util.List;
 
 /**
  * @author lsw
  * @date 2024-07-03
  */
-public interface ITaskListService extends IService<TaskList>{
+public interface ITaskListService extends IService<TaskList> {
     List<TaskList> selectList(TaskList taskList);
+
+    /**
+     * 添加任务进度
+     *
+     * @param dto
+     * @return
+     */
+    AjaxResult add(TaskListDto dto);
+
+    /**
+     * 删除任务进度
+     *
+     * @param id
+     * @return
+     */
+    AjaxResult remove(Long id);
 }

+ 62 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/ResumeDeliverServiceImpl.java

@@ -9,12 +9,11 @@ import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.web.work.api.util.AppUtil;
-import com.ruoyi.web.work.domain.Enterprise;
-import com.ruoyi.web.work.domain.Position;
-import com.ruoyi.web.work.domain.Resume;
-import com.ruoyi.web.work.domain.ResumeDeliver;
+import com.ruoyi.web.work.domain.*;
+import com.ruoyi.web.work.domain.dto.JTaskCompleteDto;
 import com.ruoyi.web.work.domain.dto.ResumeDeliverDto;
 import com.ruoyi.web.work.domain.dto.ResumeInviteDto;
+import com.ruoyi.web.work.domain.dto.YTaskCompleteDto;
 import com.ruoyi.web.work.domain.vo.ReceiveListVo;
 import com.ruoyi.web.work.domain.vo.ReceiveVo;
 import com.ruoyi.web.work.mapper.ResumeDeliverMapper;
@@ -22,7 +21,9 @@ import com.ruoyi.web.work.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.text.ParseException;
 import java.util.List;
 
@@ -48,6 +49,9 @@ public class ResumeDeliverServiceImpl extends ServiceImpl<ResumeDeliverMapper, R
     private IEnterpriseService enterpriseService;
 
     @Autowired
+    private IPayService payService;
+
+    @Autowired
     private Environment env;
 
     @Override
@@ -243,4 +247,58 @@ public class ResumeDeliverServiceImpl extends ServiceImpl<ResumeDeliverMapper, R
         System.out.println("body:" + body);
         System.out.println("小程序订阅消息:" + result);
     }
+
+    @Override
+    public AjaxResult yTaskComplete(YTaskCompleteDto dto) {
+        ResumeDeliver resumeDeliver = getById(dto.getId());
+        if (resumeDeliver == null || !resumeDeliver.getUserId().equals(AppUtil.getUser().getId())) {
+            return AjaxResult.error("兼职任务不存在或非法操作");
+        }
+        resumeDeliver.setIsComplete(1);
+        resumeDeliver.setCMsg(dto.getCMsg());
+        if (!updateById(resumeDeliver)) {
+            throw new ServiceException("操作任务失败");
+        }
+        return AjaxResult.success();
+    }
+
+    @Transactional
+    @Override
+    public AjaxResult jTaskComplete(JTaskCompleteDto dto) {
+        ResumeDeliver resumeDeliver = getById(dto.getId());
+        if (resumeDeliver == null || !resumeDeliver.getEnterpriseId().equals(AppUtil.getUser().getId())) {
+            return AjaxResult.error("兼职任务不存在或非法操作");
+        }
+        resumeDeliver.setIsComplete(dto.getIsComplete());
+        resumeDeliver.setCMsg(dto.getRMsg());
+        if (!updateById(resumeDeliver)) {
+            throw new ServiceException("操作面试失败");
+        }
+        //甲方确认完成任务,平台打款到乙方账户余额
+        if (resumeDeliver.getIsComplete() == 2) {
+            Position position = positionService.getById(resumeDeliver.getPositionId());
+            if (position == null) {
+                throw new ServiceException("兼职不存在");
+            }
+            User user = userService.getById(resumeDeliver.getUserId());
+            user.setMoney(user.getMoney().add(new BigDecimal(position.getSalary())));
+            if (!userService.updateById(user)) {
+                throw new ServiceException("更新用户账户余额失败");
+            }
+            //添加完成余额入账记录
+            Pay pay = new Pay();
+            pay.setUserId(user.getId());
+            pay.setMoney(new BigDecimal(position.getSalary()));
+            pay.setState(1);
+            pay.setType(3);
+            pay.setTitle(position.getTitle());
+            pay.setVersion(System.currentTimeMillis());
+            pay.setPositionId(position.getId());
+            pay.setNums(StringUtils.generateNumber());
+            if (!payService.save(pay)) {
+                throw new ServiceException("保存余额入账记录失败,请联系平台");
+            }
+        }
+        return AjaxResult.success();
+    }
 }

+ 44 - 5
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/TaskListServiceImpl.java

@@ -1,12 +1,20 @@
 package com.ruoyi.web.work.service.impl;
 
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ruoyi.web.work.mapper.TaskListMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.web.work.api.util.AppUtil;
+import com.ruoyi.web.work.domain.ResumeDeliver;
 import com.ruoyi.web.work.domain.TaskList;
+import com.ruoyi.web.work.domain.dto.TaskListDto;
+import com.ruoyi.web.work.mapper.TaskListMapper;
+import com.ruoyi.web.work.service.IResumeDeliverService;
 import com.ruoyi.web.work.service.ITaskListService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * @author lsw
@@ -17,8 +25,39 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
     @Autowired
     private TaskListMapper taskListMapper;
 
+    @Autowired
+    private IResumeDeliverService resumeDeliverService;
+
     @Override
     public List<TaskList> selectList(TaskList taskList) {
         return taskListMapper.selectList(taskList);
     }
+
+    @Override
+    public AjaxResult add(TaskListDto dto) {
+        ResumeDeliver resumeDeliver = resumeDeliverService.getById(dto.getTaskId());
+        if (resumeDeliver == null || !resumeDeliver.getUserId().equals(AppUtil.getUser().getId())) {
+            return AjaxResult.error("兼职任务不存在或非法操作");
+        }
+        TaskList taskList = new TaskList();
+        BeanUtils.copyProperties(dto, taskList);
+        taskList.setUserId(resumeDeliver.getUserId());
+        taskList.setEnterpriseId(resumeDeliver.getEnterpriseId());
+        if (!save(taskList)) {
+            throw new ServiceException("保存兼职任务进度失败,请联系平台");
+        }
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult remove(Long id) {
+        TaskList taskList = getById(id);
+        if (taskList == null || !taskList.getUserId().equals(AppUtil.getUser().getId())) {
+            return AjaxResult.error("任务进度不存在或非法操作");
+        }
+        if (!removeById(id)) {
+            throw new ServiceException("删除任务进度失败,请联系平台");
+        }
+        return AjaxResult.success();
+    }
 }