This commit is contained in:
duteliang
2024-01-31 00:07:11 +08:00
parent bc1d9a3e60
commit 377e343ee7
93 changed files with 81 additions and 81 deletions

View File

@@ -16,7 +16,7 @@ import com.ruoyi.cai.ws.bean.Room;
import com.ruoyi.cai.ws.constant.RedisConstant;
import com.ruoyi.cai.ws.dto.WsToken;
import com.ruoyi.cai.ws.manager.WebSocketManager;
import com.ruoyi.cai.ws.util.MapGetUtil;
import com.ruoyi.common.utils.MapGetUtil;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import org.redisson.api.RMap;

View File

@@ -1,138 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AccountCash;
import com.ruoyi.cai.dto.admin.vo.AccountCashAdminVo;
import com.ruoyi.cai.dto.admin.vo.account.ExportBatchAuditVo;
import com.ruoyi.cai.enums.AccountCashStatusEnum;
import com.ruoyi.cai.service.AccountCashService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 用户提现记录
*
* @author 77
* @date 2023-12-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/accountCash")
@Slf4j
public class AccountCashController extends BaseController {
private final AccountCashService accountCashService;
/**
* 查询用户提现记录列表
*/
@SaCheckPermission("cai:accountCash:list")
@GetMapping("/list")
public TableDataInfo<AccountCashAdminVo> list(AccountCashAdminVo bo, PageQuery pageQuery) {
Page<AccountCashAdminVo> page = accountCashService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 导出用户提现记录列表
*/
@SaCheckPermission("cai:accountCash:export")
@Log(title = "用户提现记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(AccountCashAdminVo bo, HttpServletResponse response) {
PageQuery query = new PageQuery();
query.setPageSize(Integer.MAX_VALUE);
query.setPageNum(1);
List<AccountCashAdminVo> list = accountCashService.pageAdmin(query,bo).getRecords();
ExcelUtil.exportExcel(list, "用户提现记录", AccountCashAdminVo.class, response);
}
@Log(title = "用户导入提现通过", businessType = BusinessType.IMPORT)
@SaCheckPermission("cai:accountCash:edit")
@PostMapping(value = "/importAudit", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<ExportBatchAuditVo> importData(@RequestPart("file") MultipartFile file) throws Exception {
List<AccountCashAdminVo> result = ExcelUtil.importExcel(file.getInputStream(), AccountCashAdminVo.class);
List<Long> ids = result.stream().map(AccountCash::getId).collect(Collectors.toList());
ExportBatchAuditVo audit = accountCashService.batchAudit(ids);
return R.ok(audit);
}
/**
* 获取用户提现记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:accountCash:query")
@GetMapping("/{id}")
public R<AccountCash> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(accountCashService.getById(id));
}
@SaCheckPermission("cai:accountCash:edit")
@Log(title = "用户提现通过", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@GetMapping("/success")
public R<Void> success(Long id) {
accountCashService.success(id);
return R.ok();
}
@SaCheckPermission("cai:accountCash:edit")
@Log(title = "用户提现不通过", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@GetMapping("/fail")
public R<Void> fail(Long id,String remark) {
accountCashService.fail(id,remark);
return R.ok();
}
@SaCheckPermission("cai:accountCash:edit")
@Log(title = "用户提现取消", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@GetMapping("/close")
public R<Void> close(Long id) {
accountCashService.update(Wrappers.lambdaUpdate(AccountCash.class)
.set(AccountCash::getVerifyTime, LocalDateTime.now())
.set(AccountCash::getOperateIp, ServletUtils.getClientIP())
.set(AccountCash::getStatus, AccountCashStatusEnum.CLOSE.getCode())
.eq(AccountCash::getStatus, AccountCashStatusEnum.READY.getCode())
.eq(AccountCash::getId,id));
return R.ok();
}
@SaCheckPermission("cai:accountCash:edit")
@Log(title = "用户提现批量通过", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@GetMapping("/batchSuccess")
public R<ExportBatchAuditVo> batchSuccess(String ids) {
List<Long> idList = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList());
ExportBatchAuditVo audit = accountCashService.batchAudit(idList);
return R.ok(audit);
}
}

View File

@@ -1,72 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AccountChangeLog;
import com.ruoyi.cai.dto.admin.CaiDictVo;
import com.ruoyi.cai.enums.account.AccountCateEnum;
import com.ruoyi.cai.service.AccountChangeLogService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 账户明细
*
* @author 77
* @date 2024-01-05
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/accountChangeLog")
public class AccountChangeLogController extends BaseController {
private final AccountChangeLogService accountChangeLogService;
@GetMapping("/listChangeType")
public R<List<CaiDictVo>> listChangeType(){
List<CaiDictVo> res = Arrays.stream(AccountCateEnum.values()).map(i -> {
CaiDictVo vo = new CaiDictVo();
vo.setValue(i.getCode() + "");
vo.setLabel(i.getText());
return vo;
}).collect(Collectors.toList());
return R.ok(res);
}
/**
* 查询账户明细列表
*/
@SaCheckPermission("cai:accountChangeLog:list")
@GetMapping("/list")
public TableDataInfo<AccountChangeLog> list(AccountChangeLog bo, PageQuery pageQuery) {
Page<AccountChangeLog> page = accountChangeLogService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取账户明细详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:accountChangeLog:query")
@GetMapping("/{id}")
public R<AccountChangeLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(accountChangeLogService.getById(id));
}
}

View File

@@ -1,69 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Account;
import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
import com.ruoyi.cai.service.AccountService;
import com.ruoyi.cai.service.RechargeOrderService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 用户账户
*
* @author 77
* @date 2023-12-31
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/account")
public class AccountController extends BaseController {
private final AccountService accountService;
private final RechargeOrderService rechargeOrderService;
/**
* 查询用户账户列表
*/
@SaCheckPermission("cai:account:list")
@GetMapping("/list")
public TableDataInfo<AccountAdminVo> list(AccountAdminVo bo, PageQuery pageQuery) {
Page<AccountAdminVo> page = accountService.pageAdmin(pageQuery,bo);
return TableDataInfo.build(page);
}
/**
* 获取用户账户详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:account:query")
@GetMapping("/{id}")
public R<Account> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(accountService.getById(id));
}
@SaCheckPermission("cai:account:add")
@Log(title = "用户账户调账", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/updateCoin")
public R<Void> add(@RequestBody AddRechargeOrderAdminDto bo) {
rechargeOrderService.updateAdminRechargeOrder(bo);
return R.ok();
}
}

View File

@@ -1,53 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.ruoyi.cai.domain.AgreementSetting;
import com.ruoyi.cai.service.AgreementSettingService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 协议设置
*
* @author 77
* @date 2024-01-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/agreementSetting")
public class AgreementSettingController extends BaseController {
private final AgreementSettingService agreementSettingService;
/**
* 获取协议设置详细信息
*/
@SaCheckPermission("cai:agreementSetting:query")
@GetMapping("/info")
public R<AgreementSetting> getInfo() {
return R.ok(agreementSettingService.getAgreementSetting());
}
/**
* 修改协议设置
*/
@SaCheckPermission("cai:agreementSetting:edit")
@Log(title = "协议设置", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody AgreementSetting bo) {
return toAjax(agreementSettingService.updateById(bo));
}
}

View File

@@ -1,90 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AnchorApply;
import com.ruoyi.cai.dto.admin.vo.AnchorApplyAdminVo;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.service.AnchorApplyService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 播主申请管理
*
* @author 77
* @date 2023-12-22
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/anchorApply")
public class AnchorApplyController extends BaseController {
private final AnchorApplyService anchorApplyService;
/**
* 查询播主申请管理列表
*/
@SaCheckPermission("cai:anchorApply:list")
@GetMapping("/list")
public TableDataInfo<AnchorApplyAdminVo> list(AnchorApplyAdminVo bo, PageQuery pageQuery) {
Page<AnchorApplyAdminVo> page = anchorApplyService.pageAdmin(pageQuery,bo);
return TableDataInfo.build(page);
}
/**
* 获取播主申请管理详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:anchorApply:query")
@GetMapping("/{id}")
public R<AnchorApply> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(anchorApplyService.getById(id));
}
@SaCheckPermission("cai:anchorApply:edit")
@Log(title = "主播申请-同意", businessType = BusinessType.UPDATE)
@PostMapping("/auditAnchorSuccess")
public R<Void> auditAnchorSuccess(@RequestBody IdRes id) {
anchorApplyService.auditAnchorSuccess(id.getId());
return R.ok();
}
@SaCheckPermission("cai:anchorApply:edit")
@Log(title = "主播申请-不同意", businessType = BusinessType.UPDATE)
@PostMapping("/auditAnchorFail")
public R<Void> auditAnchorFail(@RequestBody IdRes id) {
anchorApplyService.auditAnchorFail(id.getId());
return R.ok();
}
/**
* 删除播主申请管理
*
* @param ids 主键串
*/
@SaCheckPermission("cai:anchorApply:remove")
@Log(title = "播主申请管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(anchorApplyService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,116 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.cai.domain.Anchor;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserOnline;
import com.ruoyi.cai.dto.admin.vo.AnchorAdminVo;
import com.ruoyi.cai.dto.admin.vo.AnchorFullAdminVo;
import com.ruoyi.cai.notice.YunxinHttpService;
import com.ruoyi.cai.service.AnchorService;
import com.ruoyi.cai.service.UserInfoService;
import com.ruoyi.cai.service.UserOnlineService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 女神列表
*
* @author 77
* @date 2023-12-22
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/anchor")
public class AnchorController extends BaseController {
private final AnchorService anchorService;
private final UserService userService;
private final UserInfoService userInfoService;
private final UserOnlineService userOnlineService;
/**
* 查询女神列表列表
*/
@SaCheckPermission("cai:anchor:list")
@GetMapping("/list")
public TableDataInfo<AnchorAdminVo> list(AnchorAdminVo bo, PageQuery pageQuery) {
IPage<AnchorAdminVo> page = anchorService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取女神列表详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:anchor:query")
@GetMapping("/{id}")
public R<Anchor> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(anchorService.getById(id));
}
@GetMapping("/full")
public R<AnchorFullAdminVo> getInfo(@NotNull(message = "主键不能为空")
Long userId) {
AnchorFullAdminVo vo = new AnchorFullAdminVo();
vo.setUser(userService.getById(userId));
vo.setAnchor(anchorService.getByUserId(userId));
vo.setUserOnline(userOnlineService.getByUserId(userId));
vo.setUserInfo(userInfoService.getByUserId(userId));
return R.ok(vo);
}
@SaCheckPermission("cai:anchor:add")
@Log(title = "女神列表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@RequestBody AnchorAdminVo bo) {
User user = userService.getByUserCode(bo.getUsercode());
if(user == null){
return R.fail("用户不存在");
}
anchorService.joinAnchor(user.getId());
return R.ok();
}
@SaCheckPermission("cai:anchor:edit")
@Log(title = "女神列表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Anchor bo) {
return toAjax(anchorService.updateById(bo));
}
@Autowired
private YunxinHttpService yunxinHttpService;
@SaCheckPermission("cai:anchor:remove")
@Log(title = "女神列表", businessType = BusinessType.DELETE)
@DeleteMapping("/{userId}")
public R<Void> remove(@NotNull(message = "主键不能为空")
@PathVariable Long userId) {
boolean boo = anchorService.closeAnchor(userId);
if(boo){
yunxinHttpService.cancelAnchorMessage(userId);
}
return R.ok();
}
}

View File

@@ -1,97 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Banner;
import com.ruoyi.cai.service.BannerService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 轮播
*
* @author 77
* @date 2023-12-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/banner")
public class BannerController extends BaseController {
private final BannerService bannerService;
/**
* 查询轮播列表
*/
@SaCheckPermission("cai:banner:list")
@GetMapping("/list")
public TableDataInfo<Banner> list(Banner bo, PageQuery pageQuery) {
Page<Banner> page = bannerService.page(pageQuery.build(),
Wrappers.lambdaQuery(bo).orderByDesc(Banner::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取轮播详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:banner:query")
@GetMapping("/{id}")
public R<Banner> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(bannerService.getById(id));
}
/**
* 新增轮播
*/
@SaCheckPermission("cai:banner:add")
@Log(title = "轮播", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody Banner bo) {
return toAjax(bannerService.save(bo));
}
/**
* 修改轮播
*/
@SaCheckPermission("cai:banner:edit")
@Log(title = "轮播", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Banner bo) {
return toAjax(bannerService.updateById(bo));
}
/**
* 删除轮播
*
* @param ids 主键串
*/
@SaCheckPermission("cai:banner:remove")
@Log(title = "轮播", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(bannerService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,62 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.ConsumeLog;
import com.ruoyi.cai.service.ConsumeLogService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/consumeLog")
public class ConsumeLogController extends BaseController {
private final ConsumeLogService consumeLogService;
@SaCheckPermission("cai:consumeLog:list")
@GetMapping("/list")
public TableDataInfo<ConsumeLog> list(ConsumeLog bo, PageQuery pageQuery) {
Page<ConsumeLog> page = consumeLogService.page(pageQuery.build(),
Wrappers.lambdaQuery(bo).orderByDesc(ConsumeLog::getCreateTime));
return TableDataInfo.build(page);
}
@SaCheckPermission("cai:consumeLog:query")
@GetMapping("/{id}")
public R<ConsumeLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(consumeLogService.getById(id));
}
@GetMapping("/trace")
public R<ConsumeLog> getInfoTraceId(String traceId) {
ConsumeLog res = consumeLogService.getOne(Wrappers.lambdaQuery(ConsumeLog.class).eq(ConsumeLog::getTraceId,traceId).last("limit 1"));
return R.ok(res);
}
@SaCheckPermission("cai:consumeLog:edit")
@Log(title = "计算分销", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@GetMapping("/consumer")
public R<Void> consumer(Long id) {
consumeLogService.dealFenxiao(id,false);
return R.ok();
}
}

View File

@@ -1,77 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.DayIncomeStatistics;
import com.ruoyi.cai.service.DayIncomeStatisticsService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
/**
* 每日账单统计
*
* @author 77
* @date 2024-01-22
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/dayIncomeStatistics")
public class DayIncomeStatisticsController extends BaseController {
private final DayIncomeStatisticsService dayIncomeStatisticsService;
/**
* 查询每日账单统计列表
*/
@SaCheckPermission("cai:dayIncomeStatistics:list")
@GetMapping("/list")
public TableDataInfo<DayIncomeStatistics> list(DayIncomeStatistics bo, PageQuery pageQuery) {
Page<DayIncomeStatistics> page = dayIncomeStatisticsService.page(pageQuery.build(),
Wrappers.lambdaQuery(bo).orderByDesc(DayIncomeStatistics::getDate));
return TableDataInfo.build(page);
}
/**
* 获取每日账单统计详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:dayIncomeStatistics:query")
@GetMapping("/{id}")
public R<DayIncomeStatistics> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(dayIncomeStatisticsService.getById(id));
}
@SaCheckPermission("cai:dayIncomeStatistics:edit")
@Log(title = "刷新单天统计", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/refreshToday")
public R<Void> refreshToday() {
dayIncomeStatisticsService.refreshByDate(LocalDate.now());
return R.ok();
}
@SaCheckPermission("cai:dayIncomeStatistics:edit")
@Log(title = "刷新昨日统计", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/refreshLastDay")
public R<Void> refreshLastDay() {
dayIncomeStatisticsService.refreshByDate(LocalDate.now().plusDays(-1));
return R.ok();
}
}

View File

@@ -1,149 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Dynamic;
import com.ruoyi.cai.dto.admin.query.BatchAuditReq;
import com.ruoyi.cai.dto.admin.vo.DynamicAdminVo;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.enums.AuditStatusEnum;
import com.ruoyi.cai.service.DynamicService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
/**
* 主播动态
*
* @author 77
* @date 2023-12-23
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/dynamic")
public class DynamicController extends BaseController {
private final DynamicService dynamicService;
/**
* 查询主播动态列表
*/
@SaCheckPermission("cai:dynamic:list")
@GetMapping("/list")
public TableDataInfo<DynamicAdminVo> list(DynamicAdminVo bo, PageQuery pageQuery) {
Page<DynamicAdminVo> page = dynamicService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取主播动态详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:dynamic:query")
@GetMapping("/{id}")
public R<Dynamic> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(dynamicService.getById(id));
}
/**
* 新增主播动态
*/
@SaCheckPermission("cai:dynamic:add")
@Log(title = "主播动态", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody Dynamic bo) {
return toAjax(dynamicService.save(bo));
}
@SaCheckPermission("cai:dynamic:edit")
@Log(title = "主播动态修改成功", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/audit/success")
public R<Void> auditSuccess(@RequestBody IdRes bo) {
boolean success = dynamicService.auditSuccess(Collections.singletonList(bo.getId()));
return R.ok();
}
@SaCheckPermission("cai:dynamic:edit")
@Log(title = "主播动态修改失败", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/audit/fail")
public R<Void> auditFail(@RequestBody IdRes bo) {
dynamicService.auditFail(bo.getId());
return R.ok();
}
@SaCheckPermission("cai:dynamic:edit")
@RepeatSubmit()
@PostMapping("/batch/audit")
@Log(title = "批量审核通过动态", businessType = BusinessType.UPDATE)
public R<Boolean> edit(@RequestBody BatchAuditReq bo) {
boolean success = dynamicService.auditSuccess(bo.getIds());
return R.ok(success);
}
@SaCheckPermission("cai:dynamic:edit")
@RepeatSubmit()
@PostMapping("/top")
@Log(title = "主播动态置顶", businessType = BusinessType.DELETE)
public R<Void> top(@RequestBody Dynamic bo) {
dynamicService.top(bo.getId());
return R.ok();
}
@SaCheckPermission("cai:dynamic:edit")
@RepeatSubmit()
@PostMapping("/unTop")
@Log(title = "主播动态取消置顶", businessType = BusinessType.DELETE)
public R<Void> unTop(@RequestBody Dynamic bo) {
dynamicService.unTop(bo.getId());
return R.ok();
}
@GetMapping("/selectTop")
public R<Map<String,Object>> selectTop() {
boolean exists = dynamicService.exists(Wrappers.lambdaQuery(Dynamic.class)
.eq(Dynamic::getAuditStatus, AuditStatusEnum.SUCCESS.getCode())
.eq(Dynamic::getSort, 1));
Map<String,Object> map = new HashMap<>();
map.put("exists",exists);
return R.ok(map);
}
/**
* 删除主播动态
*
* @param ids 主键串
*/
@SaCheckPermission("cai:dynamic:remove")
@Log(title = "主播动态", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(dynamicService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,74 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.dto.admin.vo.ForbidFilterAdminVo;
import com.ruoyi.cai.service.ForbidFilterService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 登陆拦截记录
*
* @author 77
* @date 2024-01-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/forbidFilter")
public class ForbidFilterController extends BaseController {
private final ForbidFilterService forbidFilterService;
/**
* 查询登陆拦截记录列表
*/
@SaCheckPermission("cai:forbidFilter:list")
@GetMapping("/list")
public TableDataInfo<ForbidFilterAdminVo> list(ForbidFilterAdminVo bo, PageQuery pageQuery) {
Page<ForbidFilterAdminVo> page = forbidFilterService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取登陆拦截记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:forbidFilter:query")
@GetMapping("/{id}")
public R<ForbidFilter> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(forbidFilterService.getById(id));
}
/**
* 删除登陆拦截记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:forbidFilter:remove")
@Log(title = "登陆拦截记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(forbidFilterService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,84 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Gift;
import com.ruoyi.cai.service.GiftService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 礼物
*
* @author 77
* @date 2023-12-23
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/gift")
public class GiftController extends BaseController {
private final GiftService giftService;
/**
* 查询礼物列表
*/
@SaCheckPermission("cai:gift:list")
@GetMapping("/list")
public TableDataInfo<Gift> list(Gift bo, PageQuery pageQuery) {
Page<Gift> page = giftService.page(pageQuery.build(),
Wrappers.lambdaQuery(bo).orderByAsc(Gift::getPrice));
return TableDataInfo.build(page);
}
/**
* 获取礼物详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:gift:query")
@GetMapping("/{id}")
public R<Gift> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(giftService.getById(id));
}
/**
* 新增礼物
*/
@SaCheckPermission("cai:gift:add")
@Log(title = "礼物", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody Gift bo) {
return toAjax(giftService.save(bo));
}
/**
* 修改礼物
*/
@SaCheckPermission("cai:gift:edit")
@Log(title = "礼物", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Gift bo) {
return toAjax(giftService.updateById(bo));
}
}

View File

@@ -1,95 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Goods;
import com.ruoyi.cai.service.GoodsService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 充值配置
*
* @author 77
* @date 2023-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/goods")
public class GoodsController extends BaseController {
private final GoodsService goodsService;
/**
* 查询充值配置列表
*/
@SaCheckPermission("cai:goods:list")
@GetMapping("/list")
public TableDataInfo<Goods> list(Goods bo, PageQuery pageQuery) {
Page<Goods> page = goodsService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取充值配置详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:goods:query")
@GetMapping("/{id}")
public R<Goods> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(goodsService.getById(id));
}
/**
* 新增充值配置
*/
@SaCheckPermission("cai:goods:add")
@Log(title = "充值配置", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody Goods bo) {
return toAjax(goodsService.save(bo));
}
/**
* 修改充值配置
*/
@SaCheckPermission("cai:goods:edit")
@Log(title = "充值配置", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Goods bo) {
return toAjax(goodsService.updateById(bo));
}
/**
* 删除充值配置
*
* @param ids 主键串
*/
@SaCheckPermission("cai:goods:remove")
@Log(title = "充值配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(goodsService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,65 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.GuardLog;
import com.ruoyi.cai.service.GuardLogService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 守护赠送流水
*
* @author 77
* @date 2023-12-31
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/guardLog")
public class GuardLogController extends BaseController {
private final GuardLogService guardLogService;
/**
* 查询守护赠送流水列表
*/
@SaCheckPermission("cai:guardLog:list")
@GetMapping("/list")
public TableDataInfo<GuardLog> list(GuardLog bo, PageQuery pageQuery) {
Page<GuardLog> page = guardLogService.page(pageQuery.build(),
Wrappers.lambdaQuery(bo).orderByDesc(GuardLog::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取守护赠送流水详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:guardLog:query")
@GetMapping("/{id}")
public R<GuardLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(guardLogService.getById(id));
}
@GetMapping("/trace")
public R<GuardLog> getInfoTraceId(String traceId) {
GuardLog res = guardLogService.getOne(Wrappers.lambdaQuery(GuardLog.class).eq(GuardLog::getTraceId,traceId).last("limit 1"));
return R.ok(res);
}
}

View File

@@ -1,57 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.GuardTotal;
import com.ruoyi.cai.service.GuardTotalService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 用户守护累计
*
* @author 77
* @date 2023-12-31
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/guardTotal")
public class GuardTotalController extends BaseController {
private final GuardTotalService guardTotalService;
/**
* 查询用户守护累计列表
*/
@SaCheckPermission("cai:guardTotal:list")
@GetMapping("/list")
public TableDataInfo<GuardTotal> list(GuardTotal bo, PageQuery pageQuery) {
Page<GuardTotal> page = guardTotalService.page(pageQuery.build(),
Wrappers.lambdaQuery(bo).orderByDesc(GuardTotal::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取用户守护累计详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:guardTotal:query")
@GetMapping("/{id}")
public R<GuardTotal> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(guardTotalService.getById(id));
}
}

View File

@@ -1,74 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.LowHeightRisk;
import com.ruoyi.cai.dto.admin.vo.LowHeightRiskAdminVo;
import com.ruoyi.cai.service.LowHeightRiskService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 高风险用户记录
*
* @author 77
* @date 2023-12-22
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/lowHeightRisk")
public class LowHeightRiskController extends BaseController {
private final LowHeightRiskService lowHeightRiskService;
/**
* 查询高风险用户记录列表
*/
@SaCheckPermission("cai:lowHeightRisk:list")
@GetMapping("/list")
public TableDataInfo<LowHeightRiskAdminVo> list(LowHeightRiskAdminVo bo, PageQuery pageQuery) {
Page<LowHeightRiskAdminVo> page = lowHeightRiskService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取高风险用户记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:lowHeightRisk:query")
@GetMapping("/{id}")
public R<LowHeightRisk> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(lowHeightRiskService.getById(id));
}
/**
* 删除高风险用户记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:lowHeightRisk:remove")
@Log(title = "高风险用户记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(lowHeightRiskService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,89 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.PayConfig;
import com.ruoyi.cai.service.PayConfigService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* 支付配置
*
* @author 77
* @date 2024-01-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/payConfig")
public class PayConfigController extends BaseController {
private final PayConfigService payConfigService;
/**
* 查询支付配置列表
*/
@SaCheckPermission("cai:payConfig:list")
@GetMapping("/list")
public TableDataInfo<PayConfig> list(PayConfig bo, PageQuery pageQuery) {
Page<PayConfig> page = payConfigService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取支付配置详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:payConfig:query")
@GetMapping("/{id}")
public R<PayConfig> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(payConfigService.getById(id));
}
/**
* 新增支付配置
*/
@SaCheckPermission("cai:payConfig:add")
@Log(title = "支付配置", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody PayConfig bo) {
return toAjax(payConfigService.addPayConfig(bo));
}
/**
* 修改支付配置
*/
@SaCheckPermission("cai:payConfig:edit")
@Log(title = "支付配置", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PayConfig bo) {
return toAjax(payConfigService.updatePayConfig(bo));
}
@SaCheckPermission("cai:payConfig:remove")
@Log(title = "支付配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long id) {
return toAjax(payConfigService.deletePayConfig(id));
}
}

View File

@@ -1,57 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.PayTotal;
import com.ruoyi.cai.dto.admin.vo.PayTotalAdminVo;
import com.ruoyi.cai.service.PayTotalService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 支付统计
*
* @author 77
* @date 2024-01-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/payTotal")
public class PayTotalController extends BaseController {
private final PayTotalService payTotalService;
/**
* 查询支付统计列表
*/
@SaCheckPermission("cai:payTotal:list")
@GetMapping("/list")
public TableDataInfo<PayTotalAdminVo> list(PayTotal bo, PageQuery pageQuery) {
Page<PayTotalAdminVo> page = payTotalService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取支付统计详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:payTotal:query")
@GetMapping("/{id}")
public R<PayTotal> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(payTotalService.getById(id));
}
}

View File

@@ -1,71 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Rank;
import com.ruoyi.cai.dto.admin.vo.RankAdminVo;
import com.ruoyi.cai.service.RankService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 榜单
*
* @author 77
* @date 2024-01-20
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/rank")
public class RankController extends BaseController {
private final RankService rankService;
/**
* 查询榜单列表
*/
@SaCheckPermission("cai:rank:list")
@GetMapping("/list")
public TableDataInfo<RankAdminVo> list(RankAdminVo bo, PageQuery pageQuery) {
Page<RankAdminVo> page = rankService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取榜单详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:rank:query")
@GetMapping("/{id}")
public R<Rank> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(rankService.getById(id));
}
/**
* 删除榜单
*
* @param ids 主键串
*/
@SaCheckPermission("cai:rank:remove")
@Log(title = "榜单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(rankService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,74 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
import com.ruoyi.cai.service.RechargeOrderService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.BeanConvertUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 充值订单
*
* @author 77
* @date 2024-01-03
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/rechargeOrder")
public class RechargeOrderController extends BaseController {
private final RechargeOrderService rechargeOrderService;
private final UserService userService;
/**
* 查询充值订单列表
*/
@SaCheckPermission("cai:rechargeOrder:list")
@GetMapping("/list")
public TableDataInfo<RechargeOrderAdminVo> list(RechargeOrderAdminVo bo, PageQuery pageQuery) {
Page<RechargeOrderAdminVo> page = rechargeOrderService.pageAdmin(pageQuery,bo);
return TableDataInfo.build(page);
}
/**
* 获取充值订单详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:rechargeOrder:query")
@GetMapping("/{id}")
public R<RechargeOrderAdminVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
RechargeOrder rechargeOrder = rechargeOrderService.getById(id);
RechargeOrderAdminVo res = BeanConvertUtil.convertTo(rechargeOrder, RechargeOrderAdminVo::new);
User user = userService.getById(res.getUserId());
BeanUtils.copyProperties(user,res);
return R.ok(res);
}
@GetMapping("/trace")
public R<RechargeOrderAdminVo> getInfoTraceId(String traceId) {
RechargeOrder rechargeOrder = rechargeOrderService.getOne(Wrappers.lambdaQuery(RechargeOrder.class).eq(RechargeOrder::getTraceId,traceId).last("limit 1"));
RechargeOrderAdminVo res = BeanConvertUtil.convertTo(rechargeOrder, RechargeOrderAdminVo::new);
User user = userService.getById(res.getUserId());
BeanUtils.copyProperties(user,res);
return R.ok(res);
}
}

View File

@@ -1,97 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Report;
import com.ruoyi.cai.dto.admin.vo.ReportAdminVo;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.notice.YunxinHttpService;
import com.ruoyi.cai.service.ReportService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 举报
*
* @author 77
* @date 2023-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/report")
public class ReportController extends BaseController {
private final ReportService reportService;
@Autowired
private YunxinHttpService yunxinHttpService;
/**
* 查询举报列表
*/
@SaCheckPermission("cai:report:list")
@GetMapping("/list")
public TableDataInfo<ReportAdminVo> list(ReportAdminVo bo, PageQuery pageQuery) {
Page<ReportAdminVo> page = reportService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取举报详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:report:query")
@GetMapping("/{id}")
public R<Report> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(reportService.getById(id));
}
@SaCheckPermission("cai:report:edit")
@Log(title = "举报处理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/audit/success")
public R<Void> edit(@RequestBody IdRes id) {
boolean update = reportService.update(Wrappers.lambdaUpdate(Report.class)
.eq(Report::getId, id.getId())
.eq(Report::getStatus, 0)
.set(Report::getStatus, 1));
if(update){
Report report = reportService.getById(id.getId());
if(report != null){
yunxinHttpService.reportSendMessage(report.getUserId());
}
}
return R.ok();
}
/**
* 删除举报
*
* @param ids 主键串
*/
@SaCheckPermission("cai:report:remove")
@Log(title = "举报", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(reportService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,73 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.SmsVerify;
import com.ruoyi.cai.service.SmsVerifyService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 短信验证码
*
* @author 77
* @date 2024-01-01
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/smsVerify")
public class SmsVerifyController extends BaseController {
private final SmsVerifyService smsVerifyService;
/**
* 查询短信验证码列表
*/
@SaCheckPermission("cai:smsVerify:list")
@GetMapping("/list")
public TableDataInfo<SmsVerify> list(SmsVerify bo, PageQuery pageQuery) {
Page<SmsVerify> page = smsVerifyService.page(pageQuery.build(), Wrappers.lambdaQuery(bo).orderByDesc(SmsVerify::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取短信验证码详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:smsVerify:query")
@GetMapping("/{id}")
public R<SmsVerify> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(smsVerifyService.getById(id));
}
/**
* 删除短信验证码
*
* @param ids 主键串
*/
@SaCheckPermission("cai:smsVerify:remove")
@Log(title = "短信验证码", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(smsVerifyService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,104 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.SysPush;
import com.ruoyi.cai.dto.admin.query.syspush.SysPushParams;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.service.SysPushService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 推送系统消息
*
* @author 77
* @date 2024-01-28
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/sysPush")
public class SysPushController extends BaseController {
private final SysPushService sysPushService;
/**
* 查询推送系统消息列表
*/
@SaCheckPermission("cai:sysPush:list")
@GetMapping("/list")
public TableDataInfo<SysPush> list(SysPush bo, PageQuery pageQuery) {
Page<SysPush> page = sysPushService.page(pageQuery.build(), Wrappers.lambdaQuery(bo).orderByDesc(SysPush::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取推送系统消息详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:sysPush:query")
@GetMapping("/{id}")
public R<SysPush> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(sysPushService.getById(id));
}
@SaCheckPermission("cai:sysPush:run")
@Log(title = "推送系统消息执行", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/run")
public R<Void> run(@RequestBody IdRes idRes) {
sysPushService.handStart(idRes.getId());
return R.ok();
}
@SaCheckPermission("cai:sysPush:close")
@Log(title = "取消定时系统消息执行", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/close")
public R<Void> close(@RequestBody IdRes idRes) {
sysPushService.closeSysPush(idRes.getId());
return R.ok();
}
/**
* 新增推送系统消息
*/
@SaCheckPermission("cai:sysPush:add")
@Log(title = "推送系统消息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@RequestBody SysPushParams params) {
sysPushService.saveSysPush(params);
return R.ok();
}
/**
* 删除推送系统消息
*
* @param ids 主键串
*/
@SaCheckPermission("cai:sysPush:remove")
@Log(title = "推送系统消息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(sysPushService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,95 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.SysPushLog;
import com.ruoyi.cai.service.SysPushLogService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 推送系统消息记录
*
* @author 77
* @date 2024-01-28
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/sysPushLog")
public class SysPushLogController extends BaseController {
private final SysPushLogService sysPushLogService;
/**
* 查询推送系统消息记录列表
*/
@SaCheckPermission("cai:sysPushLog:list")
@GetMapping("/list")
public TableDataInfo<SysPushLog> list(SysPushLog bo, PageQuery pageQuery) {
Page<SysPushLog> page = sysPushLogService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取推送系统消息记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:sysPushLog:query")
@GetMapping("/{id}")
public R<SysPushLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(sysPushLogService.getById(id));
}
/**
* 新增推送系统消息记录
*/
@SaCheckPermission("cai:sysPushLog:add")
@Log(title = "推送系统消息记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysPushLog bo) {
return toAjax(sysPushLogService.save(bo));
}
/**
* 修改推送系统消息记录
*/
@SaCheckPermission("cai:sysPushLog:edit")
@Log(title = "推送系统消息记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysPushLog bo) {
return toAjax(sysPushLogService.updateById(bo));
}
/**
* 删除推送系统消息记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:sysPushLog:remove")
@Log(title = "推送系统消息记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(sysPushLogService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,86 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.ruoyi.cai.dto.admin.SystemConfigResponse;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.enums.SystemConfigGroupEnum;
import com.ruoyi.cai.enums.systemconfig.SystemCheckResp;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/cai/systemConfig")
public class SystemConfigController {
@Autowired
private SystemConfigManager systemConfigManager;
@GetMapping("/business/all")
@SaCheckPermission("cai:businessConfig:query")
public R<List<SystemConfigResponse>> businessAll(){
List<SystemConfigResponse> responses = new ArrayList<>();
Map<String, String> allSystemConfig = systemConfigManager.getAllSystemConfig();
SystemConfigEnum[] values = SystemConfigEnum.values();
for (SystemConfigEnum value : values) {
if(value.getGroup() == SystemConfigGroupEnum.BUSINESS){
SystemConfigResponse sys = new SystemConfigResponse();
sys.setKey(value.getKey());
sys.setValue(allSystemConfig.getOrDefault(value.getKey(),value.getDefaultValue()));
sys.setDesc(value.getDesc());
responses.add(sys);
}
}
return R.ok(responses);
}
@GetMapping("/business/update")
@SaCheckPermission("cai:businessConfig:edit")
@Log(title = "修改业务设置", businessType = BusinessType.UPDATE)
public R<Void> businessUpdate(String key,String value){
SystemConfigEnum[] values = SystemConfigEnum.values();
for (SystemConfigEnum config : values) {
if (config.getGroup() == SystemConfigGroupEnum.BUSINESS && config.getKey().equals(key)) {
SystemCheckResp checkResp = systemConfigManager.setSystemConfig(config, value);
if(checkResp.isSuccess()){
return R.ok();
}
return R.fail(checkResp.getMessage());
}
}
return R.ok();
}
@GetMapping("/system/all")
@SaCheckPermission("cai:systemConfig:query")
public R<List<SystemConfigResponse>> systemAll(){
List<SystemConfigResponse> responses = new ArrayList<>();
Map<String, String> allSystemConfig = systemConfigManager.getAllSystemConfig();
SystemConfigEnum[] values = SystemConfigEnum.values();
for (SystemConfigEnum value : values) {
if(value.getGroup() == SystemConfigGroupEnum.SYSTEM){
SystemConfigResponse sys = new SystemConfigResponse();
sys.setKey(value.getKey());
sys.setValue(allSystemConfig.getOrDefault(value.getKey(),value.getDefaultValue()));
sys.setDesc(value.getDesc());
responses.add(sys);
}
}
return R.ok(responses);
}
@GetMapping("/system/update")
@SaCheckPermission("cai:systemConfig:edit")
@Log(title = "修改系统设置", businessType = BusinessType.UPDATE)
public R<Boolean> systemUpdate(String key,String value){
systemConfigManager.set(key,value);
return R.ok(true);
}
}

View File

@@ -1,69 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Union;
import com.ruoyi.cai.dto.admin.query.UsercodeReq;
import com.ruoyi.cai.dto.admin.vo.UnionAdminVo;
import com.ruoyi.cai.service.UnionService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userUnion")
public class UnionController extends BaseController {
private final UnionService unionService;
@SaCheckPermission("cai:userUnion:list")
@GetMapping("/list")
public TableDataInfo<UnionAdminVo> list(UnionAdminVo bo, PageQuery pageQuery) {
Page<UnionAdminVo> page = unionService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
@SaCheckPermission("cai:userUnion:query")
@GetMapping("/{id}")
public R<Union> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(unionService.getById(id));
}
@SaCheckPermission("cai:userUnion:add")
@Log(title = "工会列表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UsercodeReq bo) {
return toAjax(unionService.saveUnion(bo.getUsercode()));
}
@SaCheckPermission("cai:userUnion:edit")
@Log(title = "工会列表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Union bo) {
return toAjax(unionService.updateById(bo));
}
@SaCheckPermission("cai:userUnion:remove")
@Log(title = "解散工会", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public R<Void> dissolve(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return toAjax(unionService.dissolve(id));
}
}

View File

@@ -1,56 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UnionUser;
import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo;
import com.ruoyi.cai.service.UnionUserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 123
*
* @author ruoyi
* @date 2023-12-22
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/unionUser")
public class UnionUserController extends BaseController {
private final UnionUserService unionUserService;
@GetMapping("/list")
public TableDataInfo<UnionUserAdminVo> list(UnionUserAdminVo bo, PageQuery pageQuery) {
Page<UnionUserAdminVo> page = unionUserService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
@GetMapping("/{id}")
public R<UnionUser> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(unionUserService.getById(id));
}
@SaCheckPermission("cai:unionUser:edit")
@Log(title = "修改工会成员提成", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UnionUser bo) {
return toAjax(unionUserService.updateById(bo));
}
}

View File

@@ -1,34 +0,0 @@
package com.ruoyi.cai.controller.admin;
import com.ruoyi.cai.dto.admin.vo.unread.UnreadData;
import com.ruoyi.cai.manager.UnreadManager;
import com.ruoyi.common.core.domain.R;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/unread")
public class UnreadController {
@Autowired
public UnreadManager unreadManager;
@GetMapping("/data")
public R<UnreadData> list() {
UnreadData data = unreadManager.data();
return R.ok(data);
}
@GetMapping("/checkCount")
public R<Integer> count() {
boolean checkCount = unreadManager.checkCount();
return R.ok(checkCount?1:0);
}
}

View File

@@ -1,89 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserAlbum;
import com.ruoyi.cai.dto.admin.vo.UserAlbumAdminVo;
import com.ruoyi.cai.service.UserAlbumService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.Arrays;
/**
* 主播集锦
*
* @author ruoyi
* @date 2023-12-23
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userAlbum")
public class UserAlbumController extends BaseController {
private final UserAlbumService userAlbumService;
/**
* 查询主播集锦列表
*/
@SaCheckPermission("cai:userAlbum:list")
@GetMapping("/list")
public TableDataInfo<UserAlbumAdminVo> list(UserAlbumAdminVo bo, PageQuery pageQuery) {
Page<UserAlbumAdminVo> page = userAlbumService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取主播集锦详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userAlbum:query")
@GetMapping("/{id}")
public R<UserAlbum> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userAlbumService.getById(id));
}
@SaCheckPermission("cai:userAlbum:edit")
@Log(title = "主播集锦", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/audit")
public R<Void> audit(@RequestBody UserAlbum bo) {
LambdaUpdateWrapper<UserAlbum> update = Wrappers.lambdaUpdate(UserAlbum.class)
.eq(UserAlbum::getId, bo.getId())
.set(UserAlbum::getAuditStatus, bo.getAuditStatus())
.set(UserAlbum::getAuditTime, LocalDateTime.now());
userAlbumService.update(update);
return R.ok();
}
/**
* 删除主播集锦
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userAlbum:remove")
@Log(title = "主播集锦", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userAlbumService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,104 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserCall;
import com.ruoyi.cai.dto.admin.vo.UserCallAdminVo;
import com.ruoyi.cai.service.UserCallService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.BeanConvertUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 通话记录
*
* @author 77
* @date 2023-12-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userCall")
public class UserCallController extends BaseController {
private final UserCallService userCallService;
private final UserService userService;
/**
* 查询通话记录列表
*/
@SaCheckPermission("cai:userCall:list")
@GetMapping("/list")
public TableDataInfo<UserCallAdminVo> list(UserCallAdminVo bo, PageQuery pageQuery) {
Page<UserCallAdminVo> page = userCallService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取通话记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userCall:query")
@GetMapping("/{id}")
public R<UserCallAdminVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
UserCall userCall = userCallService.getById(id);
UserCallAdminVo resp = BeanConvertUtil.convertTo(userCall, UserCallAdminVo::new);
User fromUser = userService.getById(userCall.getFromUid());
if(fromUser != null){
resp.setFromMobile(fromUser.getMobile());
resp.setFromAvatar(fromUser.getAvatar());
}
User toUser = userService.getById(userCall.getToUid());
if(toUser != null){
resp.setToMobile(toUser.getMobile());
resp.setToAvatar(toUser.getAvatar());
}
return R.ok(resp);
}
@GetMapping("/trace")
public R<UserCallAdminVo> getInfoTraceId(String traceId) {
UserCall userCall = userCallService.getOne(Wrappers.lambdaQuery(UserCall.class).eq(UserCall::getTraceId,traceId).last("limit 1"));
UserCallAdminVo resp = BeanConvertUtil.convertTo(userCall, UserCallAdminVo::new);
User fromUser = userService.getById(userCall.getFromUid());
if(fromUser != null){
resp.setFromMobile(fromUser.getMobile());
resp.setFromAvatar(fromUser.getAvatar());
}
User toUser = userService.getById(userCall.getToUid());
if(toUser != null){
resp.setToMobile(toUser.getMobile());
resp.setToAvatar(toUser.getAvatar());
}
return R.ok(resp);
}
/**
* 删除通话记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userCall:remove")
@Log(title = "通话记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userCallService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,99 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Dynamic;
import com.ruoyi.cai.domain.UserCameraAudit;
import com.ruoyi.cai.dto.admin.query.BatchAuditReq;
import com.ruoyi.cai.dto.admin.vo.UserCameraAuditAdminVo;
import com.ruoyi.cai.service.UserCameraAuditService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 自拍认证
*
* @author 77
* @date 2023-12-30
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userCameraAudit")
public class UserCameraAuditController extends BaseController {
private final UserCameraAuditService userCameraAuditService;
/**
* 查询自拍认证列表
*/
@SaCheckPermission("cai:userCameraAudit:list")
@GetMapping("/list")
public TableDataInfo<UserCameraAuditAdminVo> list(UserCameraAuditAdminVo bo, PageQuery pageQuery) {
Page<UserCameraAuditAdminVo> page = userCameraAuditService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取自拍认证详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userCameraAudit:query")
@GetMapping("/{id}")
public R<UserCameraAudit> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(userCameraAuditService.getById(id));
}
/**
* 修改自拍认证
*/
@SaCheckPermission("cai:userCameraAudit:edit")
@Log(title = "自拍认证", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserCameraAudit bo) {
return toAjax(userCameraAuditService.updateById(bo));
}
@SaCheckPermission("cai:userCameraAudit:edit")
@RepeatSubmit()
@PostMapping("/batch/audit")
@Log(title = "批量审核通过自拍认证", businessType = BusinessType.UPDATE)
public R<Void> edit(@RequestBody BatchAuditReq bo) {
userCameraAuditService.update(Wrappers.lambdaUpdate(UserCameraAudit.class)
.in(UserCameraAudit::getId,bo.getIds())
.set(UserCameraAudit::getAuditStatus,bo.getAuditStatus())
.eq(UserCameraAudit::getAuditStatus,1));
return R.ok();
}
/**
* 删除自拍认证
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userCameraAudit:remove")
@Log(title = "自拍认证", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(userCameraAuditService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,73 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserChatRecord;
import com.ruoyi.cai.service.UserChatRecordService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 聊天记录
*
* @author 77
* @date 2024-01-09
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userChatRecord")
public class UserChatRecordController extends BaseController {
private final UserChatRecordService userChatRecordService;
/**
* 查询聊天记录列表
*/
@SaCheckPermission("cai:userChatRecord:list")
@GetMapping("/list")
public TableDataInfo<UserChatRecord> list(UserChatRecord bo, PageQuery pageQuery) {
Page<UserChatRecord> page = userChatRecordService.page(pageQuery.build(), Wrappers.lambdaQuery(bo).orderByDesc(UserChatRecord::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取聊天记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userChatRecord:query")
@GetMapping("/{id}")
public R<UserChatRecord> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userChatRecordService.getById(id));
}
/**
* 删除聊天记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userChatRecord:remove")
@Log(title = "聊天记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userChatRecordService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,157 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.admin.query.ResetPasswordReq;
import com.ruoyi.cai.dto.admin.query.UpdateMobileAdminReq;
import com.ruoyi.cai.dto.admin.query.UserForbidReq;
import com.ruoyi.cai.dto.admin.query.UserUpdateAdminReq;
import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
import com.ruoyi.cai.dto.admin.vo.UserFullAdminVo;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.manager.UserAdminManager;
import com.ruoyi.cai.manager.UserForbidManager;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.stream.Collectors;
/**
* 用户
*
* @author 77
* @date 2023-12-19
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/user")
public class UserController extends BaseController {
private final UserService userService;
private final UserAdminManager userAdminManager;
/**
* 查询用户列表
*/
@SaCheckPermission("cai:user:list")
@GetMapping("/list")
public TableDataInfo<UserAdminVo> list(User query, PageQuery pageQuery) {
Page<UserAdminVo> result = userService.pageAdmin(pageQuery, query);
return TableDataInfo.build(result);
}
@GetMapping("/getByUsercode")
public R<User> getByUsercode(String usercode){
return R.ok(userService.getByUserCode(usercode));
}
@GetMapping("/listByUserCode")
public R<List<String>> listByUserCode(String usercode,int limit){
if(limit == 0){
limit = 40;
}
List<User> users = userService.list(Wrappers.lambdaQuery(User.class)
.select(User::getUsercode)
.like(StringUtils.isNotEmpty(usercode), User::getUsercode, usercode)
.last("limit " + limit));
return R.ok(users.stream().map(User::getUsercode).collect(Collectors.toList()));
}
@Autowired
private UserForbidManager userForbidManager;
@PostMapping("/resetAvatar")
@SaCheckPermission("cai:user:resetAvatar")
@Log(title = "重置用户头像", businessType = BusinessType.UPDATE)
public R<Void> resetAvatar(@RequestBody IdRes res){
userService.resetAvatar(res.getId());
return R.ok();
}
@PostMapping("/resetNickname")
@SaCheckPermission("cai:user:resetNickname")
@Log(title = "重置用户昵称", businessType = BusinessType.UPDATE)
public R<Void> resetNickname(@RequestBody IdRes res){
userService.resetNickname(res.getId());
return R.ok();
}
@PostMapping("/userForbid")
@SaCheckPermission("cai:user:lock")
@Log(title = "封禁用户", businessType = BusinessType.UPDATE)
public R<Void> userForbid(@RequestBody UserForbidReq userForbidReq){
userForbidManager.batchForbid(userForbidReq);
return R.ok();
}
/**
* 获取用户详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:user:query")
@GetMapping("/{id}")
public R<User> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return R.ok(userService.getById(id));
}
@SaCheckPermission("cai:user:query")
@GetMapping("/full/{id}")
public R<UserFullAdminVo> getFullUser(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return R.ok(userAdminManager.getUser(id));
}
/**
* 修改用户
*/
@SaCheckPermission("cai:user:edit")
@Log(title = "用户", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserUpdateAdminReq bo) {
return toAjax(userAdminManager.updateUser(bo));
}
@SaCheckPermission("cai:user:updateMobile")
@Log(title = "修改用户手机", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/updateMobile")
public R<Void> updateMobile(@RequestBody UpdateMobileAdminReq bo) {
return toAjax(userAdminManager.updateMobileUser(bo));
}
@PostMapping("/resetPwd")
@SaCheckPermission("cai:user:restPwd")
@Log(title = "重置用户密码", businessType = BusinessType.UPDATE)
public R<Void> resetPwd(@RequestBody ResetPasswordReq req) {
User user = userService.getById(req.getUserId());
userService.resetPassword(req.getUserId(),user.getPassword());
return R.ok();
}
@SaCheckPermission("cai:user:remove")
@Log(title = "用户", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public R<Void> remove(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return toAjax(userService.removeUser(id));
}
}

View File

@@ -1,70 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserCount;
import com.ruoyi.cai.dto.admin.vo.UserCountAdminVo;
import com.ruoyi.cai.service.UserCountService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 用户信息数量统计
*
* @author 77
* @date 2023-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userCount")
public class UserCountController extends BaseController {
private final UserCountService userCountService;
/**
* 查询用户信息数量统计列表
*/
@SaCheckPermission("cai:userCount:list")
@GetMapping("/list")
public TableDataInfo<UserCountAdminVo> list(UserCountAdminVo bo, PageQuery pageQuery) {
Page<UserCountAdminVo> page = userCountService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
@GetMapping("/reset")
@SaCheckPermission("cai:userCount:edit")
@RepeatSubmit()
@Log(title = "用户信息数量统计", businessType = BusinessType.UPDATE)
public R<Void> reset(Long userId) {
userCountService.reset(userId);
return R.ok();
}
/**
* 获取用户信息数量统计详细信息
*
* @param userId 主键
*/
@SaCheckPermission("cai:userCount:query")
@GetMapping("/{userId}")
public R<UserCount> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer userId) {
return R.ok(userCountService.getById(userId));
}
}

View File

@@ -1,70 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserErrorLog;
import com.ruoyi.cai.dto.admin.vo.UserErrorLogAdminVo;
import com.ruoyi.cai.service.UserErrorLogService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 用户异常记录
*
* @author 77
* @date 2024-01-22
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userErrorLog")
public class UserErrorLogController extends BaseController {
private final UserErrorLogService userErrorLogService;
/**
* 查询用户异常记录列表
*/
@SaCheckPermission("cai:userErrorLog:list")
@GetMapping("/list")
public TableDataInfo<UserErrorLogAdminVo> list(UserErrorLogAdminVo bo, PageQuery pageQuery) {
Page<UserErrorLogAdminVo> page = userErrorLogService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取用户异常记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userErrorLog:query")
@GetMapping("/{id}")
public R<UserErrorLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userErrorLogService.getById(id));
}
/**
* 删除用户异常记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userErrorLog:remove")
@Log(title = "用户异常记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userErrorLogService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,103 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.net.Ipv4Util;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.dto.admin.UserForbidDTO;
import com.ruoyi.cai.dto.admin.query.forbid.UserForbidIpReq;
import com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo;
import com.ruoyi.cai.enums.ForbidTimeEnum;
import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.cai.manager.UserForbidManager;
import com.ruoyi.cai.service.UserForbidService;
import com.ruoyi.cai.util.IpAddressUtil;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.ServiceException;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 封号列表
*
* @author 77
* @date 2023-12-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userForbid")
public class UserForbidController extends BaseController {
private final UserForbidService userForbidService;
@Autowired
private UserForbidManager userForbidManager;
/**
* 查询封号列表列表
*/
@SaCheckPermission("cai:userForbid:list")
@GetMapping("/list")
public TableDataInfo<UserForbidAdminVo> list(UserForbidAdminVo bo, PageQuery pageQuery) {
Page<UserForbidAdminVo> page = userForbidService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取封号列表详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userForbid:query")
@GetMapping("/{id}")
public R<UserForbid> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userForbidService.getById(id));
}
@Log(title = "封禁IP", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@SaCheckPermission("cai:userForbid:forbidIp")
@PostMapping("/forbid/ip")
public R<Void> forbid(@RequestBody UserForbidIpReq ip) {
boolean isIP = IpAddressUtil.isIp(ip.getIp());
if(!isIP){
return R.fail("请输入正常的IP地址");
}
boolean innerIP = Ipv4Util.isInnerIP(ip.getIp());
if(innerIP){
return R.fail("不允许封禁内网IP地址");
}
UserForbidDTO dto = new UserForbidDTO();
dto.setForbidTime(ip.getForbidTime());
dto.setForbidType(ForbidTypeEnum.IP.getCode());
dto.setMember(ip.getIp());
dto.setRemark(ip.getRemark());
userForbidManager.forbid(dto);
return R.ok();
}
@Log(title = "解封", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@SaCheckPermission("cai:userForbid:unForbid")
@GetMapping("/un/forbid")
public R<Void> unForbid(Long id) {
userForbidManager.unForbidByForbidId(id);
return R.ok();
}
}

View File

@@ -1,74 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.dto.admin.vo.UserForbidLogAdminVo;
import com.ruoyi.cai.service.UserForbidLogService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 封禁记录
*
* @author 77
* @date 2024-01-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userForbidLog")
public class UserForbidLogController extends BaseController {
private final UserForbidLogService userForbidLogService;
/**
* 查询封禁记录列表
*/
@SaCheckPermission("cai:userForbidLog:list")
@GetMapping("/list")
public TableDataInfo<UserForbidLogAdminVo> list(UserForbidLogAdminVo bo, PageQuery pageQuery) {
Page<UserForbidLogAdminVo> page = userForbidLogService.pageAdmin(pageQuery,bo);
return TableDataInfo.build(page);
}
/**
* 获取封禁记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userForbidLog:query")
@GetMapping("/{id}")
public R<UserForbidLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userForbidLogService.getById(id));
}
/**
* 删除封禁记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userForbidLog:remove")
@Log(title = "封禁记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userForbidLogService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,64 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserGift;
import com.ruoyi.cai.service.UserGiftService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 礼物流水
*
* @author 77
* @date 2023-12-31
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userGift")
public class UserGiftController extends BaseController {
private final UserGiftService userGiftService;
/**
* 查询礼物流水列表
*/
@SaCheckPermission("cai:userGift:list")
@GetMapping("/list")
public TableDataInfo<UserGift> list(UserGift bo, PageQuery pageQuery) {
Page<UserGift> page = userGiftService.page(pageQuery.build(), Wrappers.lambdaQuery(bo).orderByDesc(UserGift::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取礼物流水详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userGift:query")
@GetMapping("/{id}")
public R<UserGift> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userGiftService.getById(id));
}
@GetMapping("/trace")
public R<UserGift> getInfoTraceId(String traceId) {
UserGift res = userGiftService.getOne(Wrappers.lambdaQuery(UserGift.class).eq(UserGift::getTraceId,traceId).last("limit 1"));
return R.ok(res);
}
}

View File

@@ -1,99 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserGreet;
import com.ruoyi.cai.dto.admin.query.BatchAuditReq;
import com.ruoyi.cai.dto.admin.vo.UserGreetAdminVo;
import com.ruoyi.cai.service.UserGreetService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 群发审核
*
* @author 77
* @date 2024-01-01
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userGreet")
public class UserGreetController extends BaseController {
private final UserGreetService userGreetService;
/**
* 查询群发审核列表
*/
@SaCheckPermission("cai:userGreet:list")
@GetMapping("/list")
public TableDataInfo<UserGreetAdminVo> list(UserGreetAdminVo bo, PageQuery pageQuery) {
Page<UserGreetAdminVo> page = userGreetService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取群发审核详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userGreet:query")
@GetMapping("/{id}")
public R<UserGreet> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(userGreetService.getById(id));
}
@SaCheckPermission("cai:userGreet:edit")
@RepeatSubmit()
@PostMapping("/batch/audit")
public R<Void> edit(@RequestBody BatchAuditReq bo) {
userGreetService.update(Wrappers.lambdaUpdate(UserGreet.class)
.in(UserGreet::getId,bo.getIds())
.set(UserGreet::getAuditStatus,bo.getAuditStatus())
.eq(UserGreet::getAuditStatus,1));
return R.ok();
}
/**
* 修改群发审核
*/
@SaCheckPermission("cai:userGreet:edit")
@Log(title = "群发审核", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserGreet bo) {
return toAjax(userGreetService.updateById(bo));
}
/**
* 删除群发审核
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userGreet:remove")
@Log(title = "群发审核", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(userGreetService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,57 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserInfo;
import com.ruoyi.cai.dto.admin.vo.UserInfoAdminVo;
import com.ruoyi.cai.service.UserInfoService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 用户好友提成
*
* @author 77
* @date 2024-01-04
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userInfo")
public class UserInfoController extends BaseController {
private final UserInfoService userInfoService;
@SaCheckPermission("cai:userInfo:list")
@GetMapping("/list")
public TableDataInfo<UserInfoAdminVo> list(UserInfoAdminVo bo, PageQuery pageQuery) {
Page<UserInfoAdminVo> page = userInfoService.pageAdmin(pageQuery,bo);
return TableDataInfo.build(page);
}
@SaCheckPermission("cai:userInfo:query")
@GetMapping("/{id}")
public R<UserInfo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userInfoService.getById(id));
}
@SaCheckPermission("cai:userInfo:edit")
@Log(title = "用户好友提成", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserInfo bo) {
return toAjax(userInfoService.updateById(bo));
}
}

View File

@@ -1,69 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserInvite;
import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo;
import com.ruoyi.cai.service.UserInviteService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 用户邀请
*
* @author 77
* @date 2023-12-28
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userInvite")
public class UserInviteController extends BaseController {
private final UserInviteService userInviteService;
/**
* 查询用户邀请列表
*/
@SaCheckPermission("cai:userInvite:list")
@GetMapping("/list")
public TableDataInfo<UserInviteAdminVo> list(UserInviteAdminVo bo, PageQuery pageQuery) {
Page<UserInviteAdminVo> page = userInviteService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取用户邀请详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userInvite:query")
@GetMapping("/{id}")
public R<UserInvite> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userInviteService.getById(id));
}
/**
* 新增用户邀请
*/
@SaCheckPermission("cai:userInvite:edit")
@Log(title = "用户邀请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(AddGroup.class) @RequestBody UserInvite bo) {
return toAjax(userInviteService.updateById(bo));
}
}

View File

@@ -1,85 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserMember;
import com.ruoyi.cai.dto.admin.vo.UserMemberAdminVo;
import com.ruoyi.cai.service.UserMemberService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.cai.service.VipOrderService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 会员管理
*
* @author 77
* @date 2023-12-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userMember")
public class UserMemberController extends BaseController {
private final UserMemberService userMemberService;
private final VipOrderService vipOrderService;
private final UserService userService;
/**
* 查询会员管理列表
*/
@SaCheckPermission("cai:userMember:list")
@GetMapping("/list")
public TableDataInfo<UserMemberAdminVo> list(UserMemberAdminVo bo, PageQuery pageQuery) {
Page<UserMemberAdminVo> page = userMemberService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page);
}
/**
* 获取会员管理详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userMember:query")
@GetMapping("/{id}")
public R<UserMember> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(userMemberService.getById(id));
}
@SaCheckPermission("cai:userMember:add")
@Log(title = "会员管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@GetMapping("/addVip")
public R<Void> add(Long memberPriceId, String usercode) {
User user = userService.getByUserCode(usercode);
if(user == null){
return R.fail("用户不存在!");
}
vipOrderService.updateVipOrderAdmin(memberPriceId,user.getId());
return toAjax(true);
}
@SaCheckPermission("cai:userMember:remove")
@Log(title = "会员管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public R<Void> remove(@NotNull(message = "主键不能为空") @PathVariable Long id) {
userMemberService.relieveMember(id);
return R.ok();
}
}

View File

@@ -1,68 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.VipOrder;
import com.ruoyi.cai.dto.admin.vo.VipOrderAdminVo;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.cai.service.VipOrderService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.BeanConvertUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* VIP订单
*
* @author 77
* @date 2024-01-03
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/vipOrder")
public class VipOrderController extends BaseController {
private final VipOrderService vipOrderService;
private final UserService userService;
/**
* 查询VIP订单列表
*/
@SaCheckPermission("cai:vipOrder:list")
@GetMapping("/list")
public TableDataInfo<VipOrderAdminVo> list(VipOrderAdminVo bo, PageQuery pageQuery) {
Page<VipOrderAdminVo> page = vipOrderService.pageAdmin(pageQuery,bo);
return TableDataInfo.build(page);
}
/**
* 获取VIP订单详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:vipOrder:query")
@GetMapping("/{id}")
public R<VipOrderAdminVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
VipOrder vipOrder = vipOrderService.getById(id);
VipOrderAdminVo res = BeanConvertUtil.convertTo(vipOrder, VipOrderAdminVo::new);
User user = userService.getById(res.getUserId());
if(user != null){
BeanUtils.copyProperties(user,res);
}
return R.ok(res);
}
}

View File

@@ -1,95 +0,0 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.WithdrawExchange;
import com.ruoyi.cai.service.WithdrawExchangeService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 提现 - 兑换配置
*
* @author 77
* @date 2023-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/withdrawExchange")
public class WithdrawExchangeController extends BaseController {
private final WithdrawExchangeService withdrawExchangeService;
/**
* 查询提现 - 兑换配置列表
*/
@SaCheckPermission("cai:withdrawExchange:list")
@GetMapping("/list")
public TableDataInfo<WithdrawExchange> list(WithdrawExchange bo, PageQuery pageQuery) {
Page<WithdrawExchange> page = withdrawExchangeService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取提现 - 兑换配置详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:withdrawExchange:query")
@GetMapping("/{id}")
public R<WithdrawExchange> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(withdrawExchangeService.getById(id));
}
/**
* 新增提现 - 兑换配置
*/
@SaCheckPermission("cai:withdrawExchange:add")
@Log(title = "提现 - 兑换配置", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WithdrawExchange bo) {
return toAjax(withdrawExchangeService.save(bo));
}
/**
* 修改提现 - 兑换配置
*/
@SaCheckPermission("cai:withdrawExchange:edit")
@Log(title = "提现 - 兑换配置", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WithdrawExchange bo) {
return toAjax(withdrawExchangeService.updateById(bo));
}
/**
* 删除提现 - 兑换配置
*
* @param ids 主键串
*/
@SaCheckPermission("cai:withdrawExchange:remove")
@Log(title = "提现 - 兑换配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(withdrawExchangeService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,96 +0,0 @@
package com.ruoyi.cai.controller.admin.back;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AccountBankcard;
import com.ruoyi.cai.service.AccountBankcardService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 用户银行卡
*
* @author 77
* @date 2023-12-21
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/accountBankcard")
@Deprecated
public class AccountBankcardController extends BaseController {
private final AccountBankcardService accountBankcardService;
/**
* 查询用户银行卡列表
*/
@SaCheckPermission("cai:accountBankcard:list")
@GetMapping("/list")
public TableDataInfo<AccountBankcard> list(AccountBankcard bo, PageQuery pageQuery) {
Page<AccountBankcard> page = accountBankcardService.page(pageQuery.build());
return TableDataInfo.build(page);
}
/**
* 获取用户银行卡详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:accountBankcard:query")
@GetMapping("/{id}")
public R<AccountBankcard> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(accountBankcardService.getById(id));
}
/**
* 新增用户银行卡
*/
@SaCheckPermission("cai:accountBankcard:add")
@Log(title = "用户银行卡", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody AccountBankcard bo) {
return toAjax(accountBankcardService.save(bo));
}
/**
* 修改用户银行卡
*/
@SaCheckPermission("cai:accountBankcard:edit")
@Log(title = "用户银行卡", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody AccountBankcard bo) {
return toAjax(accountBankcardService.updateById(bo));
}
/**
* 删除用户银行卡
*
* @param ids 主键串
*/
@SaCheckPermission("cai:accountBankcard:remove")
@Log(title = "用户银行卡", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(accountBankcardService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,97 +0,0 @@
package com.ruoyi.cai.controller.admin.back;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.GiveLog;
import com.ruoyi.cai.service.GiveLogService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 赠送记录
*
* @author 77
* @date 2023-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/giveLog")
@Deprecated
public class GiveLogController extends BaseController {
private final GiveLogService giveLogService;
/**
* 查询赠送记录列表
*/
@SaCheckPermission("cai:giveLog:list")
@GetMapping("/list")
public TableDataInfo<GiveLog> list(GiveLog bo, PageQuery pageQuery) {
Page<GiveLog> page = giveLogService.page(pageQuery.build(),
Wrappers.lambdaQuery(bo).orderByDesc(GiveLog::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取赠送记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:giveLog:query")
@GetMapping("/{id}")
public R<GiveLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(giveLogService.getById(id));
}
/**
* 新增赠送记录
*/
@SaCheckPermission("cai:giveLog:add")
@Log(title = "赠送记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody GiveLog bo) {
return toAjax(giveLogService.save(bo));
}
/**
* 修改赠送记录
*/
@SaCheckPermission("cai:giveLog:edit")
@Log(title = "赠送记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GiveLog bo) {
return toAjax(giveLogService.updateById(bo));
}
/**
* 删除赠送记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:giveLog:remove")
@Log(title = "赠送记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(giveLogService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,95 +0,0 @@
package com.ruoyi.cai.controller.admin.back;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.MemberPrice;
import com.ruoyi.cai.service.MemberPriceService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 会员价格
*
* @author 77
* @date 2024-01-03
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/memberPrice")
public class MemberPriceController extends BaseController {
private final MemberPriceService memberPriceService;
/**
* 查询会员价格列表
*/
@SaCheckPermission("cai:memberPrice:list")
@GetMapping("/list")
public TableDataInfo<MemberPrice> list(MemberPrice bo, PageQuery pageQuery) {
Page<MemberPrice> page = memberPriceService.page(pageQuery.build(), Wrappers.lambdaQuery(bo).orderByAsc(MemberPrice::getPrice));
return TableDataInfo.build(page);
}
/**
* 获取会员价格详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:memberPrice:query")
@GetMapping("/{id}")
public R<MemberPrice> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(memberPriceService.getById(id));
}
/**
* 新增会员价格
*/
@SaCheckPermission("cai:memberPrice:add")
@Log(title = "会员价格", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody MemberPrice bo) {
return toAjax(memberPriceService.save(bo));
}
/**
* 修改会员价格
*/
@SaCheckPermission("cai:memberPrice:edit")
@Log(title = "会员价格", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody MemberPrice bo) {
return toAjax(memberPriceService.updateById(bo));
}
/**
* 删除会员价格
*
* @param ids 主键串
*/
@SaCheckPermission("cai:memberPrice:remove")
@Log(title = "会员价格", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(memberPriceService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,96 +0,0 @@
package com.ruoyi.cai.controller.admin.back;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.ReportCate;
import com.ruoyi.cai.service.ReportCateService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 举报分类
*
* @author 77
* @date 2023-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/reportCate")
public class ReportCateController extends BaseController {
private final ReportCateService reportCateService;
/**
* 查询举报分类列表
*/
@SaCheckPermission("cai:reportCate:list")
@GetMapping("/list")
public TableDataInfo<ReportCate> list(ReportCate bo, PageQuery pageQuery) {
Page<ReportCate> page = reportCateService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取举报分类详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:reportCate:query")
@GetMapping("/{id}")
public R<ReportCate> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(reportCateService.getById(id));
}
/**
* 新增举报分类
*/
@SaCheckPermission("cai:reportCate:add")
@Log(title = "举报分类", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ReportCate bo) {
return toAjax(reportCateService.save(bo));
}
/**
* 修改举报分类
*/
@SaCheckPermission("cai:reportCate:edit")
@Log(title = "举报分类", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ReportCate bo) {
return toAjax(reportCateService.updateById(bo));
}
/**
* 删除举报分类
*
* @param ids 主键串
*/
@SaCheckPermission("cai:reportCate:remove")
@Log(title = "举报分类", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(reportCateService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,95 +0,0 @@
package com.ruoyi.cai.controller.admin.back;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserChatFilter;
import com.ruoyi.cai.service.UserChatFilterService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 聊天过滤
*
* @author 77
* @date 2024-01-09
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userChatFilter")
public class UserChatFilterController extends BaseController {
private final UserChatFilterService userChatFilterService;
/**
* 查询聊天过滤列表
*/
@SaCheckPermission("cai:userChatFilter:list")
@GetMapping("/list")
public TableDataInfo<UserChatFilter> list(UserChatFilter bo, PageQuery pageQuery) {
Page<UserChatFilter> page = userChatFilterService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取聊天过滤详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userChatFilter:query")
@GetMapping("/{id}")
public R<UserChatFilter> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userChatFilterService.getById(id));
}
/**
* 新增聊天过滤
*/
@SaCheckPermission("cai:userChatFilter:add")
@Log(title = "聊天过滤", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserChatFilter bo) {
return toAjax(userChatFilterService.save(bo));
}
/**
* 修改聊天过滤
*/
@SaCheckPermission("cai:userChatFilter:edit")
@Log(title = "聊天过滤", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserChatFilter bo) {
return toAjax(userChatFilterService.updateById(bo));
}
/**
* 删除聊天过滤
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userChatFilter:remove")
@Log(title = "聊天过滤", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userChatFilterService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,97 +0,0 @@
package com.ruoyi.cai.controller.admin.back;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserRiskLog;
import com.ruoyi.cai.service.UserRiskLogService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 高风险操作日志
*
* @author 77
* @date 2023-12-22
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userRiskLog")
@Deprecated
public class UserRiskLogController extends BaseController {
private final UserRiskLogService userRiskLogService;
/**
* 查询高风险操作日志列表
*/
@SaCheckPermission("cai:userRiskLog:list")
@GetMapping("/list")
public TableDataInfo<UserRiskLog> list(UserRiskLog bo, PageQuery pageQuery) {
Page<UserRiskLog> page = userRiskLogService.page(pageQuery.build(), Wrappers.lambdaQuery(bo).orderByDesc(UserRiskLog::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取高风险操作日志详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userRiskLog:query")
@GetMapping("/{id}")
public R<UserRiskLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userRiskLogService.getById(id));
}
/**
* 新增高风险操作日志
*/
@SaCheckPermission("cai:userRiskLog:add")
@Log(title = "高风险操作日志", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserRiskLog bo) {
return toAjax(userRiskLogService.save(bo));
}
/**
* 修改高风险操作日志
*/
@SaCheckPermission("cai:userRiskLog:edit")
@Log(title = "高风险操作日志", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserRiskLog bo) {
return toAjax(userRiskLogService.updateById(bo));
}
/**
* 删除高风险操作日志
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userRiskLog:remove")
@Log(title = "高风险操作日志", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userRiskLogService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,95 +0,0 @@
package com.ruoyi.cai.controller.admin.back;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserVisitor;
import com.ruoyi.cai.service.UserVisitorService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 用户来访记录
*
* @author 77
* @date 2023-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userVisitor")
public class UserVisitorController extends BaseController {
private final UserVisitorService userVisitorService;
/**
* 查询用户来访记录列表
*/
@SaCheckPermission("cai:userVisitor:list")
@GetMapping("/list")
public TableDataInfo<UserVisitor> list(UserVisitor bo, PageQuery pageQuery) {
Page<UserVisitor> page = userVisitorService.page(pageQuery.build(), Wrappers.lambdaQuery(bo).orderByDesc(UserVisitor::getCreateTime));
return TableDataInfo.build(page);
}
/**
* 获取用户来访记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userVisitor:query")
@GetMapping("/{id}")
public R<UserVisitor> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userVisitorService.getById(id));
}
/**
* 新增用户来访记录
*/
@SaCheckPermission("cai:userVisitor:add")
@Log(title = "用户来访记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserVisitor bo) {
return toAjax(userVisitorService.save(bo));
}
/**
* 修改用户来访记录
*/
@SaCheckPermission("cai:userVisitor:edit")
@Log(title = "用户来访记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserVisitor bo) {
return toAjax(userVisitorService.updateById(bo));
}
/**
* 删除用户来访记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userVisitor:remove")
@Log(title = "用户来访记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userVisitorService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -1,27 +0,0 @@
package com.ruoyi.cai.controller.admin.init;
import com.ruoyi.cai.service.CitysService;
import com.ruoyi.common.core.domain.R;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/city")
public class CityController {
@Autowired
private CitysService citysService;
@GetMapping("/resetRedis")
public R<Void> resetRedis(){
citysService.resetRedis();
return R.ok();
}
}

View File

@@ -1,93 +0,0 @@
package com.ruoyi.cai.controller.admin.init;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.yunxin.client.ImUserClient;
import com.ruoyi.yunxin.req.CreateUserReq;
import com.ruoyi.yunxin.req.UpdateTokenReq;
import com.ruoyi.yunxin.resp.YxCommonR;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/im")
@Slf4j
public class ImController {
@Autowired
private ImUserClient imUserClient;
@Autowired
private UserService userService;
@GetMapping("/register")
public R<Void> registerIm(Long userId){
User user = userService.getById(userId);
if(user == null){
return R.fail("用户不存在");
}
register(user);
return R.ok();
}
private void register(User user){
CreateUserReq req = new CreateUserReq();
req.setAccid(user.getId()+"");
req.setToken(user.getImToken());
req.setName(user.getNickname());
YxCommonR r = imUserClient.createUser(req);
if(!r.isSuccess()){
if(r.getCode() == 414){
UpdateTokenReq req1 = new UpdateTokenReq();
req1.setAccid(user.getId()+"");
req1.setToken(user.getImToken());
YxCommonR commonR = imUserClient.updateToken(req1);
if(!commonR.isSuccess()){
log.error("刷新云token失败,{}", JSON.toJSONString(commonR));
throw new ServiceException("注册失败,云信异常");
}
}else{
log.error("创建云信账号失败,{}", JSON.toJSONString(r));
throw new ServiceException("注册失败,云信异常");
}
}
}
@GetMapping("/registerAll")
public R<Void> registerAllIm(){
int current = 0;
int success = 0;
int fail = 0;
while (true){
current++;
Page<User> page = new Page<>(current,100);
Page<User> data = userService.page(page);
List<User> records = data.getRecords();
if(records.isEmpty()){
break;
}
for (User record : records) {
try {
register(record);
success++;
}catch (Exception e){
log.error("刷新token失败",e);
fail++;
}
}
}
return R.ok(String.format("总数:%s,成功数:%s,失败数:%s", success+fail,success,fail));
}
}

View File

@@ -1,29 +0,0 @@
package com.ruoyi.cai.controller.admin.init;
import com.ruoyi.cai.mq.AmqpProducer;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/mq/test")
public class MqControllerTest {
@Autowired
private AmqpProducer amqpProducer;
@GetMapping("/send")
public void send(String message,Integer time){
amqpProducer.sendRoomSettleDelay(message,time);
}
@GetMapping("/send2")
public void send(String message){
amqpProducer.sendCalculateSales(message);
}
}

View File

@@ -1,96 +0,0 @@
package com.ruoyi.cai.controller.app;
import cn.hutool.core.util.PhoneUtil;
import com.ruoyi.cai.auth.RegisterCode;
import com.ruoyi.cai.domain.Adolescent;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.app.query.user.AdolescentSettingReq;
import com.ruoyi.cai.dto.app.query.user.AdolescentSmsCheckReq;
import com.ruoyi.cai.dto.app.query.user.AdolescentSwitchReq;
import com.ruoyi.cai.dto.app.vo.user.AdolescentVo;
import com.ruoyi.cai.enums.CodeEnum;
import com.ruoyi.cai.service.AdolescentService;
import com.ruoyi.cai.service.SmsVerifyService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/api/adolescent")
@Tag(name = "青少年模式接口")
public class AdolescentAppController {
@Autowired
private AdolescentService adolescentService;
@Autowired
private UserService userService;
@PostMapping("/set")
@Operation(summary = "设置青少年模式")
@Log(title = "设置青少年模式", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> set(@RequestBody AdolescentSettingReq setting){
adolescentService.setAdolescent(setting);
return R.ok();
}
@GetMapping("/get")
@Operation(summary = "获取用户青少年模式状态")
@Log(title = "获取用户青少年模式状态", businessType = BusinessType.OTHER, isSaveDb = false)
public R<AdolescentVo> get(){
Long userId = LoginHelper.getUserId();
Adolescent adolescent = adolescentService.getByUserId(userId);
AdolescentVo vo = new AdolescentVo();
if(adolescent != null){
vo.setIsSetAdolescent(1);
vo.setIsSetPwd(1);
vo.setIsOpen(adolescent.getOpen());
}
return R.ok(vo);
}
@PostMapping("/switch")
@Operation(summary = "青少年模式开关")
@Log(title = "青少年模式开关", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> switchAdolescent(@RequestBody AdolescentSwitchReq adolescentSwitchReq){
adolescentService.switchAdolescent(adolescentSwitchReq);
return R.ok();
}
@PostMapping("/verifyMobileCode")
@Operation(summary = "校验验证码-青少年模式")
@Log(title = "校验验证码-青少年模式", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> verifyMobileCode(@RequestBody AdolescentSmsCheckReq req){
adolescentService.verifyMobileCode(req);
return R.ok();
}
@Autowired
private SmsVerifyService smsVerifyService;
@PostMapping("/sms/code")
@Operation(summary = "获取验证码-青少年模式")
@Log(title = "获取验证码-青少年模式", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Map<String,String>> resetPasswordCode(@Validated @RequestBody RegisterCode code){
boolean mobile = PhoneUtil.isMobile(code.getMobile());
if(!mobile){
return R.fail(600,"请输入正确的手机格式");
}
User user = userService.getById(LoginHelper.getUserId());
if(user == null || !user.getMobile().equals(code.getMobile())){
return R.fail(600,"手机号码和绑定的手机号码不一致");
}
smsVerifyService.put(CodeEnum.RESET_ADOLESCENT,code.getMobile());
return R.ok("发送成功");
}
}

View File

@@ -1,116 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.ruoyi.cai.dto.app.query.AnchorUpdateReq;
import com.ruoyi.cai.dto.app.query.anchor.UpdateOpenStatusReq;
import com.ruoyi.cai.dto.app.query.anchor.UpdateOrderSwitchReq;
import com.ruoyi.cai.dto.app.vo.AnchorJoinHomeVo;
import com.ruoyi.cai.dto.app.vo.AnchorVo;
import com.ruoyi.cai.dto.app.vo.CameraAuditVo;
import com.ruoyi.cai.manager.CurrentUserManager;
import com.ruoyi.cai.service.AnchorApplyService;
import com.ruoyi.cai.service.AnchorService;
import com.ruoyi.cai.service.UserCameraAuditService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/anchor")
@Tag(name = "主播相关接口")
public class AnchorAppController {
@Autowired
private CurrentUserManager currentUserManager;
@Autowired
private UserCameraAuditService userCameraAuditService;
@Autowired
private AnchorService anchorService;
@Autowired
private UserService userService;
@Autowired
private AnchorApplyService anchorApplyService;
@GetMapping("/info")
@Operation(summary = "当前用户的主播信息")
@Log(title = "当前用户的主播信息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<AnchorVo> anchorInfo(){
return R.ok(currentUserManager.anchorInfo());
}
@PostMapping("/update")
@Operation(summary = "修改当前用户的主播信息")
@Log(title = "修改当前用户的主播信息", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> anchorUpdate(@RequestBody AnchorUpdateReq anchorUpdate){
return R.ok(currentUserManager.anchorUpdate(anchorUpdate));
}
@PostMapping("/updateOpenStatus")
@Operation(summary = "修改视频通话")
@Log(title = "修改视频通话", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> updateOpenStatus(@RequestBody UpdateOpenStatusReq anchorUpdate){
AnchorUpdateReq req = new AnchorUpdateReq();
req.setOpenVideoStatus(anchorUpdate.getOpenVideoStatus());
return R.ok(currentUserManager.anchorUpdate(req));
}
@PostMapping("/updateOrderSwitch")
@Operation(summary = "是否隐藏通话次数")
@Log(title = "是否隐藏通话次数", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> updateOrderSwitch(@RequestBody UpdateOrderSwitchReq anchorUpdate){
AnchorUpdateReq req = new AnchorUpdateReq();
req.setOrderSwitch(anchorUpdate.getOrderSwitch());
return R.ok(currentUserManager.anchorUpdate(req));
}
@GetMapping("/cameraAudit")
@Operation(summary = "主播自拍认证")
@Log(title = "主播自拍认证", businessType = BusinessType.OTHER, isSaveDb = false)
public R<CameraAuditVo> cameraAudit(){
Long userId = LoginHelper.getUserId();
return R.ok(userCameraAuditService.cameraAudit(userId));
}
@PostMapping("/uploadCameraAudit")
@Operation(summary = "上传自拍认证")
@Log(title = "上传自拍认证", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> uploadCameraAudit(@RequestBody CameraAuditVo vo){
Long userId = LoginHelper.getUserId();
vo.setUserId(userId);
return R.ok(userCameraAuditService.uploadCameraAudit(vo));
}
@Operation(summary = "同意主播服务协议")
@PostMapping("/agreeProtocol")
@Log(title = "同意主播服务协议", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> agreeProtocol(){
boolean b = userService.agreeProtocol(LoginHelper.getUserId());
return R.ok(b);
}
@Operation(summary = "加入主播页面")
@GetMapping("/joinHome")
@Log(title = "加入主播页面", businessType = BusinessType.OTHER, isSaveDb = true)
public R<AnchorJoinHomeVo> joinHome(){
AnchorJoinHomeVo vo = anchorApplyService.joinHome(LoginHelper.getUserId());
return R.ok(vo);
}
@Operation(summary = "申请加入主播")
@GetMapping("/joinAnchor")
@Log(title = "申请加入主播", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> joinAnchor(){
return R.ok(anchorApplyService.joinAnchor(LoginHelper.getUserId()));
}
}

View File

@@ -1,112 +0,0 @@
package com.ruoyi.cai.controller.app;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.util.PhoneUtil;
import com.ruoyi.cai.auth.*;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.app.vo.LoginVo;
import com.ruoyi.cai.enums.CodeEnum;
import com.ruoyi.cai.manager.CurrentUserManager;
import com.ruoyi.cai.manager.LoginAfterManager;
import com.ruoyi.cai.notice.YunxinHttpService;
import com.ruoyi.cai.service.SmsVerifyService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.yunxin.Yunxin;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/api/auth")
@SaIgnore
@Tag(name = "权限相关接口,免鉴权")
@Validated
public class AuthAppController {
@Autowired
private CaiLoginManager caiLoginManager;
@Autowired
private SmsVerifyService smsVerifyService;
@Autowired
private UserService userService;
@Autowired
private CurrentUserManager currentUserManager;
@PostMapping("/register")
@Operation(summary = "注册")
@Log(title = "注册", businessType = BusinessType.OTHER, isSaveDb = true)
public R<LoginVo> register(@Validated @RequestBody CaiRegisterUser caiUser){
boolean mobile = PhoneUtil.isMobile(caiUser.getUsername());
if(!mobile){
return R.fail(600,"请输入正确的手机格式");
}
String token = caiLoginManager.register(caiUser);
LoginVo vo = new LoginVo();
vo.setToken(token);
vo.setUserInfo(currentUserManager.currentInfo());
return R.ok(vo);
}
@PostMapping("/register/code")
@Operation(summary = "获取注册验证码")
@Log(title = "获取注册验证码", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Map<String,String>> registerCode(@Validated @RequestBody RegisterCode code){
boolean mobile = PhoneUtil.isMobile(code.getMobile());
if(!mobile){
return R.fail(600,"请输入正确的手机格式");
}
smsVerifyService.put(CodeEnum.REGISTER,code.getMobile());
return R.ok("发送成功");
}
@PostMapping("/resetPassword/code")
@Operation(summary = "获取重置密码验证码")
@Log(title = "获取重置密码验证码", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Map<String,String>> resetPasswordCode(@Validated @RequestBody RegisterCode code){
boolean mobile = PhoneUtil.isMobile(code.getMobile());
if(!mobile){
return R.fail(600,"请输入正确的手机格式");
}
smsVerifyService.put(CodeEnum.RESET_PASSWORD,code.getMobile());
return R.ok("发送成功");
}
@Autowired
private LoginAfterManager loginAfterManager;
@PostMapping("/login")
@Operation(summary = "登陆")
@Log(title = "登陆", businessType = BusinessType.OTHER, isSaveDb = false)
public R<LoginVo> login(@Validated @RequestBody LoginCaiUser loginBody){
LoginVo vo = new LoginVo();
String token = caiLoginManager.login(loginBody.getUsername(), loginBody.getPassword());
vo.setToken(token);
vo.setUserInfo(currentUserManager.currentInfo());
// 异步调用通知
// loginAfterManager.loginAfter(LoginHelper.getUserId());
return R.ok(vo);
}
@PostMapping("/resetPassword")
@Operation(summary = "重置密码")
@Log(title = "重置密码", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Boolean> resetPassword(@RequestBody ResetPasswordReq code){
caiLoginManager.resetPassword(code);
return R.ok(true);
}
}

View File

@@ -1,82 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.cai.domain.VipOrder;
import com.ruoyi.cai.dto.ConsumeResp;
import com.ruoyi.cai.dto.app.query.GiveGiftReq;
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
import com.ruoyi.cai.dto.app.query.order.AddRechargeOrderDto;
import com.ruoyi.cai.dto.app.query.order.AddVipOrderDto;
import com.ruoyi.cai.dto.app.vo.order.OrderCreateVo;
import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp;
import com.ruoyi.cai.dto.commom.consumer.GuardConsumerResp;
import com.ruoyi.cai.manager.ConsumerManager;
import com.ruoyi.cai.service.RechargeOrderService;
import com.ruoyi.cai.service.VipOrderService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/consume")
@Tag(name = "消费相关的接口")
public class ConsumeController {
@Autowired
private ConsumerManager consumerManager;
@Autowired
private RechargeOrderService rechargeOrderService;
@Autowired
private VipOrderService vipOrderService;
@PostMapping("/give/guard")
@Operation(summary = "赠送主播守护")
@Log(title = "赠送主播守护", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> giveGuard(@RequestBody GiveGuardReq query){
GuardConsumerResp resp = consumerManager.sendGuard(query);
return R.ok();
}
@PostMapping("/give/gift")
@Operation(summary = "赠送主播礼物")
@Log(title = "赠送主播礼物", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> giveGift(@RequestBody GiveGiftReq query){
GiftConsumerResp resp = consumerManager.sendGift(query);
return R.ok();
}
@PostMapping("/order/vip/create")
@Operation(summary = "创建VIP订单")
@Log(title = "创建VIP订单", businessType = BusinessType.OTHER, isSaveDb = true)
public R<OrderCreateVo> vipOrderCreate(@RequestBody AddVipOrderDto dto){
dto.setUserId(LoginHelper.getUserId());
VipOrder order = vipOrderService.addVipOrder(dto);
OrderCreateVo vo = new OrderCreateVo();
vo.setPrice(order.getPrice());
vo.setOrderNo(order.getOrderNo());
vo.setOrderName(order.getVipName());
return R.ok(vo);
}
@PostMapping("/order/recharge/create")
@Operation(summary = "创建充值订单")
@Log(title = "创建充值订单", businessType = BusinessType.OTHER, isSaveDb = true)
public R<OrderCreateVo> rechargeOrderCreate(@RequestBody AddRechargeOrderDto dto){
dto.setUserId(LoginHelper.getUserId());
RechargeOrder order = rechargeOrderService.addRechargeOrder(dto);
OrderCreateVo vo = new OrderCreateVo();
vo.setPrice(order.getPrice());
vo.setOrderNo(order.getOrderNo());
vo.setOrderName(order.getRechargeName());
return R.ok(vo);
}
}

View File

@@ -1,74 +0,0 @@
package com.ruoyi.cai.controller.app;
import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.cai.dto.FileResp;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.vo.SysOssVo;
import com.ruoyi.system.service.ISysOssService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@RestController
@RequestMapping("/api/file")
@Tag(name = "文件接口")
@Slf4j
public class FileController {
@Autowired
private ISysOssService iSysOssService;
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@Operation(summary = "上传文件",
parameters = {
@Parameter(name = "file", description = "文件", required = true),
@Parameter(name = "type", description = "业务类型dynamic=动态图片user=用户相册头像im=聊天common=其他", required = false)
})
public R<FileResp> upload(@RequestPart("file") MultipartFile file,
String type) {
log.error("上传文件图片类型 type={}",type);
if (ObjectUtil.isNull(file)) {
return R.fail("上传文件不能为空");
}
SysOssVo oss = iSysOssService.upload(file);
FileResp resp = new FileResp();
resp.setUrl(oss.getUrl());
resp.setPath(oss.getFileName());
resp.setOriginalName(oss.getOriginalName());
return R.ok(resp);
}
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
@PostMapping(value = "/uploadImage", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@Operation(summary = "上传图片类型的文件",
parameters = {
@Parameter(name = "file", description = "文件", required = true),
@Parameter(name = "type", description = "业务类型dynamic=动态图片user=用户相册头像im=聊天common=其他", required = false)
})
public R<FileResp> uploadImage(@RequestPart("file") MultipartFile file,
String type) {
log.error("上传文件图片类型 type={}",type);
if (ObjectUtil.isNull(file)) {
return R.fail("上传文件不能为空");
}
SysOssVo oss = iSysOssService.upload(file);
FileResp resp = new FileResp();
resp.setUrl(oss.getUrl());
resp.setPath(oss.getFileName());
resp.setOriginalName(oss.getOriginalName());
return R.ok(resp);
}
}

View File

@@ -1,34 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.ruoyi.cai.dto.app.dto.ImMessageDTO;
import com.ruoyi.cai.dto.app.vo.ImResp;
import com.ruoyi.cai.manager.ImService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/im")
@Tag(name = "IM相关的接口")
public class ImAppController {
@Autowired
private ImService imService;
@PostMapping("/send/message")
@Operation(summary = "发送消息")
@Log(title = "发送消息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<ImResp> sendMessage(@Validated @RequestBody ImMessageDTO imMessageDTO){
ImResp resp = imService.sendMessage(LoginHelper.getUserId(), imMessageDTO);
return R.ok(resp);
}
}

View File

@@ -1,129 +0,0 @@
package com.ruoyi.cai.controller.app;
import cn.dev33.satoken.annotation.SaIgnore;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Banner;
import com.ruoyi.cai.dto.app.query.index.AnchorListQuery;
import com.ruoyi.cai.dto.app.query.index.GreetQuery;
import com.ruoyi.cai.dto.app.query.index.UserQuery;
import com.ruoyi.cai.dto.app.vo.AnchorListVo;
import com.ruoyi.cai.dto.app.vo.IndexBannerVo;
import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import com.ruoyi.cai.dto.app.vo.setting.AppHomeConfig;
import com.ruoyi.cai.dto.app.vo.user.UserInfoVo;
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.HomeManager;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.BeanConvertUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/index")
@Tag(name = "首页展示相关接口")
public class IndexController {
@Autowired
private AnchorService anchorService;
@Autowired
private UserService userService;
@Autowired
private BannerService bannerService;
@Autowired
private GuardTotalService guardTotalService;
@Autowired
private UserGiftService userGiftService;
@Autowired
private HomeManager homeManager;
@Autowired
private SystemConfigManager systemConfigManager;
@GetMapping("/config")
@Operation(summary = "获取APP系统核心参数(无需鉴权可访问)")
@Log(title = "获取APP系统核心参数", businessType = BusinessType.OTHER, isSaveDb = false)
@SaIgnore
public R<AppHomeConfig> config(){
AppHomeConfig config = new AppHomeConfig();
config.setOssDomain(systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN));
return R.ok(config);
}
@GetMapping("/banner")
@Operation(summary = "获取首页banner图")
@Log(title = "获取首页banner图", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<IndexBannerVo>> banner(){
List<Banner> res = bannerService.index();
return R.ok(BeanConvertUtil.convertListTo(res, IndexBannerVo::new));
}
@GetMapping("/anchor/page")
@Operation(summary = "首页查询主播接口-分页")
@Log(title = "首页查询主播接口", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<AnchorListVo>> anchorPage(PageQuery page, AnchorListQuery query){
List<AnchorListVo> home = homeManager.getHomeCache(page, query);
return R.ok(home);
}
@GetMapping("/anchor/test/page")
@Operation(summary = "主播测试接口",hidden = true)
@Log(title = "主播测试接口", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<AnchorListVo>> anchorTestPage(PageQuery page, AnchorListQuery query){
Page<AnchorListVo> res = anchorService.pageApp(page,query);
return R.ok(res.getRecords());
}
@GetMapping("/user/page")
@Operation(summary = "首页用户搜索接口-分页")
@Log(title = "首页用户搜索接口-分页", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<UserListVo>> userPage(PageQuery page, UserQuery query){
Page<UserListVo> res = userService.pageApp(page,query);
return R.ok(res.getRecords());
}
@GetMapping("/user/greet/page")
@Operation(summary = "群打招呼界面-用户搜索接口")
@Log(title = "群打招呼界面-用户搜索接口", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<UserListVo>> greetQuery(PageQuery page, GreetQuery query){
Page<UserListVo> res = userService.greetPageApp(page,query);
return R.ok(res.getRecords());
}
@GetMapping("/home/info")
@Operation(summary = "获取指定用户主页信息")
@Log(title = "获取指定用户主页信息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<UserInfoVo> info(Long userId){
UserInfoVo res = userService.info(userId);
return R.ok(res);
}
@GetMapping("/userGuard/page")
@Operation(summary = "获取指定女神守护排行")
@Log(title = "获取指定女神守护排行", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<GuardListPageVo>> userGuardPage(PageQuery pageQuery,Long userId){
Page<GuardListPageVo> page = guardTotalService.userGuardPage(pageQuery, userId);
return R.ok(page.getRecords());
}
@GetMapping("/userGift/list")
@Operation(summary = "获取指定女神收到的礼物列表")
@Log(title = "获取指定女神收到的礼物列表", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<UserGiftIndexVo>> userGiftList(Long userId){
List<UserGiftIndexVo> res = userGiftService.selectGiftList(userId);
return R.ok(res);
}
}

View File

@@ -1,49 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.app.vo.invite.InviteHomeVo;
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.service.UserInviteService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/invite")
@Tag(name = "邀请相关接口")
public class InviteAppController {
@Autowired
private UserInviteService userInviteService;
@GetMapping("/home")
@Operation(summary = "邀请有奖页面")
@Log(title = "邀请有奖页面", businessType = BusinessType.OTHER, isSaveDb = false)
public R<InviteHomeVo> inviteHome(){
Long userId = LoginHelper.getUserId();
InviteHomeVo inviteHome = userInviteService.inviteHome(userId);
return R.ok(inviteHome);
}
@GetMapping("/user/page")
@Operation(summary = "我邀请的人")
@Log(title = "我邀请的人", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<UserListVo>> inviteUserPage(PageQuery pageQuery,String usercode){
Long userId = LoginHelper.getUserId();
Page<UserListVo> userPage = userInviteService.inviteUserPage(pageQuery,userId,usercode);
return R.ok(userPage.getRecords());
}
}

View File

@@ -1,47 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.ruoyi.cai.dto.app.query.UserReportReq;
import com.ruoyi.cai.dto.app.query.push.PushErrorReq;
import com.ruoyi.cai.service.ReportService;
import com.ruoyi.cai.service.UserErrorLogService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/other")
@Tag(name = "其他接口")
public class OtherController {
@Autowired
private ReportService reportService;
@Autowired
private UserErrorLogService userErrorLogService;
@PostMapping("/report")
@Operation(summary = "举报")
@Log(title = "举报", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> report(@RequestBody UserReportReq reportRes){
Long userId = LoginHelper.getUserId();
reportRes.setUserId(userId);
reportService.report(reportRes);
return R.ok();
}
@PostMapping("/pushError")
@Operation(summary = "上报异常行为(截屏,录屏)")
@Log(title = "上报异常行为(截屏,录屏)", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> pushError(@RequestBody PushErrorReq req){
req.setUserId(LoginHelper.getUserId());
userErrorLogService.pushError(req);
return R.ok();
}
}

View File

@@ -1,187 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.alibaba.fastjson2.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.internal.util.AlipaySignature;
import com.ijpay.alipay.AliPayApi;
import com.ijpay.alipay.AliPayApiConfigKit;
import com.ijpay.core.enums.SignType;
import com.ijpay.core.enums.TradeType;
import com.ijpay.core.kit.HttpKit;
import com.ijpay.core.kit.WxPayKit;
import com.ijpay.wxpay.WxPayApi;
import com.ijpay.wxpay.model.UnifiedOrderModel;
import com.ruoyi.cai.domain.PayConfig;
import com.ruoyi.cai.pay.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.ServletUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/api/pay")
@Tag(name = "支付相关的接口")
@Validated
@Slf4j
public class PayController {
@Autowired
private PayConfigManager payConfigManager;
@Autowired
private PayManager payManager;
@PostMapping(value = "/wx")
@Operation(summary = "微信支付")
@Log(title = "微信支付", businessType = BusinessType.OTHER, isSaveDb = true)
public R<PayReturnResp> appPay(@RequestBody PayControllerDTO dto) {
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo());
if(payOrderInfo == null){
return R.fail(600,"支付失败,未找到订单");
}
PayConfig payConfig = payConfigManager.getWxConfig();
if(payConfig == null){
log.error("支付失败,未找到可用的微信支付配置");
return R.fail(600,"支付失败,未找到可用的微信支付");
}
String ip = ServletUtils.getClientIP();
Map<String, String> params = UnifiedOrderModel
.builder()
.appid(dto.getWxAppId())
.mch_id(payConfig.getWxMcid())
.nonce_str(WxPayKit.generateStr())
.body(payOrderInfo.getBody())
.out_trade_no(WxPayKit.generateStr())
.total_fee(payOrderInfo.getPriceFenStr())
.spbill_create_ip(ip)
.notify_url(payConfig.getNotifyUrl())
.trade_type(TradeType.APP.getTradeType())
.build()
.createSign(payConfig.getWxKey(), SignType.HMACSHA256);
String xmlResult = WxPayApi.pushOrder(false, params);
log.info(xmlResult);
Map<String, String> result = WxPayKit.xmlToMap(xmlResult);
String returnCode = result.get("return_code");
String returnMsg = result.get("return_msg");
if (!WxPayKit.codeIsOk(returnCode)) {
log.error("微信支付失败 returnMsg={}",returnMsg);
return R.fail("微信支付失败,请联系客服");
}
String resultCode = result.get("result_code");
if (!WxPayKit.codeIsOk(resultCode)) {
log.error("微信支付失败 returnMsg={}",returnMsg);
return R.fail("微信支付失败,请联系客服");
}
// 以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回
String prepayId = result.get("prepay_id");
Map<String, String> packageParams = WxPayKit.appPrepayIdCreateSign(payConfig.getAppid(), payConfig.getWxMcid(), prepayId,
payConfig.getWxKey(), SignType.HMACSHA256);
String jsonStr = JSON.toJSONString(packageParams);
log.info("返回apk的参数:" + jsonStr);
PayReturnResp resp = new PayReturnResp();
resp.setData(jsonStr);
return R.ok(resp);
}
@PostMapping(value = "/ali")
@Operation(summary = "支付宝支付")
@Log(title = "支付宝支付", businessType = BusinessType.OTHER, isSaveDb = true)
public R<PayReturnResp> aliPay(@RequestBody PayControllerDTO dto) {
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo());
if(payOrderInfo == null){
return R.fail(600,"支付失败,未找到订单");
}
try {
boolean b = payConfigManager.initAliPay();
if(!b){
log.error("支付失败,未找到可用的支付宝配置");
return R.fail(600,"支付宝支付失败!请联系管理员");
}
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
model.setBody(payOrderInfo.getBody());
model.setSubject(payOrderInfo.getSubject());
model.setOutTradeNo(WxPayKit.generateStr());
model.setTimeoutExpress("30m");
model.setTotalAmount(payOrderInfo.getPrice().toString());
String notifyUrl = AliPayApiConfigKit.getAliPayApiConfig().getServiceUrl();
String orderInfo = AliPayApi.appPayToResponse(model, notifyUrl).getBody();
PayReturnResp resp = new PayReturnResp();
resp.setData(orderInfo);
return R.ok(resp);
} catch (AlipayApiException e) {
log.error("支付宝支付失败",e);
return R.fail("支付宝支付失败,请联系客服");
}
}
@PostMapping(value = "/wx/notify")
@Operation(hidden = true)
@Log(title = "微信回调", businessType = BusinessType.OTHER, isSaveDb = false)
public String payNotify(HttpServletRequest request) {
String xmlMsg = HttpKit.readData(request);
log.info("支付通知=" + xmlMsg);
Map<String, String> params = WxPayKit.xmlToMap(xmlMsg);
String returnCode = params.get("return_code");
String mchId = params.get("mch_id");
PayConfig payConfig = payConfigManager.getWxConfigByMchId(mchId);
if(payConfig == null){
log.error("未找到微信配置 mchId={}",mchId);
return null;
}
// 注意重复通知的情况,同一订单号可能收到多次通知,请注意一定先判断订单状态
// 注意此处签名方式需与统一下单的签名类型一致
if (WxPayKit.verifyNotify(params, payConfig.getWxKey(), SignType.HMACSHA256)) {
if (WxPayKit.codeIsOk(returnCode)) {
String outTradeNo = params.get("out_trade_no");
String transactionId = params.get("transaction_id");
// String appId = params.get("appid");
payManager.callBack(outTradeNo,transactionId,params,mchId, PayTypeEnum.WX);
Map<String, String> xml = new HashMap<>(2);
xml.put("return_code", "SUCCESS");
xml.put("return_msg", "OK");
return WxPayKit.toXml(xml);
}
}
return null;
}
@PostMapping(value = "/ali/notify")
@Operation(hidden = true)
@Log(title = "支付宝回调", businessType = BusinessType.OTHER, isSaveDb = false)
public String notifyUrl(HttpServletRequest request) {
try {
Map<String, String> params = AliPayApi.toMap(request);
log.info("支付宝回调信息:{}",JSON.toJSONString(params));
String appId = params.get("auth_app_id");
PayConfig aliConfig = payConfigManager.getAliConfigByAppId(appId);
boolean verifyResult = AlipaySignature.rsaCheckV1(params, aliConfig.getPublicKey(), "UTF-8", "RSA2");
if (verifyResult) {
String outTradeNo = params.get("out_trade_no");
String transactionId = params.get("trade_no");
payManager.callBack(outTradeNo,transactionId,params,appId, PayTypeEnum.ALI);
return "success";
} else {
log.error("notify_url 验证失败");
return "failure";
}
} catch (AlipayApiException e) {
e.printStackTrace();
return "failure";
}
}
}

View File

@@ -1,213 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.app.RankIdReq;
import com.ruoyi.cai.dto.app.vo.rank.RankRemark;
import com.ruoyi.cai.dto.app.vo.rank.RankNodeInvite;
import com.ruoyi.cai.dto.app.vo.rank.RankNodeLove;
import com.ruoyi.cai.enums.GenderEnum;
import com.ruoyi.cai.manager.AwardManager;
import com.ruoyi.cai.rank.RankManager;
import com.ruoyi.cai.rank.RankNode;
import com.ruoyi.cai.service.RankService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/api/rank")
@Tag(name = "排行榜接口")
public class RankAppController {
@Autowired
private RankManager rankManager;
@Autowired
private UserService userService;
@Autowired
private RankService rankService;
@Autowired
private AwardManager awardManager;
@GetMapping("/loveRemark")
@Operation(summary = "魅力榜榜单说明")
public R<RankRemark> loveRemark(){
String remark =
"(魅力上周榜排名奖励)\n" +
"第一名888元\n" +
"第二名588元\n" +
"第三名388元\n" +
"第四名288元\n" +
"第五名188元\n" +
"第六至十名138元\n" +
"(魅力昨日榜排名奖励)\n" +
"第一名138元\n" +
"第二名108元\n" +
"第三名88元\n" +
"第四名58元\n" +
"第五名38元\n" +
"第六至十名28元\n" +
"提示:凡是刷魅力榜的封号,平台拥有对本次活动的最终解释权。";
RankRemark res = new RankRemark();
res.setRemark(remark);
return R.ok(res);
}
@GetMapping("/inviteRemark")
@Operation(summary = "邀请榜榜单说明")
public R<RankRemark> inviteRemark(){
String remark =
"(邀请上周榜排名奖励)\n" +
"第一名888元\n" +
"第二名588元\n" +
"第三名388元\n" +
"第四名288元\n" +
"第五名188元\n" +
"第六至十名138元\n" +
"(邀请昨日榜排名奖励)\n" +
"第一名138元\n" +
"第二名108元\n" +
"第三名88元\n" +
"第四名58元\n" +
"第五名38元\n" +
"第六至十名28元\n" +
"提示:凡是刷邀请榜的封号,平台拥有对本次活动的最终解释权。";
RankRemark res = new RankRemark();
res.setRemark(remark);
return R.ok(res);
}
@PostMapping("/giveRank")
@Operation(summary = "领取榜单")
public R<Void> inviteRank(@RequestBody RankIdReq rankIdReq){
Long userId = LoginHelper.getUserId();
awardManager.giveRank(rankIdReq.getRankId(),userId);
return R.ok();
}
@GetMapping("/love")
@Operation(summary = "魅力榜")
public R<List<RankNodeLove>> loveRank(
@Parameter(description = "类型 1-上周 2-昨日 3-日榜 4-周榜 5-月榜 6-总榜") Integer type){
if(type == null){
return R.ok(Collections.emptyList());
}
List<RankNode> rankNodeList;
if(type == 1){
rankNodeList = rankService.getLoveRankLastWeek(10);
}else if(type == 2){
rankNodeList = rankService.getLoveRankLastDay(10);
}else if(type == 3){
rankNodeList = rankManager.getLoveRankToday(30);
}else if(type == 4){
rankNodeList = rankManager.getLoveRankWeek(30);
}else if(type == 5){
rankNodeList = rankManager.getLoveRankMonth(30);
}else if(type == 6){
rankNodeList = rankManager.getLoveRankTotal(30);
}else{
rankNodeList = Collections.emptyList();
}
if(rankNodeList.isEmpty()){
return R.ok(Collections.emptyList());
}
List<RankNodeLove> res = new ArrayList<>();
Set<Long> userIds = rankNodeList.stream().map(RankNode::getUserId).collect(Collectors.toSet());
List<User> userList = userService.listByIds(userIds);
Map<Long, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));
long lastLove = 0;
for (int i = 0; i < rankNodeList.size(); i++) {
RankNode rankNode = rankNodeList.get(i);
User user = userMap.get(rankNode.getUserId());
if(user == null){
continue;
}
RankNodeLove love = new RankNodeLove();
love.setUserId(user.getId());
love.setAvatar(user.getAvatar());
love.setNickname(user.getNickname());
love.setValue(rankNode.getScore());
love.setDraw(rankNode.getDraw() == null || rankNode.getDraw());
love.setRankId(rankNode.getRankId());
love.setHide(false);
if(i == 0){
love.setDiffLastValue(0L);
}else{
love.setDiffLastValue(lastLove - rankNode.getScore());
}
lastLove = rankNode.getScore();
res.add(love);
}
return R.ok(res);
}
@GetMapping("/invite")
@Operation(summary = "邀请榜")
public R<List<RankNodeInvite>> inviteRank(
@Parameter(description = "类型 1-上周 2-昨日 3-日榜 4-周榜 5-月榜 6-总榜") Integer type){
if(type == null){
return R.ok(Collections.emptyList());
}
List<RankNode> rankNodeList;
if(type == 1){
rankNodeList = rankService.getInviteRankLastWeek(10);
}else if(type == 2){
rankNodeList = rankService.getInviteRankLastDay(10);
}else if(type == 3){
rankNodeList = rankManager.getInviteRankToday(30);
}else if(type == 4){
rankNodeList = rankManager.getInviteRankWeek(30);
}else if(type == 5){
rankNodeList = rankManager.getInviteRankMonth(30);
}else if(type == 6){
rankNodeList = rankManager.getInviteRankTotal(30);
}else{
rankNodeList = Collections.emptyList();
}
if(rankNodeList.isEmpty()){
return R.ok(Collections.emptyList());
}
List<RankNodeInvite> res = new ArrayList<>();
Set<Long> userIds = rankNodeList.stream().map(RankNode::getUserId).collect(Collectors.toSet());
List<User> userList = userService.listByIds(userIds);
Map<Long, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));
long lastLove = 0;
for (int i = 0; i < rankNodeList.size(); i++) {
RankNode rankNode = rankNodeList.get(i);
User user = userMap.get(rankNode.getUserId());
if(user == null){
continue;
}
RankNodeInvite invite = new RankNodeInvite();
invite.setAvatar(GenderEnum.WOMEN.getDefaultAvatar());
invite.setNickname(minNickname(user.getNickname()));
invite.setValue(rankNode.getScore());
invite.setDraw(rankNode.getDraw() == null || rankNode.getDraw());
invite.setRankId(rankNode.getRankId());
if(i == 0){
invite.setDiffLastValue(0L);
}else{
invite.setDiffLastValue(lastLove - rankNode.getScore());
}
lastLove = rankNode.getScore();
res.add(invite);
}
return R.ok(res);
}
private static String minNickname(String nickname){
if(StringUtils.isEmpty(nickname)){
return "*";
}
return "*"+nickname.substring(nickname.length()-1);
}
}

View File

@@ -1,42 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.ruoyi.cai.chat.ChatManager;
import com.ruoyi.cai.dto.app.query.CallReq;
import com.ruoyi.cai.dto.app.vo.chat.CallResp;
import com.ruoyi.cai.dto.app.vo.chat.GetRoomResp;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
@RestController
@RequestMapping("/api/room")
@Tag(name = "直播相关接口")
@Validated
public class RoomController {
@Autowired
private ChatManager chatManager;
@PostMapping("/call")
@Operation(summary = "发起直播")
@Log(title = "发起直播", businessType = BusinessType.OTHER, isSaveDb = true)
public R<CallResp> call(@RequestBody CallReq req){
CallResp call = chatManager.call(req);
return R.ok(call);
}
@GetMapping("/getRoom")
@Operation(summary = "获取房间信息")
@Log(title = "获取房间信息", businessType = BusinessType.OTHER, isSaveDb = true)
public R<GetRoomResp> getRoom(@NotEmpty(message = "房间不存在") String roomId){
GetRoomResp room = chatManager.getRoom(roomId);
return R.ok(room);
}
}

View File

@@ -1,123 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.cai.domain.Gift;
import com.ruoyi.cai.domain.Goods;
import com.ruoyi.cai.domain.ReportCate;
import com.ruoyi.cai.domain.WithdrawExchange;
import com.ruoyi.cai.dto.app.vo.AgreementDTO;
import com.ruoyi.cai.dto.app.vo.GiftVo;
import com.ruoyi.cai.dto.app.vo.setting.SettingGoodsVo;
import com.ruoyi.cai.dto.app.vo.setting.WithdrawExchangeVo;
import com.ruoyi.cai.dto.commom.setting.CateSelectVo;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.enums.account.AccountCateEnum;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.BeanConvertUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/api/setting")
@Tag(name = "获取设置相关接口")
public class SettingAppController {
@Autowired
private GoodsService goodsService;
@Autowired
private WithdrawExchangeService withdrawExchangeService;
@Autowired
private ReportCateService reportCateService;
@Autowired
private GiftService giftService;
@Autowired
private AgreementSettingService agreementSettingService;
@Autowired
private SystemConfigManager systemConfigManager;
@GetMapping("/goods")
@Operation(summary = "充值配置")
@Log(title = "充值配置", businessType = BusinessType.OTHER, isSaveDb = false)
public R<SettingGoodsVo> goods(){
SettingGoodsVo vo = new SettingGoodsVo();
vo.setHasAlipayPay(systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.OPEN_ALI_PAY));
vo.setHasWechatPay(systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.OPEN_WX_PAY));
vo.setAlipayFirst(systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.ALI_PAY_FIRST));
List<Goods> list = goodsService.list(Wrappers.lambdaQuery(Goods.class)
.eq(Goods::getStatus,0)
.orderByAsc(Goods::getPrice));
vo.setGoods(list);
return R.ok(vo);
}
@GetMapping("/withdraw")
@Operation(summary = "提现配置")
@Log(title = "提现配置", businessType = BusinessType.OTHER, isSaveDb = false)
public R<WithdrawExchangeVo> withdraw(){
WithdrawExchangeVo vo = new WithdrawExchangeVo();
List<WithdrawExchange> list = withdrawExchangeService.list(Wrappers.lambdaQuery(WithdrawExchange.class)
.eq(WithdrawExchange::getStatus,0)
.orderByAsc(WithdrawExchange::getMoney));
vo.setWithdrawRuleRemark("平台50元起提现最快2小时到账每天不限次数22点后提现次日中午10点到账");
vo.setList(list);
return R.ok(vo);
}
@GetMapping("/report")
@Operation(summary = "举报分类配置")
@Log(title = "举报分类配置", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<ReportCate>> report(){
List<ReportCate> list = reportCateService.list(Wrappers.lambdaQuery(ReportCate.class));
return R.ok(list);
}
@GetMapping("/accountDetail/type")
@Operation(summary = "账户明细类型")
@Log(title = "账户明细类型", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<CateSelectVo>> accountDetailType(){
List<CateSelectVo> vo = new ArrayList<>();
AccountCateEnum[] values = AccountCateEnum.values();
vo.add(new CateSelectVo(0,"全部"));
for (AccountCateEnum value : values) {
vo.add(new CateSelectVo(value.getCode(),value.getText()));
}
return R.ok(vo);
}
@GetMapping("/gift")
@Operation(summary = "礼物配置")
@Log(title = "礼物配置", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<GiftVo>> gift(){
List<Gift> res = giftService.all();
return R.ok(BeanConvertUtil.convertListTo(res, GiftVo::new));
}
@GetMapping("/agreement/user")
@Operation(summary = "获取用户协议")
@Log(title = "获取用户协议", businessType = BusinessType.OTHER, isSaveDb = false)
public R<AgreementDTO> userAgreement() {
String userAgreement = agreementSettingService.getAgreementSetting().getUserAgreement();
return R.ok(new AgreementDTO(userAgreement));
}
@GetMapping("/agreement/anchorJoin")
@Operation(summary = "用户主播入驻协议")
@Log(title = "用户主播入驻协议", businessType = BusinessType.OTHER, isSaveDb = false)
public R<AgreementDTO> anchorJoinAgreement() {
String anchorJoinAgreement = agreementSettingService.getAgreementSetting().getAnchorJoinAgreement();
return R.ok(new AgreementDTO(anchorJoinAgreement));
}
}

View File

@@ -1,138 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.ruoyi.cai.dto.app.query.AlbumAddReq;
import com.ruoyi.cai.dto.app.query.AlbumResetReq;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.dto.app.query.UserUpdateReq;
import com.ruoyi.cai.dto.app.query.member.UpdateNoGreet;
import com.ruoyi.cai.dto.app.query.member.UpdateRankHideReq;
import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo;
import com.ruoyi.cai.dto.app.vo.user.CurrentUserUpdateInfoVo;
import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo;
import com.ruoyi.cai.manager.CurrentUserManager;
import com.ruoyi.cai.service.UserAlbumService;
import com.ruoyi.cai.service.UserMemberService;
import com.ruoyi.cai.service.UserOnlineService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
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.List;
@RestController
@RequestMapping("/api/user")
@Tag(name = "用户相关接口")
@Slf4j
public class UserAppController {
@Autowired
private CurrentUserManager currentUserManager;
@Autowired
private UserAlbumService userAlbumService;
@Autowired
private UserMemberService userMemberService;
@Autowired
private UserOnlineService userOnlineService;
@GetMapping("/active_update")
@Operation(summary = "更新用户在线状态")
@Log(title = "更新用户在线状态", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> activeUpdate(){
try {
userOnlineService.activeUpdate();
}catch (Exception e){
log.error("更新当前用户失败");
}
return R.ok();
}
@GetMapping("/info")
@Operation(summary = "当前用户信息")
@Log(title = "当前用户信息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<CurrentUserInfoVo> currentInfo(){
return R.ok(currentUserManager.currentInfo());
}
@GetMapping("/updateInfo")
@Operation(summary = "当前用户信息(用于编辑用户的时候查询,带审核数据)")
@Log(title = "当前用户信息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<CurrentUserUpdateInfoVo> currentUpdateInfo(){
return R.ok(currentUserManager.currentUpdateInfo());
}
@GetMapping("/member")
@Operation(summary = "当前会员信息")
@Log(title = "当前会员信息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<MemberInfoVo> member(@Parameter(description = "类型 0-普通会员 1-超级会员") Integer type){
Long userId = LoginHelper.getUserId();
if(type == null){
type = 0;
}else if(type != 0 && type != 1){
type = 0;
}
return R.ok(userMemberService.memberApp(userId,type));
}
@PostMapping("/updateRankHide")
@Operation(summary = "修改排行榜隐藏状态")
@Log(title = "修改排行榜隐藏状态", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> updateRankHide(@RequestBody UpdateRankHideReq updateRankHideReq){
updateRankHideReq.setUserId(LoginHelper.getUserId());
userMemberService.updateRankHide(updateRankHideReq);
return R.ok();
}
@PostMapping("/updateNoGreet")
@Operation(summary = "修改隐藏模式状态")
@Log(title = "修改排行榜隐藏状态", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> updateNoGreet(@RequestBody UpdateNoGreet updateNoGreet){
updateNoGreet.setUserId(LoginHelper.getUserId());
userMemberService.updateNoGreet(updateNoGreet);
return R.ok();
}
/*@PostMapping("/update/one")
@Operation(summary = "完善用户必填信息")
@Log(title = "完善用户必填信息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Boolean> finishUser(@Validated @RequestBody FinishUserUpdateReq res){
return R.ok(currentUserManager.finishUser(res));
}*/
@PostMapping("/update")
@Operation(summary = "修改当前用户信息")
@Log(title = "修改当前用户信息", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> userUpdate(@Validated @RequestBody UserUpdateReq res){
currentUserManager.userUpdate(res);
return R.ok();
}
@PostMapping("/album/del")
@Operation(summary = "删除相册")
@Log(title = "删除相册", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> userAlbumDel(@RequestBody IdRes res){
return R.ok(userAlbumService.removeAlbum(res.getId()));
}
@PostMapping("/album/add")
@Operation(summary = "新增相册")
@Log(title = "新增相册", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> userAlbumAdd(@RequestBody AlbumAddReq res){
res.setUserId(LoginHelper.getUserId());
return R.ok(userAlbumService.addAlbum(res));
}
/*@PostMapping("/album/reset")
@Operation(summary = "重排序相册",hidden = true)
@Log(title = "重排序相册", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Boolean> userAlbumAdd(@RequestBody List<AlbumResetReq> res){
return R.ok(userAlbumService.resetAlbum(res,LoginHelper.getUserId()));
}
*/
}

View File

@@ -1,44 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.app.query.BlackQuery;
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
import com.ruoyi.cai.service.UserBlacklistService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/user/black")
@Tag(name = "用户黑名单接口")
public class UserBlackAppController {
@Autowired
private UserBlacklistService userBlacklistService;
@GetMapping("page")
@Operation(summary = "用户黑名单查询")
@Log(title = "用户黑名单查询", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<UserListVo>> page(PageQuery pageQuery){
Page<UserListVo> page = userBlacklistService.pageApp(pageQuery, LoginHelper.getUserId());
return R.ok(page.getRecords());
}
@PostMapping("black")
@Operation(summary = "拉黑操作")
@Log(title = "拉黑操作", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> black(@RequestBody BlackQuery query){
Long userId = LoginHelper.getUserId();
boolean b = userBlacklistService.black(userId,query.getBlackUserId(),query.getActionType());
return R.ok(b);
}
}

View File

@@ -1,55 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.app.query.DynamicAddReq;
import com.ruoyi.cai.dto.app.query.DynamicQuery;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
import com.ruoyi.cai.service.DynamicService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/dynamic")
@Tag(name = "广场动态相关接口")
public class UserDynamicAppController {
@Autowired
private DynamicService dynamicService;
@GetMapping("/page")
@Operation(summary = "动态查询动态")
@Log(title = "动态查询动态", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<DynamicListVo>> page(PageQuery pageQuery, DynamicQuery query){
query.setCurrentUserId(LoginHelper.getUserId());
Page<DynamicListVo> resp = dynamicService.pageApp(pageQuery,query);
return R.ok(resp.getRecords());
}
@PostMapping("/push")
@Operation(summary = "发布动态")
@Log(title = "发布动态", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> push(@RequestBody DynamicAddReq res){
res.setUserId(LoginHelper.getUserId());
dynamicService.saveDynamic(res);
return R.ok();
}
@PostMapping("/delete")
@Operation(summary = "删除动态")
@Log(title = "删除动态", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> delete(@RequestBody IdRes res){
dynamicService.deleteDynamic(res.getId());
return R.ok();
}
}

View File

@@ -1,78 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserGreet;
import com.ruoyi.cai.dto.app.query.IdRes;
import com.ruoyi.cai.dto.app.query.user.UserGreetAddReq;
import com.ruoyi.cai.dto.app.vo.user.UserGreetListVo;
import com.ruoyi.cai.dto.app.vo.user.UserGreetVo;
import com.ruoyi.cai.service.UserGreetService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.BeanConvertUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/user/greet")
@Tag(name = "群打招呼相关接口")
public class UserGreetAppController {
@Autowired
private UserGreetService userGreetService;
@Autowired
private UserService userService;
@GetMapping("/list")
@Operation(summary = "获取当前用户打招呼列表")
@Log(title = "获取当前用户打招呼列表", businessType = BusinessType.OTHER, isSaveDb = false)
public R<UserGreetVo> list(){
Long userId = LoginHelper.getUserId();
User user = userService.getById(userId);
if(user == null || user.getIsAnchor() == 0){
return R.fail(600, "您不是女神,无法群打招呼,快去申请吧!");
}
UserGreetVo vo = new UserGreetVo();
List<UserGreet> userGreet = userGreetService.listByUserId(userId);
List<UserGreetListVo> list = BeanConvertUtil.convertListTo(userGreet, UserGreetListVo::new);
vo.setList(list);
vo.setCount(20);
vo.setAllowSend(true);
return R.ok(vo);
}
@PostMapping("/add")
@Operation(summary = "新增群打招呼")
@Log(title = "新增群打招呼", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> add(@Validated @RequestBody UserGreetAddReq req){
req.setUserId(LoginHelper.getUserId());
userGreetService.addUserGreet(req);
return R.ok();
}
@PostMapping("/delete")
@Operation(summary = "删除群打招呼")
@Log(title = "删除群打招呼", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> add(@RequestBody IdRes req){
userGreetService.removeById(req.getId());
return R.ok();
}
@PostMapping("/send")
@Operation(summary = "群打招呼")
@Log(title = "群打招呼", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> send(@RequestBody IdRes req){
userGreetService.batchSend(req.getId(),LoginHelper.getUserId());
return R.ok();
}
}

View File

@@ -1,53 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.app.query.StarOrVisitorReq;
import com.ruoyi.cai.dto.app.query.StarQuery;
import com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList;
import com.ruoyi.cai.service.UserFollowService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/user/star")
@Tag(name = "关注相关接口")
public class UserStartAppController {
@Autowired
private UserFollowService userFollowService;
@PostMapping("/star")
@Operation(summary = "关注用户")
@Log(title = "关注用户", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> star(@Validated @RequestBody StarOrVisitorReq starOrVisitorReq){
userFollowService.star(starOrVisitorReq);
return R.ok();
}
@PostMapping("/unstar")
@Operation(summary = "取消关注用户")
@Log(title = "取消关注用户", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Void> unStar(@Validated @RequestBody StarOrVisitorReq starOrVisitorReq){
userFollowService.unStar(starOrVisitorReq);
return R.ok();
}
@GetMapping("/page")
@Operation(summary = "关注、粉丝列表查询")
@Log(title = "粉丝列表查询", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<UserStarOrVisitorList>> page(StarQuery query, PageQuery pageQuery){
Page<UserStarOrVisitorList> res = userFollowService.pageApp(pageQuery,query);
return R.ok(res.getRecords());
}
}

View File

@@ -1,51 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.app.query.StarOrVisitorReq;
import com.ruoyi.cai.dto.app.query.VisitorQuery;
import com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList;
import com.ruoyi.cai.service.UserVisitorService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/user/visitor")
@Slf4j
@Tag(name = "访问记录相关接口")
public class UserVisitorAppController {
@Autowired
private UserVisitorService userVisitorService;
// 除网络问题不返回异常。避免影响业务
@PostMapping("/visitor")
@Operation(summary = "新增浏览记录")
@Log(title = "新增浏览记录", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Boolean> visitor(@RequestBody StarOrVisitorReq starOrVisitorReq){
try {
boolean bool = userVisitorService.visitor(starOrVisitorReq);
}catch (Exception e){
log.error("记录访客失败",e);
}
return R.ok(true);
}
@GetMapping("/page")
@Operation(summary = "我的浏览记录、访客查询-分页")
@Log(title = "我的浏览记录、访客查询-分页", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<UserStarOrVisitorList>> page(VisitorQuery query, PageQuery pageQuery){
Page<UserStarOrVisitorList> res = userVisitorService.pageApp(pageQuery,query);
return R.ok(res.getRecords());
}
}

View File

@@ -1,113 +0,0 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AccountBankcard;
import com.ruoyi.cai.domain.AccountCash;
import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.cai.dto.app.query.AccountAliBankCardRes;
import com.ruoyi.cai.dto.app.query.WithdrawReq;
import com.ruoyi.cai.dto.app.vo.AccountCashVo;
import com.ruoyi.cai.dto.app.vo.RechargeOrderVo;
import com.ruoyi.cai.dto.app.vo.account.AccountDetailsAppVo;
import com.ruoyi.cai.dto.app.vo.user.UserAccountVo;
import com.ruoyi.cai.manager.CurrentUserManager;
import com.ruoyi.cai.pay.PayStatusEnum;
import com.ruoyi.cai.service.AccountCashService;
import com.ruoyi.cai.service.AccountChangeLogService;
import com.ruoyi.cai.service.RechargeOrderService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.BeanConvertUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/wallet")
@Tag(name = "钱包操作相关的接口")
public class WalletController {
@Autowired
private CurrentUserManager currentUserManager;
@Autowired
private AccountCashService accountCashService;
@Autowired
private RechargeOrderService rechargeOrderService;
@Autowired
private AccountChangeLogService accountChangeLogService;
@GetMapping("/account")
@Operation(summary = "快速获取当前用户账号余额信息")
@Log(title = "快速获取当前用户账号余额信息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<UserAccountVo> currentAccount(){
return R.ok(currentUserManager.currentAccount());
}
@GetMapping("/accountDetail/page")
@Operation(summary = "账户明细-分页")
@Log(title = "账户明细", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<AccountDetailsAppVo>> accountDetail(PageQuery query,
@Parameter(description = "类型(接口在 设置相关接口-账户明细类型)") Integer cateId){
Long userId = LoginHelper.getUserId();
List<AccountDetailsAppVo> res = accountChangeLogService.pageApp(query,cateId,userId);
return R.ok(res);
}
@GetMapping("/aliInfo")
@Operation(summary = "获取绑定支付宝信息")
@Log(title = "获取绑定支付宝信息", businessType = BusinessType.OTHER, isSaveDb = false)
public R<AccountBankcard> aliInfo(){
AccountBankcard accountBankcard = currentUserManager.aliInfo();
return R.ok(accountBankcard);
}
@PostMapping("/save-or-update/ali")
@Operation(summary = "支付宝信息的新增和修改")
@Log(title = "支付宝信息的新增和修改", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> updateAli(@RequestBody AccountAliBankCardRes res){
currentUserManager.saveOrUpdateAliInfo(res);
return R.ok(true);
}
@PostMapping("/withdraw/ali")
@Operation(summary = "支付宝提现接口")
@Log(title = "支付宝提现接口", businessType = BusinessType.OTHER, isSaveDb = true)
public R<Boolean> withdraw(@RequestBody WithdrawReq res){
res.setUserId(LoginHelper.getUserId());
accountCashService.withdraw(res);
return R.ok(true);
}
@GetMapping("/recharge/log")
@Operation(summary = "充值记录-分页")
@Log(title = "充值记录", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<RechargeOrderVo>> rechargeLog(PageQuery query){
Long userId = LoginHelper.getUserId();
Page<RechargeOrder> page = rechargeOrderService.page(query.build(), Wrappers.lambdaQuery(RechargeOrder.class)
.eq(RechargeOrder::getUserId, userId)
.eq(RechargeOrder::getAdmin,false)
.eq(RechargeOrder::getPayStatus, PayStatusEnum.PAY.getCode())
.orderByDesc(RechargeOrder::getCreateTime));
return R.ok(BeanConvertUtil.convertListTo(page.getRecords(),RechargeOrderVo::new));
}
@GetMapping("/cash/log")
@Operation(summary = "提现记录-分页")
@Log(title = "提现记录", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<AccountCashVo>> cashLog(PageQuery query){
Long userId = LoginHelper.getUserId();
Page<AccountCash> page = accountCashService.page(query.build(), Wrappers.lambdaQuery(AccountCash.class)
.eq(AccountCash::getUserId, userId)
.orderByDesc(AccountCash::getCreateTime));
return R.ok(BeanConvertUtil.convertListTo(page.getRecords(),AccountCashVo::new));
}
}

View File

@@ -1,55 +0,0 @@
package com.ruoyi.cai.controller.test;
import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.cai.domain.VipOrder;
import com.ruoyi.cai.dto.app.query.order.AddRechargeOrderDto;
import com.ruoyi.cai.dto.app.query.order.AddVipOrderDto;
import com.ruoyi.cai.pay.PayManager;
import com.ruoyi.cai.service.RechargeOrderService;
import com.ruoyi.cai.service.VipOrderService;
import com.ruoyi.common.core.domain.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/test/pay")
@Tag(name = "测试接口,正式环境取消")
public class TestPayController {
@Autowired
private VipOrderService vipOrderService;
@Autowired
private RechargeOrderService rechargeOrderService;
@Autowired
private PayManager payManager;
@GetMapping("/vip")
@Operation(hidden = true)
public R<Void> vip(Long memberPriceId, Long userId){
AddVipOrderDto addVipOrderDto = new AddVipOrderDto();
addVipOrderDto.setUserId(userId);
addVipOrderDto.setMemberPriceId(memberPriceId);
VipOrder vipOrder = vipOrderService.addVipOrder(addVipOrderDto);
payManager.callBack(vipOrder.getOrderNo());
return R.ok();
}
@GetMapping("/recharge")
@Operation(hidden = true)
public R<Void> recharge(Long goodId, Long userId){
AddRechargeOrderDto dto = new AddRechargeOrderDto();
dto.setUserId(userId);
dto.setGoodId(goodId);
RechargeOrder order = rechargeOrderService.addRechargeOrder(dto);
payManager.callBack(order.getOrderNo());
return R.ok();
}
}

View File

@@ -3,7 +3,7 @@ package com.ruoyi.cai.manager;
import com.ruoyi.cai.constant.RedisHttpConstant;
import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.cai.ws.util.MapGetUtil;
import com.ruoyi.common.utils.MapGetUtil;
import org.redisson.api.RMap;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -13,7 +13,7 @@ import com.ruoyi.cai.ws.bean.UserData;
import com.ruoyi.cai.ws.cache.*;
import com.ruoyi.cai.ws.constant.HangUpEnums;
import com.ruoyi.cai.ws.constant.RoomStatusEnums;
import com.ruoyi.cai.ws.util.MapGetUtil;
import com.ruoyi.common.utils.MapGetUtil;
import com.ruoyi.cai.ws.util.WebSocketUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,51 +0,0 @@
package com.ruoyi.cai.ws.util;
import java.math.BigDecimal;
public class MapGetUtil {
public static Long getLong(Object obj){
return getLong(obj,null);
}
public static Long getLong(Object obj, Long defaultValue){
if(obj == null){
return defaultValue;
}
return Long.valueOf(obj.toString());
}
public static String getString(Object obj){
if(obj == null){
return null;
}
return String.valueOf(obj);
}
public static Integer getInt(Object obj){
if(obj == null){
return null;
}
return Integer.valueOf(obj.toString());
}
public static BigDecimal getBigDecimal(Object obj){
if(obj == null){
return null;
}
return new BigDecimal(obj.toString());
}
public static Boolean getBoolean(Object obj) {
if(obj == null){
return null;
}
if(obj instanceof Boolean){
return (Boolean)obj;
}
String str = String.valueOf(obj);
return str.equals("true");
}
}