TaskOperationController.java 4.08 KB
package com.topdraw.business.process.rest;

import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.business.module.common.validated.CreateGroup;
import com.topdraw.business.module.task.domain.Task;
import com.topdraw.business.module.task.service.dto.TaskDTO;
import com.topdraw.business.process.domian.TempIptvUser;
import com.topdraw.business.process.service.TaskOperationService;
import com.topdraw.business.process.service.dto.TaskOperationQueryCriteria;
import com.topdraw.common.ResultInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.Objects;

@Api("任务处理")
@RestController
@RequestMapping(value = "/uce/taskOperation")
@Slf4j
public class TaskOperationController {

    @Autowired
    private TaskOperationService taskOperationService;

    /**
     * 处理事件
     *
     * @param criteria 消息
     */
    @PostMapping(value = "/dealTask")
    @ApiOperation("事件处理")
    @AnonymousAccess
    public void dealTask(@RequestBody @Validated TaskOperationQueryCriteria criteria) {
        // 任务处理
        this.taskOperationService.dealTask(criteria.getContent());
    }

    /**
     * 新增任务
     *
     * @param task 消息
     */
    @PostMapping(value = "/createTask")
    @ApiOperation("新增任务")
    @AnonymousAccess
    public void createTask(@RequestBody @Validated(value = {CreateGroup.class}) Task task) {
        log.info("taskOperation ==>> createTask ==>> param ==>> {}", task);

        String code = task.getCode();
        TaskDTO taskDTO = this.taskOperationService.findByCode(code);
        if (Objects.isNull(taskDTO.getId())) {
            // 新增任务
            this.taskOperationService.createTask(task);
        }

    }

    /**
     * 修改任务
     *
     * @param task 消息
     */
    @PostMapping(value = "/updateTask")
    @ApiOperation("修改任务")
    @AnonymousAccess
    public void updateTask(@RequestBody @Validated Task task) {
        log.info("taskOperation ==>> updateTask ==>> param ==>> {}", task);
        Long id = task.getId();
        TaskDTO taskDTO = this.taskOperationService.findById(id);
        if (Objects.nonNull(taskDTO.getId())) {
            task.setCode(taskDTO.getCode());
            Task task_ = new Task();
            BeanUtils.copyProperties(taskDTO, task_);
            task_.copy(task);
            // 修改任务
            this.taskOperationService.updateTask(task_);
        }
    }

    /**
     * 删除任务
     *
     * @param task 消息
     */
    @PostMapping(value = "/deleteTask")
    @ApiOperation("删除任务")
    @AnonymousAccess
    public void deleteTask(@RequestBody @Validated Task task) {
        log.info("taskOperation ==>> deleteTask ==>> param ==>> {}", task);

        Long id = task.getId();
        // 删除任务
        this.taskOperationService.deleteTask(id);
    }

    /**
     * 针对重庆20211220号的积分兑换活动专门定制的接口
     * 1.用户每天首次进入活动详情页的时候赠送5个积分
     * 2.判断任务是否已经做过,没有做过的话,保存任务记录,任务记录通过redis保存即可
     */
    @PostMapping(value = "/createPoint4ChongQing")
    @ApiOperation("针对重庆大屏20211220号的积分兑换活动专门定制的接口")
    @Deprecated
    public ResultInfo createPoint4ChongQing(@RequestBody TempIptvUser tempIptvUser){
        String platformAccount = tempIptvUser.getPlatformAccount();
        Long points = tempIptvUser.getPoints();
        // 判断任务是否已经做过
        boolean result = this.taskOperationService.createPoint2ChongQing(platformAccount,points);
        String message = "操作成功";
        if (!result){
            message = "操作失败,该会员今日已参加过活动";
        }
        return ResultInfo.success(Arrays.asList(result),message);
    }

}