package com.ruoyi.management.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.management.domain.TPage;
import com.ruoyi.management.domain.TProtocol;
import com.ruoyi.management.domain.TSysSet;
import com.ruoyi.management.domain.TUseGuide;
import com.ruoyi.management.dto.AggrementDTO;
import com.ruoyi.management.dto.UseGuidDTO;
import com.ruoyi.management.query.UseGuideQuery;
import com.ruoyi.management.service.ITPageService;
import com.ruoyi.management.service.ITProtocolService;
import com.ruoyi.management.service.ITSysSetService;
import com.ruoyi.management.service.ITUseGuideService;
import com.ruoyi.management.vo.PageVO;
import com.ruoyi.management.vo.SysSetVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
*
* 系统设置 前端控制器
*
*
* @author 无关风月
* @since 2024-04-26
*/
@RestController
@RequestMapping("/tSysSet")
public class TSysSetController {
@Autowired
private ITSysSetService sysSetService;
@Autowired
private ITPageService pageService;
@Autowired
private ITProtocolService protocolService;
@Autowired
private ITUseGuideService useGuideService;
@ApiOperation(value = "获取系统设置", tags = {"后台-系统设置"})
@PostMapping(value = "/getSysSet")
public AjaxResult getSysSet() {
TSysSet byId = sysSetService.getById(1);
SysSetVO sysSetVO = new SysSetVO();
BeanUtils.copyProperties(byId, sysSetVO);
return AjaxResult.success(sysSetVO);
}
@ApiOperation(value = "保存系统设置", tags = {"后台-系统设置"})
@PostMapping(value = "/saveSysSet")
public AjaxResult saveSysSet(SysSetVO vo) {
TSysSet byId = sysSetService.getById(1);
BeanUtils.copyProperties(vo, byId);
// 音效更改及更改音效设置时间
if (!byId.getCorrect().equals(vo.getCorrect()) || !byId.getError().equals(vo.getError())) {
byId.setAcousticsTime(new Date());
}
byId.setId(1);
sysSetService.updateById(byId);
return AjaxResult.success("保存成功");
}
@ApiOperation(value = "获取启动页", tags = {"后台-启动页管理"})
@PostMapping(value = "/getPage")
public AjaxResult getPage() {
List list = pageService.list();
return AjaxResult.success(list);
}
@ApiOperation(value = "获取注意事项、启动页", tags = {"家长端-获取注意事项、启动页"})
@PostMapping(value = "/getPage1")
public R> getPage1() {
List list = pageService.list();
return R.ok(list);
}
@ApiOperation(value = "保存启动页", tags = {"后台-启动页管理"})
@PostMapping(value = "/setPage")
public AjaxResult setPage(@RequestBody PageVO vo) {
String page1 = vo.getPage1();
String page2 = vo.getPage2();
String page3 = vo.getPage3();
String page4 = vo.getPage4();
if (StringUtils.hasLength(page1)) {
TPage type = pageService.getOne(new QueryWrapper()
.eq("type", 1));
TPage tPage = new TPage();
if (type == null) {
tPage.setImg(page1);
tPage.setType(1);
pageService.save(tPage);
} else {
type.setImg(page1);
pageService.updateById(type);
}
}
if (StringUtils.hasLength(page2)) {
TPage type = pageService.getOne(new QueryWrapper()
.eq("type", 2));
TPage tPage = new TPage();
if (type == null) {
tPage.setImg(page2);
tPage.setType(2);
pageService.save(tPage);
} else {
type.setImg(page2);
pageService.updateById(type);
}
}
if (StringUtils.hasLength(page3)) {
TPage type = pageService.getOne(new QueryWrapper()
.eq("type", 3));
TPage tPage = new TPage();
if (type == null) {
tPage.setImg(page3);
tPage.setType(3);
pageService.save(tPage);
} else {
type.setImg(page3);
pageService.updateById(type);
}
}
if (StringUtils.hasLength(page4)) {
TPage type = pageService.getOne(new QueryWrapper()
.eq("type", 4));
if (type == null) {
TPage tPage = new TPage();
tPage.setImg(page4);
tPage.setType(4);
pageService.save(tPage);
} else {
type.setImg(page4);
pageService.updateById(type);
}
}
return AjaxResult.success("保存成功");
}
@PostMapping("/agreement")
@ApiOperation(value = "协议", tags = {"后台-协议管理"})
public AjaxResult agreement(@RequestBody AggrementDTO dto) {
TProtocol protocol = protocolService.getById(dto.getType());
if (StringUtils.hasLength(dto.getContent())){
protocol.setContent(dto.getContent());
protocolService.updateById(protocol);
return AjaxResult.success("修改成功");
}else {
return AjaxResult.success(protocol.getContent());
}
}
@PostMapping("/agreement1/{type}")
@ApiOperation(value = "协议", tags = {"家长端/学习端-获取协议"})
public R agreement1(@PathVariable("type") Integer type) {
TProtocol protocol = protocolService.getOne(new QueryWrapper()
.eq("type", type));
return R.ok(protocol.getContent());
}
@PostMapping("/useGuide")
@ApiOperation(value = "使用指南-列表查询", tags = {"后台-使用指南"})
public AjaxResult> agreement(String title, Integer pageNumber, Integer pageSize) {
QueryWrapper wrapper = new QueryWrapper<>();
if (StringUtils.hasLength(title)) {
wrapper.like("title", title);
}
List strings = new ArrayList<>();
strings.add("insertTime");
wrapper.orderByDesc(strings);
List useGuides = useGuideService.list(wrapper);
PageInfo res = new PageInfo<>(pageNumber, pageSize);
res.setRecords(useGuides);
res.setTotal(useGuides.size());
return AjaxResult.success(res);
}
@PostMapping("/useGuide1")
@ApiOperation(value = "列表查询", tags = {"家长端-使用指南"})
public R> useGuide1(@RequestBody UseGuideQuery query) {
query.setPageNumber((query.getPageNumber() - 1) * query.getPageSize());
QueryWrapper wrapper = new QueryWrapper<>();
if (StringUtils.hasLength(query.getTitle())) {
wrapper.like("title", query.getTitle());
}
List strings = new ArrayList<>();
strings.add("insertTime");
wrapper.orderByDesc(strings);
PageInfo res = new PageInfo<>(query.getPageNumber(), query.getPageSize());
List useGuides = useGuideService.list(wrapper);
List useGuides2 = useGuideService.listAll(query);
res.setRecords(useGuides2);
res.setTotal(useGuides.size());
return R.ok(res);
}
@PostMapping("/updateUseGuide")
@ApiOperation(value = "使用指南-添加/编辑/查看详情", tags = {"使用指南"})
public AjaxResult updateUseGuide(@RequestBody UseGuidDTO dto) {
switch (dto.getType()) {
case 1:
TUseGuide useGuide = new TUseGuide();
useGuide.setTitle(dto.getTitle());
useGuide.setSort(dto.getSort());
useGuide.setAnswer(dto.getAnswer());
useGuide.setInsertTime(new Date());
useGuideService.save(useGuide);
return AjaxResult.success(useGuide);
case 2:
TUseGuide useGuide1 = useGuideService.getById(dto.getId());
useGuide1.setId(dto.getId());
useGuide1.setTitle(dto.getTitle());
useGuide1.setSort(dto.getSort());
useGuide1.setAnswer(dto.getAnswer());
useGuideService.updateById(useGuide1);
return AjaxResult.success(useGuide1);
case 3:
TUseGuide useGuide2 = useGuideService.getById(dto.getId());
return AjaxResult.success(useGuide2);
}
return AjaxResult.success(new TUseGuide());
}
@DeleteMapping("/delete")
@ApiOperation(value = "使用指南-删除", tags = {"使用指南"})
public AjaxResult updateUseGuide(Integer id) {
// TUseGuide useGuide2 = useGuideService.getById(id);
useGuideService.removeById(id);
return AjaxResult.success("删除成功");
}
@GetMapping("/shareInfo")
@ApiOperation(value = "获取分享图片、标题及可获积分数", tags = {"获取分享图片、标题及可获积分数"})
public R shareInfo() {
return R.ok(sysSetService.lambdaQuery().one());
}
@ApiOperation(value = "获取正确及错误提示音效", tags = {"学习端-首页"})
@GetMapping(value = "/promptVoice")
public R promptVoice() {
return R.ok(sysSetService.lambdaQuery().eq(TSysSet::getDisabled, 0).one());
}
@ApiOperation(value = "2.0新增,是否展示文字配置", tags = {"2.0新增,是否展示文字配置"})
@GetMapping(value = "/getIsOpen")
public R getIsOpen() {
TSysSet one = sysSetService.lambdaQuery().eq(TSysSet::getDisabled, 0).one();
switch (one.getIsOpen()){
case 1:
return R.ok(true);
case 0:
return R.ok(false);
}
return R.ok();
}
}