zhanghua
2023-04-14 e8a0f05f99f33fa05085536541da6bc27e66a644
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package com.ycl.controller.message;
 
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.annotation.LogSave;
import com.ycl.api.CommonResult;
import com.ycl.bo.AdminUserDetails;
import com.ycl.dto.message.MessageParam;
import com.ycl.entity.message.Message;
import com.ycl.mapper.user.UmsAdminMapper;
import com.ycl.service.message.IMessageService;
import com.ycl.vo.message.MessageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
 
/**
 * <p>
 * 消息管理  前端控制器
 * </p>
 *
 * @author mg
 * @since 2022-10-08
 */
@RestController
@RequestMapping("/message")
@Api(tags = "消息管理")
public class MessageController {
 
    @Autowired
    private IMessageService iMessageService;
    @Resource
    private UmsAdminMapper umsAdminMapper;
 
    @ApiOperation(value = "发送消息")
    @RequestMapping(value = "/sendMessage", method = RequestMethod.POST)
    @ResponseBody
    @LogSave(operationType = "消息管理", contain = "发送消息")
    public CommonResult sendMessage(@Validated @RequestBody Message message) {
        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        //设置创建人
        message.setCreateUser(user.getUserId());
        iMessageService.sendMessage(message);
        return CommonResult.success("send success");
    }
 
 
    @ApiOperation(value = "发送消息通过手机号码")
    @RequestMapping(value = "/send_message_phone", method = RequestMethod.POST)
    public CommonResult sendMessageByPhoneNumber(@RequestBody Message message) {
        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        //设置创建人
        message.setCreateUser(user.getUserId());
        iMessageService.sendMessageByPhone(message);
        return CommonResult.success("send success");
    }
 
 
    @ApiOperation(value = "暂存消息")
    @PostMapping("/saveMessage")
    @ResponseBody
    @LogSave(operationType = "消息管理", contain = "保存消息")
    public CommonResult saveMessage(@Validated @RequestBody Message message) {
        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        //设置创建人
        message.setCreateUser(user.getUserId());
        message.setCreateTime(new Date());
        message.setTargetFrom(umsAdminMapper.selectById(user.getUserId()).getUsername());
        message.setIsView(0);
        return CommonResult.success(iMessageService.save(message));
    }
 
    @ApiOperation(value = "获取消息分页查询")
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    @ResponseBody
    @LogSave(operationType = "消息管理", contain = "查询消息")
    public CommonResult<IPage<MessageVO>> list(MessageParam messageParam) {
        return CommonResult.success(iMessageService.list(messageParam));
    }
 
 
    @ApiOperation("获取指定消息")
    @RequestMapping(value = "/getMessage/{id}", method = RequestMethod.GET)
    @ResponseBody
    public CommonResult<Message> getMessage(@PathVariable Long id) {
        Message message = iMessageService.getById(id);
        return CommonResult.success(message);
    }
 
    @ApiOperation("修改指定消息")
    @RequestMapping(value = "/update", method = RequestMethod.POST)
    @ResponseBody
    @LogSave(operationType = "消息管理", contain = "修改消息")
    public CommonResult update(@RequestBody Message message) {
        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        //设置创建人
        message.setUpdateUser(user.getUserId());
        message.setUpdateTime(new Date());
        boolean success = iMessageService.updateById(message);
        if (success) {
            return CommonResult.success(null);
        }
        return CommonResult.failed();
    }
 
 
    @ApiOperation("消息已查看")
    @PostMapping("/modification_batch")
    public CommonResult updateBatchMessage(List<Long> ids) {
        ids.forEach(item -> {
            Message message = new Message();
            message.setId(item);
            message.setIsView(1);
            iMessageService.updateById(message);
        });
        return CommonResult.success("success");
    }
 
    @ApiOperation("批量删除消息")
    @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
    @ResponseBody
    @LogSave(operationType = "消息管理", contain = "删除消息")
    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
        boolean success = iMessageService.deleteMessages(ids);
        if (success) {
            return CommonResult.success(null);
        }
        return CommonResult.failed();
    }
}