init
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,157 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.web.controller.cai.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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.ruoyi.web.controller.cai.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("发送成功");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.ruoyi.web.controller.cai.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()));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.ruoyi.web.controller.cai.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());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
package com.ruoyi.web.controller.cai.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";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,213 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.ruoyi.web.controller.cai.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()));
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.ruoyi.web.controller.cai.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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.web.controller.cai.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());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.ruoyi.web.controller.cai.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());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.ruoyi.web.controller.cai.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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.ruoyi.web.controller.cai.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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user