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

import com.topdraw.base.modules.annotation.AnonymousAccess;
import com.topdraw.base.modules.common.IResultInfo;
import com.topdraw.base.modules.common.ResultInfo;
import com.topdraw.base.modules.exception.BadRequestException;
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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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 IResultInfo dealTask(@RequestBody @Validated TaskOperationQueryCriteria criteria) {
        log.info("事件处理,参数 ==>> dealTask#==>>{}", criteria);
        return this.taskOperationService.dealTask(criteria.getContent());
    }

    /**
     * 新增任务
     *uc_tr_task_progress
     * @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 content 消息
     */
    @PostMapping(value = "/updateTask")
    @ApiOperation("修改任务")
    @AnonymousAccess
    public ResultInfo updateTask(@RequestBody @Validated Task content) {
        log.info("修改任务,参数 updateTask# ==>> {}", content);
        Long id = content.getId();
        if (Objects.isNull(id)) {
            throw new BadRequestException("修改任务失败,id不得为空");
        }
        // 修改任务
        return this.taskOperationService.updateTask(content);
    }

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

        Long id = task.getId();
        // 删除任务
        Integer integer = this.taskOperationService.deleteTask(id);
        if (integer > 1) {
            return ResultInfo.success("删除成功");
        } else {
            return ResultInfo.failure("删除失败");
        }
    }

    /**
     * 针对重庆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);
    }

}