WebSendEmailController.java 5.2 KB
package com.lhcredit.project.webbusiness.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.lhcredit.common.utils.StringUtils;
import com.lhcredit.framework.aspectj.lang.annotation.CheckToken;
import com.lhcredit.framework.aspectj.lang.enums.OperatorType;
import com.lhcredit.project.business.frontUser.domain.FrontUserMon;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.lhcredit.framework.aspectj.lang.annotation.Log;
import com.lhcredit.framework.aspectj.lang.enums.BusinessType;
import com.lhcredit.project.business.sendEmail.domain.SendEmail;
import com.lhcredit.project.business.sendEmail.service.ISendEmailService;
import com.lhcredit.framework.web.controller.BaseController;
import com.lhcredit.framework.web.domain.AjaxResult;


/**
 * 定时发送邮件信息对外接口
 *
 * @author lhcredit
 * @date 2023-10-25
 */
@RestController
@RequestMapping("/web/sendEmail")
public class WebSendEmailController extends BaseController {
    @Autowired
    private ISendEmailService sendEmalService;

    /**
     * 查询定时发送邮件列表接口
     */
    @ApiOperation("查询定时发送邮件列表")
    @Log(title = "定时发送邮件", businessType = BusinessType.LIST, operatorType = OperatorType.WEB)
    @GetMapping
    public AjaxResult list(SendEmail sendEmal) {
        startPage();
//        sendEmal.setDelFlag("0");
        sendEmal.setStatus("0");
        List<SendEmail> list = sendEmalService.changeModel(sendEmalService.selectSendEmailList(sendEmal));
        return toAjax(list);
    }

    /**
     * 查询定时发送邮件详情接口
     */
    @ApiOperation("查询定时发送邮件详情")
    @ApiImplicitParam(name = "id", value = "主键", required = true, dataType = "int", paramType = "path")
    @Log(title = "定时发送邮件", businessType = BusinessType.DETAIL, operatorType = OperatorType.WEB)
    @GetMapping("/{id}")
    public AjaxResult detail(@PathVariable Integer id) {
        SendEmail sendEmal =sendEmalService.changeModel(sendEmalService.selectSendEmailById(id));
        if (StringUtils.isNull(sendEmal)) {
            return AjaxResult.error("该信息不存在");
        }
        return toAjax(sendEmal);
    }

    /**
     * 新增保存定时发送邮件接口
     */
    @CheckToken
    @ApiOperation("新增定时发送邮件")
    @ApiImplicitParam(name = "sendEmal", value = "定时发送邮件", dataType = "SendEmal")
    @Log(title = "定时发送邮件", businessType = BusinessType.INSERT, operatorType = OperatorType.WEB)
    @PostMapping("/addOrUpdate")
    public AjaxResult addSave(@RequestBody SendEmail sendEmal) {
        FrontUserMon user=getUserInfo();
        //根据用户查询数据是否存在
        SendEmail se=new SendEmail();
        se.setUserId(user.getId().toString());
        se.setStatus("0");
        List<SendEmail> list=sendEmalService.selectSendEmailList(se);
        if(list!=null&&list.size()>0){
            //修改数据
            sendEmal.setUpdateTime(new Date());
            sendEmal.setUserId(user.getId().toString());
            sendEmalService.updateSendEmailByUserId(sendEmal);
        }else {
            sendEmal.setCreateTime(new Date());
            sendEmal.setUserId(user.getId().toString());
            sendEmalService.insertSendEmail(sendEmal);
        }

        return AjaxResult.success();
    }

    @CheckToken
    @ApiOperation("查询定时发送邮件列表")
    @Log(title = "定时发送邮件", businessType = BusinessType.LIST, operatorType = OperatorType.WEB)
    @GetMapping("/getJob")
    public AjaxResult getJob(SendEmail sendEmal) {
        FrontUserMon user=getUserInfo();
        sendEmal.setStatus("0");
        sendEmal.setUserId(user.getId().toString());
        List<SendEmail> list = sendEmalService.selectSendEmailList(sendEmal);
        if(list!=null&&list.size()>0){
            return AjaxResult.success(list.get(0));
        }
        return AjaxResult.success(new ArrayList<>());
    }

    /**
     * 修改保存定时发送邮件接口
     */
    @ApiOperation("修改定时发送邮件")
    @ApiImplicitParam(name = "sendEmal", value = "定时发送邮件", dataType = "SendEmal")
    @Log(title = "定时发送邮件", businessType = BusinessType.UPDATE, operatorType = OperatorType.WEB)
    @PutMapping
    public AjaxResult update(SendEmail sendEmal) {
        if (StringUtils.isNull(sendEmal) || StringUtils.isNull(sendEmal.getId())){
            return AjaxResult.error("主键id不能为空");
        }
        sendEmal.setUpdateTime(new Date());
        return toAjax(sendEmalService.updateSendEmail(sendEmal));
    }

    /**
     * 删除定时发送邮件接口
     */
    @ApiOperation("删除定时发送邮件")
    @ApiImplicitParam(name = "ids", value = "主键id,多条以英文逗号分隔", required = true, dataType = "String", paramType = "path")
    @Log(title = "定时发送邮件", businessType = BusinessType.DELETE, operatorType = OperatorType.WEB)
    @DeleteMapping("/{ids}")
    public AjaxResult delete(@PathVariable String ids) {
        return toAjax(sendEmalService.deleteSendEmailByIds(ids));
    }

}