Initial commit

This commit is contained in:
2026-04-23 16:58:11 +08:00
commit 267eba1eca
2582 changed files with 273338 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ruoyi</groupId>
<artifactId>skins-service</artifactId>
<version>4.8.2</version>
</parent>
<artifactId>service-admin</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-quartz</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,26 @@
package com.ruoyi.admin.cahe;
import com.ruoyi.admin.model.BoxMockCache;
import com.ruoyi.common.core.redis.RedisCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class BoxMockCacheRepository {
private static final String BOX_MOCK_CACHE_KEY = "ruoyi:box:mock:";
@Autowired
private RedisCache redisCache;
//将用户的临时爆率存储在redis中存储七天
public void setMockResultCache(Integer uid, BoxMockCache value) {
redisCache.setCacheObject(BOX_MOCK_CACHE_KEY + uid, value, 7, TimeUnit.DAYS);
}
//根据用户的id从redis中取出用户的临时爆率
public BoxMockCache getMockResultCache(Integer uid) {
return redisCache.getCacheObject(BOX_MOCK_CACHE_KEY + uid);
}
}

View File

@@ -0,0 +1,51 @@
package com.ruoyi.admin.config;
public class RedisConstants {
// 整个应用的通用uid锁
public static final String COMMON_LOCK = "ruoyi:common:lock_";
public static final String SUGAR_GAME_CACHE = "ruoyi:sugar:";
public static final String SUGAR_GAME_MOCK_QUEUE = "ruoyi:sugar:mock:";
public static final String SUGAR_GAME_USER_RECORD_CACHE = "ruoyi:sugar:user:record:";
public static final String SUGAR_GAME_CONFIG_CACHE = "ruoyi:sugar:config";
public static final String SUGAR_GAME_REWARD_POOL_CACHE = "ruoyi:sugar:reward:pool";
public static final String WHEEL_GAME_REWARD_POOL_CACHE = "ruoyi:wheel:reward:pool";
/**
* 开箱奖池
* 奖池key baseKey:boxId:poolType
*
* @see com.ruoyi.admin.enums.BoxPoolType
*/
public static final String BASE_POOL_KEY = "prize_pool:";
// 对战模式
public static final String JOIN_FIGHT_LOCK = "join_fight:lock_";
public static final String JOIN_FIGHT_BEGIN_LOCK = "join_fight:lock_begin";
public static final String JOIN_FIGHT_SEAT_READY_LOCK = "join_fight:lock_seat_ready_";
public static final String JOIN_FIGHT_END_LOCK = "join_fight:lock_end";
// roll房间
public static final String JOIN_ROLL_LOCK = "join_roll:lock_";
public static final String RECEIVE_RED_PACKET_LOCK = "receive_red_packet:lock_";
public static final String CARD_PAY_LOCK = "CARD_PAY:lock_";
// 幸运升级
public static final String UPGRADE_RANGE = "upgrade_range:"; // 概率区间 '业务key:饰品id:用户类型'
public static final String UPGRADE_RANGE_FIXED = "upgrade_range_fixed:"; // 固定概率 '业务key:饰品id:用户类型'
/**
* 抽奖box的奖品空间
* open_box_goods_apace:
* box_id:
* odds_key:
* valua
*/
public static final String OPEN_BOX_GOODS_SPACE = "open_box_goods_apace:";
public static final String OPEN_BOX_LOTTERY = "open_box_lottery:";
}

View File

@@ -0,0 +1,48 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtOrnamentService;
import com.ruoyi.domain.entity.TtOrnament;
import com.ruoyi.admin.service.ShoppingService;
import com.ruoyi.domain.other.ShoppingBody;
import com.ruoyi.domain.vo.ShoppingDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
@Api(tags = "管理端 商城管理")
@RestController
@RequestMapping("/admin/shopping")
public class ShoppingController extends BaseController {
private final ShoppingService shoppingService;
private final TtOrnamentService ornamentsService;
public ShoppingController(ShoppingService shoppingService,
TtOrnamentService ornamentsService) {
this.shoppingService = shoppingService;
this.ornamentsService = ornamentsService;
}
@ApiOperation("商品列表")
@GetMapping("/list")
public PageDataInfo<ShoppingDataVO> list(ShoppingBody shoppingBody) {
startPage();
return shoppingService.list(shoppingBody);
}
@PostMapping("/batchPutAwayOrSoldOut/{status}")
public R<Boolean> batchPutAwayOrSoldOut(@RequestBody List<TtOrnament> ornamentsList,
@PathVariable("status") String status) {
if (StringUtils.isNull(ornamentsList) || ornamentsList.isEmpty()) return R.fail();
ornamentsList = ornamentsList.stream().peek(ttOrnaments -> ttOrnaments.setIsPutaway(status)).collect(Collectors.toList());
if (ornamentsService.updateBatchById(ornamentsList, 1)) return R.ok(true);
return R.fail(false);
}
}

View File

@@ -0,0 +1,58 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtAdvertisementService;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.domain.other.TtAdvertisement;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/advertisement")
public class TtAdvertisementController extends BaseController {
private final TtAdvertisementService ttAdvertisementService;
public TtAdvertisementController(TtAdvertisementService ttAdvertisementService) {
this.ttAdvertisementService = ttAdvertisementService;
}
@GetMapping("/list")
public PageDataInfo<TtAdvertisement> list() {
startPage();
List<TtAdvertisement> list = ttAdvertisementService.list();
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtAdvertisement> getInfo(@PathVariable("id") Integer id) {
TtAdvertisement ttAdvertisement = ttAdvertisementService.getById(id);
// ttBanner.setPicture("");
return R.ok(ttAdvertisement);
}
@PostMapping
public AjaxResult add(@RequestBody TtAdvertisement ttAdvertisement) {
if (StringUtils.isEmpty(ttAdvertisement.getPicture())) ttAdvertisement.setPicture("");
else ttAdvertisement.setPicture(RuoYiConfig.getDomainName() + ttAdvertisement.getPicture());
return toAjax(ttAdvertisementService.save(ttAdvertisement));
}
@PutMapping
public AjaxResult edit(@RequestBody TtAdvertisement ttAdvertisement) {
String msg = ttAdvertisementService.updatePicById(ttAdvertisement);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(ttAdvertisementService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,71 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtAnnouncementService;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.domain.other.TtAnnouncement;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@RestController
@RequestMapping("/admin/announcement")
public class TtAnnouncementController extends BaseController {
@Autowired
private TtAnnouncementService ttAnnouncementService;
/**
* 获取公告列表
*/
@GetMapping("/list")
public PageDataInfo<TtAnnouncement> list() {
startPage();
List<TtAnnouncement> announcementList = ttAnnouncementService.getAnnouncementList();
return getPageData(announcementList);
}
/**
* 获取公告详情
*/
@GetMapping("/{announcementId}")
public AjaxResult getAnnouncementByAnnouncementId(@PathVariable Integer announcementId) {
Long userId = SecurityUtils.getUserId();
TtAnnouncement ttAnnouncement = ttAnnouncementService.getAnnouncementByAnnouncementId(userId, announcementId);
return AjaxResult.success(ttAnnouncement);
}
/**
* 新增公告
*/
@PostMapping
public AjaxResult addAnnouncement(@RequestBody TtAnnouncement ttAnnouncement) {
return ttAnnouncementService.addAnnouncement(ttAnnouncement) > 0 ? AjaxResult.success("新增成功") : AjaxResult.error("新增失败");
}
/**
* 修改公告
*/
@PutMapping
public AjaxResult editAnnouncement(@RequestBody TtAnnouncement ttAnnouncement) {
return ttAnnouncementService.editAnnouncement(ttAnnouncement) > 0 ? AjaxResult.success("修改成功") : AjaxResult.error("修改失败");
}
/**
* 删除公告
*/
@DeleteMapping("/{announcementId}")
public AjaxResult removeAnnouncementByAnnouncementId(@PathVariable Integer announcementId) {
return ttAnnouncementService.removeAnnouncementByAnnouncementId(announcementId) > 0 ? AjaxResult.success("删除成功") : AjaxResult.error("删除失败");
}
}

View File

@@ -0,0 +1,57 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtBanner;
import com.ruoyi.admin.service.TtBannerService;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/banner")
public class TtBannerController extends BaseController {
private final TtBannerService bannerService;
public TtBannerController(TtBannerService bannerService) {
this.bannerService = bannerService;
}
@GetMapping("/list")
public PageDataInfo<TtBanner> list() {
startPage();
List<TtBanner> list = bannerService.list();
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtBanner> getInfo(@PathVariable("id") Integer id) {
TtBanner ttBanner = bannerService.getById(id);
// ttBanner.setPicture("");
return R.ok(ttBanner);
}
@PostMapping
public AjaxResult add(@RequestBody TtBanner ttBanner) {
if (StringUtils.isEmpty(ttBanner.getPicture())) ttBanner.setPicture("");
else ttBanner.setPicture(RuoYiConfig.getDomainName() + ttBanner.getPicture());
return toAjax(bannerService.save(ttBanner));
}
@PutMapping
public AjaxResult edit(@RequestBody TtBanner ttBanner) {
String msg = bannerService.updateBannerById(ttBanner);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(bannerService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.domain.other.TtBonus;
import com.ruoyi.admin.service.TtBonusService;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/bonus")
public class TtBonusController extends BaseController {
private final TtBonusService bonusService;
public TtBonusController(TtBonusService bonusService) {
this.bonusService = bonusService;
}
@GetMapping("/list")
public PageDataInfo<TtBonus> list(String type){
startPage();
LambdaQueryWrapper<TtBonus> wrapper = Wrappers.lambdaQuery();
if (StringUtils.isNotEmpty(type)) wrapper.eq(TtBonus::getType, type);
List<TtBonus> list = bonusService.list(wrapper);
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtBonus> getInfo(@PathVariable("id") Integer id) {
TtBonus bonus = bonusService.getById(id);
bonus.setCoverPicture("");
return R.ok(bonus);
}
@PostMapping
public AjaxResult add(@RequestBody TtBonus ttBonus) {
if (StringUtils.isEmpty(ttBonus.getCoverPicture())) ttBonus.setCoverPicture("");
else ttBonus.setCoverPicture(RuoYiConfig.getDomainName() + ttBonus.getCoverPicture());
ttBonus.setCreateBy(getUsername());
ttBonus.setCreateTime(DateUtils.getNowDate());
return toAjax(bonusService.save(ttBonus));
}
@PutMapping
public AjaxResult edit(@RequestBody TtBonus ttBonus) {
ttBonus.setUpdateBy(getUsername());
ttBonus.setUpdateTime(DateUtils.getNowDate());
String msg = bonusService.updateBonusById(ttBonus);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(bonusService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,147 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.domain.body.BoxMockRequest;
import com.ruoyi.admin.model.BoxMockCache;
import com.ruoyi.admin.service.BoxMockService;
import com.ruoyi.admin.service.TtBoxService;
import com.ruoyi.admin.util.core.fight.LotteryMachine;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.other.TtBox;
import com.ruoyi.domain.other.TtBoxBody;
import com.ruoyi.domain.vo.BoxCacheDataVO;
import com.ruoyi.domain.vo.TtBoxDataVO;
import com.ruoyi.domain.vo.box.TtBoxUserVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Api(tags = "管理端 宝箱管理")
@RestController
@RequestMapping("/admin/box")
public class TtBoxController extends BaseController {
@Autowired
private TtBoxService boxService;
@Autowired
private LotteryMachine lotteryMachine;
@Autowired
private BoxMockService boxMockService;
@GetMapping("/test")
public AjaxResult test() {
return success();
}
@ApiOperation("获取宝箱列表")
@GetMapping("/list")
public PageDataInfo<TtBoxDataVO> list(TtBoxBody ttBoxBody) {
startPage();
return boxService.selectTtBoxList(ttBoxBody);
}
@GetMapping(value = "/{boxId}")
public R<TtBox> getInfo(@PathVariable("boxId") Long boxId) {
TtBox ttBox = boxService.getById(boxId);
return R.ok(ttBox);
}
@PostMapping
public AjaxResult add(@RequestBody TtBox ttBox) {
ttBox.setCreateBy(getUsername());
ttBox.setCreateTime(DateUtils.getNowDate());
return toAjax(boxService.save(ttBox));
}
@ApiOperation("修改宝箱")
@PutMapping
public AjaxResult edit(@RequestBody TtBoxDataVO ttBoxDataVO) {
String msg = boxService.updateTtBoxById(ttBoxDataVO);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@ApiOperation("清空当前奖池")
@GetMapping("clearPrizePool/{boxId}")
public R clearPrizePool(@PathVariable("boxId") Integer boxId) {
lotteryMachine.clearBoxPrizePool(boxId);
return R.ok("清空当前奖池成功。");
}
@DeleteMapping("/{boxIds}")
public AjaxResult remove(@PathVariable Long[] boxIds) {
return toAjax(boxService.removeByIds(Arrays.asList(boxIds)));
}
@GetMapping("/resetBox/{boxId}")
public AjaxResult resetBox(@PathVariable Integer boxId) {
boxService.isReplenishment(boxId);
return AjaxResult.success();
}
@GetMapping("/statisticsBoxData/{boxId}")
public R<BoxCacheDataVO> statisticsBoxData(@PathVariable Integer boxId, @RequestParam(required = false) Date date) {
BoxCacheDataVO boxCacheData = boxService.statisticsBoxData(boxId, date);
return R.ok(boxCacheData);
}
@ApiOperation("添加宝箱三级爆率玩家范围")
@PostMapping("/createTtBoxThirdExplosiveUsers")
public AjaxResult createTtBoxThirdExplosiveUsers(@RequestBody TtBoxUserVO ttBoxUserVO) {
String msg = boxService.createTtBoxThirdExplosiveUsers(ttBoxUserVO);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@ApiOperation("查询宝箱三级爆率玩家范围")
@GetMapping("/queryTtBoxThirdExplosiveUsers/{boxId}")
public AjaxResult queryBoxUsers(@PathVariable Integer boxId) {
return boxService.queryTtBoxThirdExplosiveUsers(boxId);
}
@ApiOperation("删除宝箱三级爆率玩家范围")
@PostMapping("/deleteTtBoxThirdExplosiveUsers")
public AjaxResult deleteTtBoxThirdExplosiveUsers(@RequestBody TtBoxUserVO ttBoxUserVO) {
return boxService.deleteTtBoxThirdExplosiveUsers(ttBoxUserVO);
}
@PostMapping("/export")
public void export(HttpServletResponse response, TtBoxBody ttBoxBody) {
var list = boxService.selectTtBoxList(ttBoxBody);
ExcelUtil<TtBoxDataVO> util = new ExcelUtil<>(TtBoxDataVO.class);
util.exportExcel(response, list.getRows(), "宝箱列表");
}
@ApiOperation("查询开箱临时爆率队列")
@GetMapping("/mockresult/list")
public R<List<BoxMockCache.MockItem>> getBoxMockResult(@RequestParam("uid") Integer uid) {
return R.ok(boxMockService.getMockResultList(uid));
}
@ApiOperation("设置开箱临时爆率队列")
@PostMapping("/mockresult/list")
public R<List<BoxMockCache.MockItem>> updateBoxMockResult(@RequestBody BoxMockRequest request) {
return R.ok(boxMockService.updateMockResultList(request));
}
}

View File

@@ -0,0 +1,91 @@
package com.ruoyi.admin.controller;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.admin.domain.TtBoxOpenChance;
import com.ruoyi.admin.service.TtBoxOpenChanceService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 开箱机会Controller
*
* @author ruoyi
* @date 2024-07-09
*/
@RestController
@RequestMapping("/admin/chance")
public class TtBoxOpenChanceController extends BaseController
{
@Autowired
private TtBoxOpenChanceService ttBoxOpenChanceService;
/**
* 查询开箱机会列表
*/
@PreAuthorize("@ss.hasPermi('admin:chance:list')")
@GetMapping("/list")
public TableDataInfo list(TtBoxOpenChance ttBoxOpenChance)
{
startPage();
List<TtBoxOpenChance> list = ttBoxOpenChanceService.selectTtBoxOpenChanceList(ttBoxOpenChance);
return getDataTable(list);
}
/**
* 获取开箱机会详细信息
*/
@PreAuthorize("@ss.hasPermi('admin:chance:query')")
@GetMapping(value = "/{ornamentId}")
public AjaxResult getInfo(@PathVariable("ornamentId") Integer ornamentId)
{
return success(ttBoxOpenChanceService.selectTtBoxOpenChanceByOrnamentId(ornamentId));
}
/**
* 新增开箱机会
*/
@PreAuthorize("@ss.hasPermi('admin:chance:add')")
@Log(title = "开箱机会", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TtBoxOpenChance ttBoxOpenChance)
{
return toAjax(ttBoxOpenChanceService.insertTtBoxOpenChance(ttBoxOpenChance));
}
/**
* 修改开箱机会
*/
@PreAuthorize("@ss.hasPermi('admin:chance:edit')")
@Log(title = "开箱机会", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtBoxOpenChance ttBoxOpenChance)
{
return toAjax(ttBoxOpenChanceService.updateTtBoxOpenChance(ttBoxOpenChance));
}
/**
* 删除开箱机会
*/
@PreAuthorize("@ss.hasPermi('admin:chance:remove')")
@Log(title = "开箱机会", businessType = BusinessType.DELETE)
@DeleteMapping("/{ornamentIds}")
public AjaxResult remove(@PathVariable Integer[] ornamentIds)
{
return toAjax(ttBoxOpenChanceService.deleteTtBoxOpenChanceByOrnamentIds(ornamentIds));
}
}

View File

@@ -0,0 +1,107 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtBoxOrnaments;
import com.ruoyi.admin.service.TtBoxOrnamentsService;
import com.ruoyi.domain.vo.TtBoxOrnamentsDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.bind.annotation.*;
import jakarta.validation.constraints.NotEmpty;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Api(tags = "管理端 宝箱物品")
@RestController
@RequestMapping("/admin/boxOrnaments")
public class TtBoxOrnamentsController extends BaseController {
private final TtBoxOrnamentsService boxOrnamentsService;
public TtBoxOrnamentsController(TtBoxOrnamentsService boxOrnamentsService) {
this.boxOrnamentsService = boxOrnamentsService;
}
@ApiOperation("宝箱物品详情")
@GetMapping("/list/{boxId}")
public PageDataInfo<TtBoxOrnamentsDataVO> list(@PathVariable("boxId") Integer boxId) {
startPage();
List<TtBoxOrnamentsDataVO> list = boxOrnamentsService.selectTtBoxOrnamentsList(boxId);
return getPageData(list);
}
@ApiOperation("宝箱统计数据")
@GetMapping("/globalData/{boxId}")
public R globalData(@PathVariable("boxId") Integer boxId) {
return boxOrnamentsService.globalData(boxId);
}
@GetMapping(value = "/{id}")
public R<TtBoxOrnaments> getInfo(@PathVariable("id") Integer id) {
TtBoxOrnaments ttBoxOrnaments = boxOrnamentsService.getById(id);
return R.ok(ttBoxOrnaments);
}
@PostMapping
public AjaxResult add(@RequestBody TtBoxOrnaments ttBoxOrnaments) {
ttBoxOrnaments.setCreateBy(getUsername());
ttBoxOrnaments.setCreateTime(DateUtils.getNowDate());
String msg = boxOrnamentsService.saveBoxOrnaments(ttBoxOrnaments);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
/**
* 修改宝箱物品
*
* @param ttBoxOrnamentsDataVO
* @return
*/
@PutMapping
public AjaxResult edit(@RequestBody TtBoxOrnamentsDataVO ttBoxOrnamentsDataVO) {
String msg = boxOrnamentsService.updateBoxOrnamentsById(ttBoxOrnamentsDataVO);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{boxId}/{ids}")
public AjaxResult remove(@PathVariable Integer boxId, @PathVariable Long[] ids) {
String msg = boxOrnamentsService.removeBoxOrnamentsByIds(boxId, Arrays.asList(ids));
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@GetMapping("/getProfitMargin/{boxId}")
public AjaxResult getProfitMargin(@PathVariable("boxId") Integer boxId) {
return boxOrnamentsService.getProfitMargin(boxId);
}
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public static class batchAddParam{
private Integer boxId;
private Integer partyType;
// private List<Integer> ornamentsIds;
@NotEmpty(message = "物品id不能为空")
private List<Long> ornamentIds;
}
// 宝箱填货
@ApiOperation("宝箱填货")
@PostMapping("/batchAdd")
public AjaxResult batchAdd(@RequestBody batchAddParam param) {
return boxOrnamentsService.batchAdd(param);
// return StringUtils.isEmpty(msg) ? AjaxResult.success("批量填货成功,请手动修改饰品数量!") : AjaxResult.error(msg);
}
}

View File

@@ -0,0 +1,30 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtBoxRecordsService;
import com.ruoyi.domain.other.TtBoxRecordsBody;
import com.ruoyi.domain.vo.TtBoxRecordsDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.PageDataInfo;
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("/admin/boxRecords")
public class TtBoxRecordsController extends BaseController {
private final TtBoxRecordsService boxRecordsService;
public TtBoxRecordsController(TtBoxRecordsService boxRecordsService) {
this.boxRecordsService = boxRecordsService;
}
@GetMapping("/list")
public PageDataInfo<TtBoxRecordsDataVO> list(TtBoxRecordsBody ttBoxRecordsBody) {
startPage();
List<TtBoxRecordsDataVO> list = boxRecordsService.selectBoxRecordsList(ttBoxRecordsBody);
return getPageData(list);
}
}

View File

@@ -0,0 +1,67 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.domain.other.TtBoxType;
import com.ruoyi.admin.service.TtBoxTypeService;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/boxType")
@Slf4j
public class TtBoxTypeController extends BaseController {
private final TtBoxTypeService boxTypeService;
public TtBoxTypeController(TtBoxTypeService boxTypeService) {
this.boxTypeService = boxTypeService;
}
@GetMapping("/list")
public PageDataInfo<TtBoxType> list(@RequestParam(required = false) String isFightType) {
startPage();
LambdaQueryWrapper<TtBoxType> wrapper = Wrappers.lambdaQuery();
if (StringUtils.isNotEmpty(isFightType)) wrapper.eq(TtBoxType::getIsFightType, isFightType);
List<TtBoxType> list = boxTypeService.list(wrapper);
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtBoxType> getInfo(@PathVariable("id") Integer id) {
TtBoxType boxType = boxTypeService.getById(id);
boxType.setIcon("");
return R.ok(boxType);
}
@PostMapping
public AjaxResult add(@RequestBody TtBoxType ttBoxType) {
if (StringUtils.isEmpty(ttBoxType.getIcon())) ttBoxType.setIcon("");
else ttBoxType.setIcon(RuoYiConfig.getDomainName() + ttBoxType.getIcon());
ttBoxType.setCreateTime(DateUtils.getNowDate());
return toAjax(boxTypeService.save(ttBoxType));
}
@PutMapping
public AjaxResult edit(@RequestBody TtBoxType ttBoxType) {
ttBoxType.setUpdateTime(DateUtils.getNowDate());
String msg = boxTypeService.updateBoxTypeById(ttBoxType);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(boxTypeService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,53 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtContent;
import com.ruoyi.admin.service.TtContentService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/content")
public class TtContentController extends BaseController {
private final TtContentService contentService;
public TtContentController(TtContentService contentService) {
this.contentService = contentService;
}
@GetMapping("/list")
public PageDataInfo<TtContent> list(TtContent ttContent) {
startPage();
List<TtContent> list = contentService.queryList(ttContent);
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtContent> getInfo(@PathVariable("id") Long id) {
return R.ok(contentService.getById(id));
}
@PostMapping
public AjaxResult add(@RequestBody TtContent ttContent) {
ttContent.setCreateTime(DateUtils.getNowDate());
return toAjax(contentService.save(ttContent));
}
@PutMapping
public AjaxResult edit(@RequestBody TtContent ttContent) {
ttContent.setUpdateTime(DateUtils.getNowDate());
return toAjax(contentService.updateById(ttContent));
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(contentService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,53 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtContentType;
import com.ruoyi.admin.service.TtContentTypeService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/contentType")
public class TtContentTypeController extends BaseController {
private final TtContentTypeService contentTypeService;
public TtContentTypeController(TtContentTypeService contentTypeService) {
this.contentTypeService = contentTypeService;
}
@GetMapping("/list")
public PageDataInfo<TtContentType> list(TtContentType ttContentType) {
startPage();
List<TtContentType> list = contentTypeService.queryList(ttContentType);
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtContentType> getInfo(@PathVariable("id") Long id) {
return R.ok(contentTypeService.getById(id));
}
@PostMapping
public AjaxResult add(@RequestBody TtContentType ttContentType) {
ttContentType.setCreateTime(DateUtils.getNowDate());
return toAjax(contentTypeService.save(ttContentType));
}
@PutMapping
public AjaxResult edit(@RequestBody TtContentType ttContentType) {
ttContentType.setUpdateTime(DateUtils.getNowDate());
return toAjax(contentTypeService.updateById(ttContentType));
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(contentTypeService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,52 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtDeliveryRecordService;
import com.ruoyi.domain.other.TtDeliveryApplyBody;
import com.ruoyi.domain.vo.DeliveryApplyVO;
import com.ruoyi.domain.other.TtDeliveryRecordBody;
import com.ruoyi.domain.vo.TtDeliveryRecordDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "管理端 发货管理")
@RestController
@RequestMapping("/admin/deliverGoods")
public class TtDeliveryRecordController extends BaseController {
private final TtDeliveryRecordService deliveryRecordService;
public TtDeliveryRecordController(TtDeliveryRecordService deliveryRecordService) {
this.deliveryRecordService = deliveryRecordService;
}
@ApiOperation("发货申请列表")
@GetMapping("/getDeliveryApplyList")
public PageDataInfo<DeliveryApplyVO> getDeliveryApplyList(TtDeliveryApplyBody deliveryApplyBody) {
startPage();
List<DeliveryApplyVO> list = deliveryRecordService.getDeliveryApplyList(deliveryApplyBody);
return getPageData(list);
}
@ApiOperation("退回发货申请")
@PostMapping("/deliveryFail")
public R<Boolean> deliveryFail(@RequestParam("deliveryRecordId") Integer deliveryRecordId, @RequestParam("message") String message) {
String msg = deliveryRecordService.deliveryFail(deliveryRecordId, message);
return StringUtils.isEmpty(msg) ? R.ok(true, "操作成功!") : R.fail(false, msg);
}
@ApiOperation("发货记录申请")
@GetMapping("/getDeliveryRecordList")
public PageDataInfo<TtDeliveryRecordDataVO> getDeliveryRecordList(TtDeliveryRecordBody deliveryRecordBody) {
startPage();
List<TtDeliveryRecordDataVO> list = deliveryRecordService.getDeliveryRecordList(deliveryRecordBody);
return getPageData(list);
}
}

View File

@@ -0,0 +1,39 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.entity.fight.TtFight;
import com.ruoyi.admin.service.TtFightService;
import com.ruoyi.domain.vo.FightBoxDataVO;
import com.ruoyi.domain.other.TtFightBody;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.PageDataInfo;
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 java.util.List;
@RestController
@RequestMapping("/admin/fight")
public class TtFightController extends BaseController {
private final TtFightService fightService;
public TtFightController(TtFightService fightService) {
this.fightService = fightService;
}
@GetMapping("/list")
public PageDataInfo<TtFight> list(TtFightBody ttFightBody) {
startPage();
List<TtFight> list = fightService.selectFightList(ttFightBody);
return getPageData(list);
}
@GetMapping("/getFightBoxList/{fightId}")
public PageDataInfo<FightBoxDataVO> getFightBoxList(@PathVariable("fightId") Integer fightId) {
startPage();
List<FightBoxDataVO> list = fightService.selectFightBoxList(fightId);
return getPageData(list);
}
}

View File

@@ -0,0 +1,109 @@
package com.ruoyi.admin.controller;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.domain.other.TtFightRankingReward;
import com.ruoyi.admin.service.TtFightRankingRewardService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 对战奖励金额Controller
*
* @author ruoyi
* @date 2024-07-04
*/
@RestController
@RequestMapping("/admin/reward")
public class TtFightRankingRewardController extends BaseController
{
@Autowired
private TtFightRankingRewardService ttFightRankingRewardService;
/**
* 查询对战奖励金额列表
*/
@PreAuthorize("@ss.hasPermi('admin:reward:list')")
@GetMapping("/list")
public TableDataInfo list(TtFightRankingReward ttFightRankingReward)
{
startPage();
List<TtFightRankingReward> list = ttFightRankingRewardService.selectTtFightRankingRewardList(ttFightRankingReward);
return getDataTable(list);
}
/**
* 获取对战奖励金额详细信息
*/
@PreAuthorize("@ss.hasPermi('admin:reward:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return success(ttFightRankingRewardService.selectTtFightRankingRewardById(id));
}
/**
* 新增对战奖励金额
*/
// @PreAuthorize("@ss.hasPermi('admin:reward:add')")
// @Log(title = "对战奖励金额", businessType = BusinessType.INSERT)
// @PostMapping
// public AjaxResult add(@RequestBody TtFightRankingReward ttFightRankingReward)
// {
// return toAjax(ttFightRankingRewardService.insertTtFightRankingReward(ttFightRankingReward));
// }
@PreAuthorize("@ss.hasPermi('admin:reward:add')")
@Log(title = "生成奖励金额", businessType = BusinessType.INSERT)
@PostMapping("/generateRankingReward")
public AjaxResult generatePromotionLevel() {
String msg = ttFightRankingRewardService.generateRankingReward();
return StringUtils.isEmpty(msg) ? AjaxResult.success("生成成功,请修改参数!") : AjaxResult.error(msg);
}
/**
* 修改对战奖励金额
*/
@PreAuthorize("@ss.hasPermi('admin:reward:edit')")
@Log(title = "对战奖励金额", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtFightRankingReward ttFightRankingReward)
{
return toAjax(ttFightRankingRewardService.updateTtFightRankingReward(ttFightRankingReward));
}
/**
* 删除对战奖励金额
*/
// @PreAuthorize("@ss.hasPermi('admin:reward:remove')")
// @Log(title = "对战奖励金额", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Integer[] ids)
// {
// return toAjax(ttFightRankingRewardService.deleteTtFightRankingRewardByIds(ids));
// }
@PreAuthorize("@ss.hasPermi('admin:reward:remove')")
@Log(title = "重置奖励金额", businessType = BusinessType.DELETE)
@DeleteMapping("/truncateRankingReward")
public AjaxResult truncateRankingReward() {
ttFightRankingRewardService.truncateRankingReward();
return AjaxResult.success("重置成功");
}
}

View File

@@ -0,0 +1,33 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtFightResultService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.domain.vo.FightResultDataVO;
import com.ruoyi.domain.vo.fight.FightResultVO;
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;
@RestController
@RequestMapping("/admin/fightResult")
public class TtFightResultController {
private final TtFightResultService fightResultService;
public TtFightResultController(TtFightResultService fightResultService) {
this.fightResultService = fightResultService;
}
// @GetMapping("/getFightResult/{fightId}")
// public R<FightResultDataVO> getFightResult(@PathVariable("fightId") Integer fightId) {
// FightResultDataVO fightResultDataVO = fightResultService.getFightResult(fightId);
// return R.ok(fightResultDataVO);
// }
@GetMapping("/getFightResult/{fightId}")
public R<FightResultVO> getFightResult(@PathVariable("fightId") Integer fightId) {
FightResultVO fightResultVO = fightResultService.getFightResult(fightId);
return R.ok(fightResultVO);
}
}

View File

@@ -0,0 +1,104 @@
package com.ruoyi.admin.controller;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.domain.other.TtFirstRecharge;
import com.ruoyi.admin.service.TtFirstRechargeService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 首充赠送Controller
*
* @author ruoyi
* @date 2024-06-21
*/
@RestController
@RequestMapping("/admin/recharge")
public class TtFirstRechargeController extends BaseController
{
@Autowired
private TtFirstRechargeService ttFirstRechargeService;
/**
* 查询首充赠送列表
*/
@PreAuthorize("@ss.hasPermi('admin:recharge:list')")
@GetMapping("/list")
public TableDataInfo list(TtFirstRecharge ttFirstRecharge)
{
startPage();
List<TtFirstRecharge> list = ttFirstRechargeService.selectTtFirstRechargeList(ttFirstRecharge);
return getDataTable(list);
}
/**
* 导出首充赠送列表
*/
@PreAuthorize("@ss.hasPermi('admin:recharge:export')")
@Log(title = "首充赠送", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TtFirstRecharge ttFirstRecharge)
{
List<TtFirstRecharge> list = ttFirstRechargeService.selectTtFirstRechargeList(ttFirstRecharge);
ExcelUtil<TtFirstRecharge> util = new ExcelUtil<TtFirstRecharge>(TtFirstRecharge.class);
util.exportExcel(response, list, "首充赠送数据");
}
/**
* 获取首充赠送详细信息
*/
@PreAuthorize("@ss.hasPermi('admin:recharge:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return success(ttFirstRechargeService.selectTtFirstRechargeById(id));
}
/**
* 新增首充赠送
*/
@PreAuthorize("@ss.hasPermi('admin:recharge:add')")
@Log(title = "首充赠送", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TtFirstRecharge ttFirstRecharge)
{
return toAjax(ttFirstRechargeService.insertTtFirstRecharge(ttFirstRecharge));
}
/**
* 修改首充赠送
*/
@PreAuthorize("@ss.hasPermi('admin:recharge:edit')")
@Log(title = "首充赠送", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtFirstRecharge ttFirstRecharge)
{
return toAjax(ttFirstRechargeService.updateTtFirstRecharge(ttFirstRecharge));
}
/**
* 删除首充赠送
*/
@PreAuthorize("@ss.hasPermi('admin:recharge:remove')")
@Log(title = "首充赠送", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids)
{
return toAjax(ttFirstRechargeService.deleteTtFirstRechargeByIds(ids));
}
}

View File

@@ -0,0 +1,67 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtMessage;
import com.ruoyi.admin.service.TtMessageService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/message")
public class TtMessageController extends BaseController {
private final TtMessageService messageService;
public TtMessageController(TtMessageService messageService) {
this.messageService = messageService;
}
@GetMapping("/list")
public PageDataInfo<TtMessage> list(TtMessage ttMessage) {
startPage();
List<TtMessage> list = messageService.queryList(ttMessage);
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtMessage> getInfo(@PathVariable("id") Integer id) {
return R.ok(messageService.getById(id));
}
@PostMapping
public AjaxResult add(@RequestBody TtMessage ttMessage) {
ttMessage.setCreateTime(DateUtils.getNowDate());
return toAjax(messageService.save(ttMessage));
}
@PutMapping
public AjaxResult edit(@RequestBody TtMessage ttMessage) {
ttMessage.setUpdateTime(DateUtils.getNowDate());
return toAjax(messageService.updateById(ttMessage));
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
String msg = messageService.delByIds(Arrays.asList(ids));
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@PostMapping("/singleMessage/{messageId}/{userIds}")
public AjaxResult singleMessage(@PathVariable("messageId") Integer messageId, @PathVariable Integer[] userIds){
String msg = messageService.singleMessage(messageId, Arrays.asList(userIds));
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@PostMapping("/massMessaging/{messageId}")
public AjaxResult massMessaging(@PathVariable("messageId") Integer messageId){
String msg = messageService.massMessaging(messageId);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
}

View File

@@ -0,0 +1,33 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtOrderService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.domain.dto.sys.OrderQueryCondition;
import com.ruoyi.domain.entity.TtOrder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "管理端 订单管理")
@RestController
@RequestMapping("/admin/order")
public class TtOrderController extends BaseController {
private final TtOrderService ttOrderService;
public TtOrderController(TtOrderService ttOrderService) {
this.ttOrderService = ttOrderService;
}
@ApiOperation("网站支付订单查询")
@PostMapping("/list")
public R list(@RequestBody @Validated OrderQueryCondition condition) {
return ttOrderService.adminList(condition);
}
}

View File

@@ -0,0 +1,72 @@
package com.ruoyi.admin.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.service.TtOrnamentService;
import com.ruoyi.domain.entity.TtOrnament;
import com.ruoyi.domain.other.TtOrnamentsBody;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.other.TtOrnamentsPrice;
import com.ruoyi.domain.vo.TtOrnamentVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;
@Api(tags = "管理端 饰品管理")
@RestController
@RequestMapping("/admin/ornaments")
public class TtOrnamentsController extends BaseController {
@Autowired
private TtOrnamentService ornamentsService;
@Autowired
private TtOrnamentService ttOrnamentService;
// 饰品列表多条件筛选
@ApiOperation("饰品列表多条件筛选")
@GetMapping("/list")
public R list(TtOrnamentsBody param) {
Page<TtOrnamentVO> ttOrnamentVOPage = ttOrnamentService.listByParam(param);
return R.ok(ttOrnamentVOPage);
}
// TODO: 2024/3/29 !!!!!!
// 导出饰品数据
@Log(title = "饰品数据", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TtOrnamentsBody ttOrnamentsBody) {
List<TtOrnamentVO> list = ttOrnamentService.listByParam(ttOrnamentsBody).getRecords();
ExcelUtil<TtOrnamentVO> util = new ExcelUtil<>(TtOrnamentVO.class);
util.exportExcel(response, list, "饰品数据数据");
}
@GetMapping(value = "/{id}")
public R<TtOrnament> getInfo(@PathVariable("id") Long id) {
return R.ok(ornamentsService.getById(id));
}
@ApiOperation("饰品发放")
@PostMapping("/grantOrnaments/{userId}/{ornamentsId}/{num}")
public AjaxResult grantOrnaments(@PathVariable("userId") Integer userId,
@PathVariable("ornamentsId") Long ornamentsId,
@RequestParam(name = "ornamentsLevelId", required = false) Integer ornamentsLevelId,
@PathVariable("num") Integer num) {
return ornamentsService.grantOrnaments(userId, ornamentsId, ornamentsLevelId, num);
}
@PutMapping("/updateOrnamentPrice")
public AjaxResult updateOrnamentPrice(@RequestBody TtOrnamentsPrice ttOrnamentsPrice) {
return ornamentsService.updateOrnamentPrice(ttOrnamentsPrice.getId(), ttOrnamentsPrice.getPrice());
}
}

View File

@@ -0,0 +1,59 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtOrnamentsLevel;
import com.ruoyi.admin.service.TtOrnamentsLevelService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "管理端 饰品等级信息")
@RestController
@RequestMapping("/admin/ornamentsLevel")
public class TtOrnamentsLevelController extends BaseController {
private final TtOrnamentsLevelService ornamentsLevelService;
public TtOrnamentsLevelController(TtOrnamentsLevelService ornamentsLevelService) {
this.ornamentsLevelService = ornamentsLevelService;
}
@ApiOperation("获取所有饰品等级背景")
@GetMapping("/list")
public PageDataInfo<TtOrnamentsLevel> list() {
startPage();
List<TtOrnamentsLevel> list = ornamentsLevelService.list();
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtOrnamentsLevel> getInfo(@PathVariable("id") Integer id) {
TtOrnamentsLevel ornamentsLevel = ornamentsLevelService.getById(id);
ornamentsLevel.setLevelImg("");
return R.ok(ornamentsLevel);
}
@PostMapping("generateOrnamentsLevel/{num}")
public AjaxResult generateOrnamentsLevel(@PathVariable("num") Integer num) {
String msg = ornamentsLevelService.generateOrnamentsLevel(num);
return StringUtils.isEmpty(msg) ? AjaxResult.success("生成成功,请修改参数!") : AjaxResult.error(msg);
}
@PutMapping
public AjaxResult edit(@RequestBody TtOrnamentsLevel ttOrnamentsLevel) {
String msg = ornamentsLevelService.updateOrnamentsLevelById(ttOrnamentsLevel);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@PostMapping
public AjaxResult truncateOrnamentsLevel() {
ornamentsLevelService.truncateOrnamentsLevel();
return AjaxResult.success("重置成功,请重新设置!");
}
}

View File

@@ -0,0 +1,47 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtPromoTurnoverService;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.domain.param.promotion.AnchorDailyTurnoverParam;
import com.ruoyi.domain.param.promotion.AnchorRechargeParam;
import com.ruoyi.domain.vo.promotion.AnchorDailyTurnoverVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/admin/promo")
public class TtPromoTurnoverController extends BaseController {
@Autowired
private TtPromoTurnoverService ttPromoTurnoverService;
@ApiOperation("获取主播推广数据")
@GetMapping("/getAnchorPromotionData")
public PageDataInfo<AnchorDailyTurnoverVo> getAnchorPromotionData(AnchorDailyTurnoverParam param) {
List<AnchorDailyTurnoverVo> list = ttPromoTurnoverService.getAnchorDailyTurnover(param);
PageDataInfo<AnchorDailyTurnoverVo> pageDataInfo = new PageDataInfo();
pageDataInfo.setTotal(list.size());
pageDataInfo.setCode(HttpStatus.SUCCESS);
pageDataInfo.setMsg("查询成功");
int num = param.getNum() != null ? param.getNum() : 1;
int size = param.getSize() != null ? param.getSize() : 10;
int fromIndex = (num - 1) * size;
int toIndex = Math.min(fromIndex + size, list.size());
pageDataInfo.setRows(list.subList(fromIndex, toIndex));
return pageDataInfo;
}
@ApiOperation("主播充值")
@PostMapping("/recharge")
public AjaxResult recharge(@RequestBody AnchorRechargeParam param) {
return ttPromoTurnoverService.recharge(param);
}
}

View File

@@ -0,0 +1,57 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.entity.TtPromotionLevel;
import com.ruoyi.admin.service.TtPromotionLevelService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/admin/promotionLevel")
public class TtPromotionLevelController extends BaseController {
private final TtPromotionLevelService promotionLevelService;
public TtPromotionLevelController(TtPromotionLevelService promotionLevelService) {
this.promotionLevelService = promotionLevelService;
}
@GetMapping("/list")
public PageDataInfo<TtPromotionLevel> list() {
startPage();
List<TtPromotionLevel> list = promotionLevelService.list();
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtPromotionLevel> getInfo(@PathVariable("id") Integer id) {
TtPromotionLevel ttPromotionLevel = promotionLevelService.getById(id);
ttPromotionLevel.setIcon("");
return R.ok(ttPromotionLevel);
}
@PostMapping("generatePromotionLevel/{num}")
public AjaxResult generatePromotionLevel(@PathVariable("num") Integer num) {
String msg = promotionLevelService.generateVipLevel(num);
return StringUtils.isEmpty(msg) ? AjaxResult.success("生成成功,请修改参数!") : AjaxResult.error(msg);
}
@PutMapping
public AjaxResult edit(@RequestBody TtPromotionLevel ttPromotionLevel) {
ttPromotionLevel.setUpdateTime(DateUtils.getNowDate());
String msg = promotionLevelService.updatePromotionLevelById(ttPromotionLevel);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@PostMapping
public AjaxResult truncateVipLevel() {
promotionLevelService.truncatePromotionLevel();
return AjaxResult.success("重置成功,请重新设置!");
}
}

View File

@@ -0,0 +1,38 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.entity.TtPromotionRecord;
import com.ruoyi.admin.service.TtPromotionRecordService;
import com.ruoyi.domain.vo.PromotionDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
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 java.util.List;
@RestController
@RequestMapping("/admin/promotionRecord")
public class TtPromotionRecordController extends BaseController {
private final TtPromotionRecordService promotionRecordService;
public TtPromotionRecordController(TtPromotionRecordService promotionRecordService) {
this.promotionRecordService = promotionRecordService;
}
@GetMapping("/getPromotionRecord")
public PageDataInfo<TtPromotionRecord> getPromotionRecord(TtPromotionRecord ttPromotionRecord){
startPage();
List<TtPromotionRecord> list = promotionRecordService.getPromotionRecord(ttPromotionRecord);
return getPageData(list);
}
@GetMapping("/statisticsPromotionData/{userId}")
public R<PromotionDataVO> statisticsPromotionData(@PathVariable("userId") Integer userId){
PromotionDataVO data = promotionRecordService.statisticsPromotionData(userId);
return R.ok(data);
}
}

View File

@@ -0,0 +1,40 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtRechargeCard;
import com.ruoyi.admin.service.TtRechargeCardService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;
@RestController
@RequestMapping("/admin/rechargeCard")
public class TtRechargeCardController extends BaseController {
private final TtRechargeCardService rechargeCardService;
public TtRechargeCardController(TtRechargeCardService rechargeCardService) {
this.rechargeCardService = rechargeCardService;
}
@GetMapping("/list")
public PageDataInfo<TtRechargeCard> list(TtRechargeCard ttRechargeCard) {
startPage();
List<TtRechargeCard> list = rechargeCardService.queryList(ttRechargeCard);
return getPageData(list);
}
@PostMapping("/export")
public void export(HttpServletResponse response, TtRechargeCard ttRechargeCard) {
rechargeCardService.export(response, ttRechargeCard);
}
@PostMapping("/generateCard/{rechargeListId}/{num}")
public R<List<String>> generateCard(@PathVariable("rechargeListId") Integer rechargeListId, @PathVariable("num") Integer num) {
List<String> cardList = rechargeCardService.generateCard(rechargeListId, num);
return R.ok(cardList);
}
}

View File

@@ -0,0 +1,57 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.admin.service.TtRechargeConfigService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.domain.entity.TtRechargeConfig;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/rechargeConfig")
public class TtRechargeConfigController extends BaseController {
private final TtRechargeConfigService rechargeConfigService;
public TtRechargeConfigController(TtRechargeConfigService rechargeConfigService) {
this.rechargeConfigService = rechargeConfigService;
}
@GetMapping("/list")
public PageDataInfo<TtRechargeConfig> list(@RequestParam(required = false) String status) {
startPage();
LambdaQueryWrapper<TtRechargeConfig> wrapper = Wrappers.lambdaQuery();
if (StringUtils.isNotEmpty(status)) wrapper.eq(TtRechargeConfig::getStatus, status);
List<TtRechargeConfig> list = rechargeConfigService.list(wrapper);
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtRechargeConfig> getInfo(@PathVariable("id") Integer id) {
TtRechargeConfig rechargeConfig = rechargeConfigService.getById(id);
return R.ok(rechargeConfig);
}
@PostMapping
public AjaxResult add(@RequestBody TtRechargeConfig ttRechargeConfig) {
return toAjax(rechargeConfigService.save(ttRechargeConfig));
}
@PutMapping
public AjaxResult edit(@RequestBody TtRechargeConfig ttRechargeConfig) {
return toAjax(rechargeConfigService.updateById(ttRechargeConfig));
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(rechargeConfigService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,59 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.domain.entity.TtRechargeProd;
import com.ruoyi.admin.service.TtRechargeProdService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/rechargeList")
public class TtRechargeListController extends BaseController {
private final TtRechargeProdService rechargeListService;
public TtRechargeListController(TtRechargeProdService rechargeListService) {
this.rechargeListService = rechargeListService;
}
@GetMapping("/list")
public PageDataInfo<TtRechargeProd> list(@RequestParam(required = false) String status) {
startPage();
LambdaQueryWrapper<TtRechargeProd> wrapper = Wrappers.lambdaQuery();
if (StringUtils.isNotEmpty(status)) wrapper.eq(TtRechargeProd::getStatus, status);
List<TtRechargeProd> list = rechargeListService.list(wrapper);
return getPageData(list);
}
@PreAuthorize("@ss.hasPermi('admin:rechargeList:query')")
@GetMapping(value = "/{id}")
public R<TtRechargeProd> getInfo(@PathVariable("id") Integer id) {
TtRechargeProd rechargeList = rechargeListService.getById(id);
return R.ok(rechargeList);
}
@PostMapping
public AjaxResult add(@RequestBody TtRechargeProd ttRechargeProd) {
return toAjax(rechargeListService.save(ttRechargeProd));
}
@PutMapping
public AjaxResult edit(@RequestBody TtRechargeProd ttRechargeProd) {
return toAjax(rechargeListService.updateById(ttRechargeProd));
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(rechargeListService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,95 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtRechargeRankingRewardService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.domain.other.TtRechargeRankingReward;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 充值奖励金额Controller
*
* @author ruoyi
* @date 2024-07-04
*/
@RestController
@RequestMapping("/admin/rechargeRankingReward")
public class TtRechargeRankingRewardController extends BaseController
{
@Autowired
private TtRechargeRankingRewardService ttRechargeRankingRewardService;
/**
* 查询充值奖励金额列表
*/
@GetMapping("/list")
public TableDataInfo list(TtRechargeRankingReward ttRechargeRankingReward)
{
startPage();
List<TtRechargeRankingReward> list = ttRechargeRankingRewardService.selectTtRechargeRankingRewardList(ttRechargeRankingReward);
return getDataTable(list);
}
/**
* 获取充值奖励金额详细信息
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return success(ttRechargeRankingRewardService.selectTtRechargeRankingRewardById(id));
}
/**
* 新增充值奖励金额
*/
// @PreAuthorize("@ss.hasPermi('admin:reward:add')")
// @Log(title = "充值奖励金额", businessType = BusinessType.INSERT)
// @PostMapping
// public AjaxResult add(@RequestBody TtRechargeRankingReward ttRechargeRankingReward)
// {
// return toAjax(ttRechargeRankingRewardService.insertTtRechargeRankingReward(ttRechargeRankingReward));
// }
@Log(title = "生成奖励金额", businessType = BusinessType.INSERT)
@PostMapping("/generateRankingReward")
public AjaxResult generatePromotionLevel() {
String msg = ttRechargeRankingRewardService.generateRankingReward();
return StringUtils.isEmpty(msg) ? AjaxResult.success("生成成功,请修改参数!") : AjaxResult.error(msg);
}
/**
* 修改充值奖励金额
*/
@Log(title = "充值奖励金额", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtRechargeRankingReward ttRechargeRankingReward)
{
return toAjax(ttRechargeRankingRewardService.updateTtRechargeRankingReward(ttRechargeRankingReward));
}
/**
* 删除充值奖励金额
*/
// @PreAuthorize("@ss.hasPermi('admin:reward:remove')")
// @Log(title = "充值奖励金额", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Integer[] ids)
// {
// return toAjax(ttRechargeRankingRewardService.deleteTtRechargeRankingRewardByIds(ids));
// }
@Log(title = "重置奖励金额", businessType = BusinessType.DELETE)
@DeleteMapping("/truncateRankingReward")
public AjaxResult truncateRankingReward() {
ttRechargeRankingRewardService.truncateRankingReward();
return AjaxResult.success("重置成功");
}
}

View File

@@ -0,0 +1,158 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ruoyi.admin.mapper.TtOrderMapper;
import com.ruoyi.admin.mapper.TtRechargeConfigMapper;
import com.ruoyi.admin.mapper.TtUserMapper;
import com.ruoyi.domain.common.constant.TtAccountRecordSource;
import com.ruoyi.domain.entity.TtOrder;
import com.ruoyi.domain.entity.TtRechargeConfig;
import com.ruoyi.domain.entity.TtUserBlendErcash;
import com.ruoyi.domain.entity.sys.TtUser;
import com.ruoyi.domain.other.TtRechargeRecord;
import com.ruoyi.admin.service.TtRechargeRecordService;
import com.ruoyi.domain.other.TtRechargeRecordBody;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.other.TtRechargeRecordVo;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import jakarta.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/admin/rechargeRecord")
public class TtRechargeRecordController extends BaseController {
private final TtRechargeRecordService rechargeRecordService;
public TtRechargeRecordController(TtRechargeRecordService rechargeRecordService) {
this.rechargeRecordService = rechargeRecordService;
}
@Autowired
private com.ruoyi.admin.mapper.TtUserBlendErcashMapper ttUserBlendErcashMapper;
@Autowired
private TtUserMapper ttUserMapper;
@Autowired
private TtOrderMapper ttOrderMapper;
@Autowired
private TtRechargeConfigMapper ttRechargeConfigMapper;
@GetMapping("/list")
public PageDataInfo<TtRechargeRecordVo> list(TtRechargeRecordBody rechargeRecordBody) {
startPage();
List<TtRechargeRecord> list = rechargeRecordService.queryList(rechargeRecordBody);
if (CollectionUtils.isNotEmpty(list)) {
Set<Integer> userIds = new HashSet<>();
Set<String> orderIds = new HashSet<>();
for (TtRechargeRecord record : list) {
userIds.add(record.getUserId());
orderIds.add(record.getOrderId());
}
List<TtUser> ttUsers = ttUserMapper.selectBatchIds(userIds);
Map<Integer, TtUser> userMap = ttUsers.stream().collect(Collectors.toMap(TtUser::getUserId, Function.identity()));
List<TtOrder> orders = new LambdaQueryChainWrapper<>(ttOrderMapper)
.in(TtOrder::getOrderId, orderIds).list();
Map<String, String> orderPicture = new HashMap<>();
if (CollectionUtils.isNotEmpty(orders)) {
Set<Integer> goodIds = orders.stream().map(TtOrder::getGoodsId).collect(Collectors.toSet());
List<TtRechargeConfig> configs = new LambdaQueryChainWrapper<>(ttRechargeConfigMapper).in(TtRechargeConfig::getId, goodIds).list();
Map<Integer, TtRechargeConfig> configMap = configs.stream().collect(Collectors.toMap(TtRechargeConfig::getId, Function.identity()));
for (TtOrder order : orders) {
TtRechargeConfig config = configMap.get(order.getGoodsId());
if (config != null) {
orderPicture.put(order.getOrderId(), config.getPicture());
}
}
}
List<TtRechargeRecordVo> vos = new ArrayList<>();
for (TtRechargeRecord record : list) {
TtRechargeRecordVo vo = new TtRechargeRecordVo();
BeanUtils.copyProperties(record, vo);
vos.add(vo);
TtUser ttUser = userMap.get(record.getUserId());
if (ttUser == null) {
continue;
}
vo.setNickName(ttUser.getNickName());
vo.setPhoneNumber(ttUser.getPhoneNumber());
vo.setDeliveryAddress(ttUser.getDeliveryAddress());
vo.setPicture(orderPicture.getOrDefault(vo.getOrderId(), ""));
}
return getPageData(vos);
} else {
return getPageData(new ArrayList<>());
}
}
@PostMapping("/export")
public void export(HttpServletResponse response, TtRechargeRecordBody rechargeRecordBody) {
List<TtRechargeRecord> list = rechargeRecordService.queryList(rechargeRecordBody);
ExcelUtil<TtRechargeRecord> util = new ExcelUtil<>(TtRechargeRecord.class);
util.exportExcel(response, list, "充值记录信息列表");
}
@GetMapping("/homeStats")
public com.ruoyi.common.core.domain.R homeStats() {
java.time.LocalDate today = java.time.LocalDate.now();
java.sql.Timestamp startOfDay = java.sql.Timestamp.valueOf(today.atStartOfDay());
java.sql.Timestamp endOfDay = java.sql.Timestamp.valueOf(today.plusDays(1).atStartOfDay());
// 今日总充值source = 1 TtAccountRecordSource.RECHARGE.getCode()
LambdaQueryWrapper<TtUserBlendErcash> rechargeWrapper =
Wrappers.<TtUserBlendErcash>lambdaQuery()
.eq(TtUserBlendErcash::getSource, TtAccountRecordSource.RECHARGE.getCode())
.ge(TtUserBlendErcash::getCreateTime, startOfDay)
.lt(TtUserBlendErcash::getCreateTime, endOfDay);
BigDecimal todayRecharge = ttUserBlendErcashMapper.selectList(rechargeWrapper).stream()
.map(TtUserBlendErcash::getAmount)
.filter(java.util.Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
// 今日总投注:游戏消费(经典盲盒/对战/roll房/逐梦前行/指数盲盒/极速永恒×3/幸运转盘/黄金装备) TtAccountRecordSource.getGameBetCodes()
List<Integer> betSources = new ArrayList<>(TtAccountRecordSource.getGameBetCodes());
LambdaQueryWrapper<TtUserBlendErcash> betWrapper =
Wrappers.<TtUserBlendErcash>lambdaQuery()
.in(TtUserBlendErcash::getSource, betSources)
.ge(TtUserBlendErcash::getCreateTime, startOfDay)
.lt(TtUserBlendErcash::getCreateTime, endOfDay);
BigDecimal todayBet = ttUserBlendErcashMapper.selectList(betWrapper).stream()
.map(r -> r.getAmount() != null ? r.getAmount().abs() : BigDecimal.ZERO)
.reduce(BigDecimal.ZERO, BigDecimal::add);
// 今日总赢奖:游戏奖励(经典盲盒/对战/roll房/逐梦前行/极速永恒/幸运转盘/黄金装备) TtAccountRecordSource.getGameRewardCodes()
List<Integer> rewardSources = new ArrayList<>(TtAccountRecordSource.getGameRewardCodes());
LambdaQueryWrapper<TtUserBlendErcash> rewardWrapper =
Wrappers.<TtUserBlendErcash>lambdaQuery()
.in(TtUserBlendErcash::getSource, rewardSources)
.ge(TtUserBlendErcash::getCreateTime, startOfDay)
.lt(TtUserBlendErcash::getCreateTime, endOfDay);
BigDecimal todayReward = ttUserBlendErcashMapper.selectList(rewardWrapper).stream()
.map(r -> r.getAmount() != null ? r.getAmount().abs() : BigDecimal.ZERO)
.reduce(BigDecimal.ZERO, BigDecimal::add);
java.util.Map<String, Object> result = new java.util.HashMap<>();
result.put("todayRecharge", todayRecharge);
result.put("todayBet", todayBet);
result.put("todayReward", todayReward);
return com.ruoyi.common.core.domain.R.ok(result);
}
}

View File

@@ -0,0 +1,106 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtRedPackService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.other.TtRedPack;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 【请填写功能名称】Controller
*
* @author ruoyi
* @date 2023-06-29
*/
@RestController
@RequestMapping("/admin/redPack")
public class TtRedPackController extends BaseController
{
@Autowired
private TtRedPackService ttRedPackService;
/**
* 查询【请填写功能名称】列表
*/
@PreAuthorize("@ss.hasPermi('skinsback:ttRedPack:list')")
@GetMapping("/list")
public TableDataInfo list(TtRedPack ttRedPack)
{
startPage();
List<TtRedPack> list = ttRedPackService.selectTtRedPackList(ttRedPack);
return getDataTable(list);
}
@PreAuthorize("@ss.hasPermi('skinsback:ttRedPack:listAll')")
@GetMapping("/listAll")
public TableDataInfo listAll(TtRedPack ttRedPack)
{
List<TtRedPack> list = ttRedPackService.selectTtRedPackList(ttRedPack);
return getDataTable(list);
}
/**
* 导出【请填写功能名称】列表
*/
@PreAuthorize("@ss.hasPermi('skinsback:ttRedPack:export')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TtRedPack ttRedPack)
{
List<TtRedPack> list = ttRedPackService.selectTtRedPackList(ttRedPack);
ExcelUtil<TtRedPack> util = new ExcelUtil<TtRedPack>(TtRedPack.class);
util.exportExcel(response, list, "【请填写功能名称】数据");
}
/**
* 获取【请填写功能名称】详细信息
*/
@PreAuthorize("@ss.hasPermi('skinsback:ttRedPack:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(ttRedPackService.selectTtRedPackById(id));
}
/**
* 新增【请填写功能名称】
*/
@PreAuthorize("@ss.hasPermi('skinsback:ttRedPack:add')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TtRedPack ttRedPack)
{
ttRedPack.setValidCount(ttRedPack.getPackCount());
ttRedPack.setStatus(0l);
return toAjax(ttRedPackService.insertTtRedPack(ttRedPack));
}
/**
* 修改【请填写功能名称】
*/
@PreAuthorize("@ss.hasPermi('skinsback:ttRedPack:edit')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtRedPack ttRedPack)
{
return toAjax(ttRedPackService.updateTtRedPack(ttRedPack));
}
/**
* 删除【请填写功能名称】
*/
@PreAuthorize("@ss.hasPermi('skinsback:ttRedPack:remove')")
@Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(ttRedPackService.deleteTtRedPackByIds(ids));
}
}

View File

@@ -0,0 +1,67 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtRedPacketService;
import com.ruoyi.domain.other.TtRedPacket;
import com.ruoyi.domain.other.TtRedPacketBody;
import com.ruoyi.domain.vo.TtRedPacketDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@Api(tags = "管理端 红包")
@RestController
@RequestMapping("/admin/redPacket")
public class TtRedPacketController extends BaseController {
private final TtRedPacketService redPacketService;
public TtRedPacketController(TtRedPacketService redPacketService) {
this.redPacketService = redPacketService;
}
@GetMapping("/list")
public PageDataInfo<TtRedPacketDataVO> list(TtRedPacketBody ttRedPacketBody) {
startPage();
List<TtRedPacketDataVO> list = redPacketService.queryList(ttRedPacketBody);
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtRedPacketDataVO> getInfo(@PathVariable("id") Integer id) {
TtRedPacketDataVO data = redPacketService.queryList(TtRedPacketBody.builder().id(id).build()).get(0);
return R.ok(data);
}
@ApiOperation("生成红包")
@PostMapping
public AjaxResult add(@RequestBody TtRedPacketDataVO ttRedPacketDataVO) {
List<String> passwordList = redPacketService.insertRedPacket(ttRedPacketDataVO);
return StringUtils.isNotNull(passwordList) ? AjaxResult.success("生成成功!", passwordList) : AjaxResult.error("生成红包异常");
}
@PutMapping
public AjaxResult edit(@RequestBody TtRedPacket redPacket) {
redPacket.setUpdateBy(getUsername());
redPacket.setUpdateTime(DateUtils.getNowDate());
return redPacketService.updateRedPacketById(redPacket);
// return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
boolean b = redPacketService.removeByIds(Arrays.asList(ids));
if (b) return AjaxResult.success();
return AjaxResult.error();
}
}

View File

@@ -0,0 +1,30 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtRedPacketRecordService;
import com.ruoyi.domain.other.TtRedPacketRecordBody;
import com.ruoyi.domain.vo.TtRedPacketRecordDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.PageDataInfo;
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("/admin/redPacketRecord")
public class TtRedPacketRecordController extends BaseController {
private final TtRedPacketRecordService redPacketRecordService;
public TtRedPacketRecordController(TtRedPacketRecordService redPacketRecordService) {
this.redPacketRecordService = redPacketRecordService;
}
@GetMapping("/getRedPacketRecordList")
public PageDataInfo<TtRedPacketRecordDataVO> getRedPacketRecordList(TtRedPacketRecordBody ttRedPacketRecordBody) {
startPage();
List<TtRedPacketRecordDataVO> list = redPacketRecordService.queryList(ttRedPacketRecordBody);
return getPageData(list);
}
}

View File

@@ -0,0 +1,98 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtReplacementRecordService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.other.TtReplacementRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 汰换记录Controller
*
* @author junhai
* @date 2023-09-10
*/
@RestController
@RequestMapping("/admin/replacementRecord")
public class TtReplacementRecordController extends BaseController
{
@Autowired
private TtReplacementRecordService ttReplacementRecordService;
/**
* 查询汰换记录列表
*/
@PreAuthorize("@ss.hasPermi('skinsback:replacementRecord:list')")
@GetMapping("/list")
public TableDataInfo list(TtReplacementRecord ttReplacementRecord)
{
startPage();
List<TtReplacementRecord> list = ttReplacementRecordService.selectTtReplacementRecordList(ttReplacementRecord);
return getDataTable(list);
}
/**
* 导出汰换记录列表
*/
@PreAuthorize("@ss.hasPermi('skinsback:replacementRecord:export')")
@Log(title = "汰换记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TtReplacementRecord ttReplacementRecord)
{
List<TtReplacementRecord> list = ttReplacementRecordService.selectTtReplacementRecordList(ttReplacementRecord);
ExcelUtil<TtReplacementRecord> util = new ExcelUtil<TtReplacementRecord>(TtReplacementRecord.class);
util.exportExcel(response, list, "汰换记录数据");
}
/**
* 获取汰换记录详细信息
*/
@PreAuthorize("@ss.hasPermi('skinsback:replacementRecord:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(ttReplacementRecordService.selectTtReplacementRecordById(id));
}
/**
* 新增汰换记录
*/
@PreAuthorize("@ss.hasPermi('skinsback:replacementRecord:add')")
@Log(title = "汰换记录", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TtReplacementRecord ttReplacementRecord)
{
return toAjax(ttReplacementRecordService.insertTtReplacementRecord(ttReplacementRecord));
}
/**
* 修改汰换记录
*/
@PreAuthorize("@ss.hasPermi('skinsback:replacementRecord:edit')")
@Log(title = "汰换记录", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtReplacementRecord ttReplacementRecord)
{
return toAjax(ttReplacementRecordService.updateTtReplacementRecord(ttReplacementRecord));
}
/**
* 删除汰换记录
*/
@PreAuthorize("@ss.hasPermi('skinsback:replacementRecord:remove')")
@Log(title = "汰换记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(ttReplacementRecordService.deleteTtReplacementRecordByIds(ids));
}
}

View File

@@ -0,0 +1,100 @@
package com.ruoyi.admin.controller;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
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.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.domain.other.TtRobotFightGroupBox;
import com.ruoyi.admin.service.TtRobotFightGroupBoxService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 机器人对战分组宝箱Controller
*
* @author ruoyi
* @date 2024-06-28
*/
@RestController
@RequestMapping("/admin/group/box")
public class TtRobotFightGroupBoxController extends BaseController
{
@Autowired
private TtRobotFightGroupBoxService ttRobotFightGroupBoxService;
/**
* 查询机器人对战分组宝箱列表
*/
@PreAuthorize("@ss.hasPermi('admin:box:list')")
@GetMapping("/list/{groupId}")
public TableDataInfo list(
@PathVariable("groupId") Integer groupId,
TtRobotFightGroupBox ttRobotFightGroupBox
)
{
startPage();
List<TtRobotFightGroupBox> list = ttRobotFightGroupBoxService
.selectTtRobotFightGroupBoxList(groupId, ttRobotFightGroupBox);
return getDataTable(list);
}
/**
* 获取机器人对战分组宝箱详细信息
*/
@PreAuthorize("@ss.hasPermi('admin:box:query')")
@GetMapping(value = "/{groupId}/{boxId}")
public AjaxResult getInfo(
@PathVariable("groupId") Integer groupId,
@PathVariable("boxId") Integer boxId
)
{
return success(ttRobotFightGroupBoxService.selectTtRobotFightGroupBoxByBoxId(groupId, boxId));
}
/**
* 新增机器人对战分组宝箱
*/
@PreAuthorize("@ss.hasPermi('admin:box:add')")
@Log(title = "机器人对战分组宝箱", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody TtRobotFightGroupBox ttRobotFightGroupBox)
{
// TODO 检查该分组下是否已存在该宝箱
return toAjax(ttRobotFightGroupBoxService.insertTtRobotFightGroupBox(ttRobotFightGroupBox));
}
/**
* 修改机器人对战分组宝箱
*/
@PreAuthorize("@ss.hasPermi('admin:box:edit')")
@Log(title = "机器人对战分组宝箱", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody TtRobotFightGroupBox ttRobotFightGroupBox)
{
return toAjax(ttRobotFightGroupBoxService.updateTtRobotFightGroupBox(ttRobotFightGroupBox));
}
/**
* 删除机器人对战分组宝箱
*/
@PreAuthorize("@ss.hasPermi('admin:box:remove')")
@Log(title = "机器人对战分组宝箱", businessType = BusinessType.DELETE)
@DeleteMapping("/{groupId}/{boxIds}")
public AjaxResult remove(@PathVariable Integer groupId, @PathVariable Integer[] boxIds)
{
return toAjax(ttRobotFightGroupBoxService.deleteTtRobotFightGroupBoxByGroupIds(groupId, boxIds));
}
}

View File

@@ -0,0 +1,118 @@
package com.ruoyi.admin.controller;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
import com.ruoyi.admin.mapper.TtRobotFightGroupBoxMapper;
import com.ruoyi.admin.service.TtRobotFightGroupBoxService;
import com.ruoyi.domain.other.TtRobotFightGroupBox;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.domain.other.TtRobotFightGroup;
import com.ruoyi.admin.service.TtRobotFightGroupService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 机器人对战分组Controller
*
* @author ruoyi
* @date 2024-06-28
*/
@RestController
@RequestMapping("/admin/group")
public class TtRobotFightGroupController extends BaseController
{
@Autowired
private TtRobotFightGroupService ttRobotFightGroupService;
@Autowired
private TtRobotFightGroupBoxMapper ttRobotFightGroupBoxMapper;
/**
* 查询机器人对战分组列表
*/
@GetMapping("/list")
public TableDataInfo list(TtRobotFightGroup ttRobotFightGroup)
{
startPage();
List<TtRobotFightGroup> list = ttRobotFightGroupService.selectTtRobotFightGroupList(ttRobotFightGroup);
return getDataTable(list);
}
/**
* 导出机器人对战分组列表
*/
@Log(title = "机器人对战分组", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TtRobotFightGroup ttRobotFightGroup)
{
List<TtRobotFightGroup> list = ttRobotFightGroupService.selectTtRobotFightGroupList(ttRobotFightGroup);
ExcelUtil<TtRobotFightGroup> util = new ExcelUtil<TtRobotFightGroup>(TtRobotFightGroup.class);
util.exportExcel(response, list, "机器人对战分组数据");
}
/**
* 获取机器人对战分组详细信息
*/
@GetMapping(value = "/{groupId}")
public AjaxResult getInfo(@PathVariable("groupId") Integer groupId)
{
return success(ttRobotFightGroupService.selectTtRobotFightGroupByGroupId(groupId));
}
/**
* 新增机器人对战分组
*/
@Log(title = "机器人对战分组", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TtRobotFightGroup ttRobotFightGroup)
{
if (ttRobotFightGroup.getSeatNum() != 2 && ttRobotFightGroup.getSeatNum() != 3) {
return AjaxResult.error("座位数量只能为2或3");
}
return toAjax(ttRobotFightGroupService.insertTtRobotFightGroup(ttRobotFightGroup));
}
/**
* 修改机器人对战分组
*/
@Log(title = "机器人对战分组", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtRobotFightGroup ttRobotFightGroup)
{
if (ttRobotFightGroup.getSeatNum() != 2 && ttRobotFightGroup.getSeatNum() != 3) {
return AjaxResult.error("座位数量只能为2或3");
}
return toAjax(ttRobotFightGroupService.updateTtRobotFightGroup(ttRobotFightGroup));
}
/**
* 删除机器人对战分组
*/
@Log(title = "机器人对战分组", businessType = BusinessType.DELETE)
@DeleteMapping("/{groupIds}")
public AjaxResult remove(@PathVariable Integer[] groupIds)
{
for (Integer groupId : groupIds) {
int i = ttRobotFightGroupBoxMapper.hasChildByGroupId(groupId);
if (i > 0) {
return AjaxResult.error("删除失败,分组" + i + "不为空");
}
}
return toAjax(ttRobotFightGroupService.deleteTtRobotFightGroupByGroupIds(groupIds));
}
}

View File

@@ -0,0 +1,180 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.admin.domain.body.AddRobotBody;
import com.ruoyi.admin.service.TtRollService;
import com.ruoyi.admin.service.TtRollUserService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.dto.roll.GetRollPrizePool;
import com.ruoyi.domain.dto.roll.InviteRollUser;
import com.ruoyi.domain.entity.roll.TtRoll;
import com.ruoyi.domain.entity.roll.TtRollBody;
import com.ruoyi.domain.entity.roll.TtRollUser;
import com.ruoyi.domain.entity.sys.TtUser;
import com.ruoyi.domain.vo.TtRollPrizeDataVO;
import com.ruoyi.domain.vo.roll.RollJackpotOrnamentsByPageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull;
import java.util.List;
@Api(tags = "管理端 roll房")
@RestController
@RequestMapping("/admin/roll")
public class TtRollController extends BaseController {
private final TtRollService rollService;
private final TtRollUserService rollUserService;
public TtRollController(TtRollService rollService,
TtRollUserService rollUserService) {
this.rollService = rollService;
this.rollUserService = rollUserService;
}
@GetMapping("/list")
public PageDataInfo<TtRoll> list(TtRollBody ttRollBody) {
startPage();
List<TtRoll> list = rollService.queryList(ttRollBody);
return getPageData(list);
}
/**
* 导出信息
* @param response
* @param ttRollBody
*/
@PostMapping("/export")
public void export(HttpServletResponse response, TtRollBody ttRollBody) {
List<TtRoll> list = rollService.queryList(ttRollBody);
ExcelUtil<TtRoll> util = new ExcelUtil<>(TtRoll.class);
util.exportExcel(response, list, "Roll房信息列表");
}
@GetMapping(value = "/{rollId}")
public R<TtRoll> getInfo(@PathVariable("rollId") Long rollId) {
TtRoll roll = rollService.getById(rollId);
return R.ok(roll);
}
// 创建roll房
@ApiOperation("创建roll房")
@PostMapping
public AjaxResult add(@RequestBody TtRoll ttRoll) {
ttRoll.setCreateBy(getUsername());
ttRoll.setCreateTime(DateUtils.getNowDate());
return rollService.createRoll(ttRoll);
}
// roll房拉人
@ApiOperation("roll房拉人")
@PostMapping("/inviteRollUser")
public R inviteRollUser(@RequestBody InviteRollUser InviteRollUser) {
return rollService.inviteRollUser(InviteRollUser);
}
// 获取roll房成员信息
@ApiOperation("获取roll房成员信息")
@GetMapping("getRollUsers/{rollId}")
public AjaxResult getRollUsers(@PathVariable("rollId") Integer rollId) {
return rollService.getRollUsers(rollId);
}
@ApiOperation("编辑roll房")
@PutMapping
public AjaxResult edit(@RequestBody TtRoll ttRoll) {
ttRoll.setUpdateBy(getUsername());
ttRoll.setUpdateTime(DateUtils.getNowDate());
return rollService.updateRollById(ttRoll);
}
@ApiOperation("删除roll房")
@DeleteMapping("/remove/{rollId}")
public AjaxResult remove(@PathVariable Long rollId) {
LambdaQueryWrapper<TtRollUser> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TtRollUser::getRollId, rollId);
List<TtRollUser> list = rollUserService.list(wrapper);
TtRoll ttRoll = rollService.getById(rollId);
ttRoll.setUpdateBy(getUsername());
ttRoll.setUpdateTime(DateUtils.getNowDate());
rollService.updateById(ttRoll);
return toAjax(rollService.removeById(rollId));
}
// @ApiOperation("roll房奖品列表")
// @PostMapping("/getRollPrizeList")
// public R<List<TtRollPrizeDataVO>> getRollPrizeList(@RequestBody RollPrizesCondition condition) {
//
// List<TtRollPrizeDataVO> list = rollService.getRollPrizeList(condition);
//
// return R.ok(list);
//
// }
@ApiOperation("roll房奖品列表")
@GetMapping("/getRollPrizeList/{rollId}")
public R<List<TtRollPrizeDataVO>> getRollPrizeList(@PathVariable("rollId") Integer rollId) {
List<TtRollPrizeDataVO> list = rollService.getRollPrizeList(rollId);
return R.ok(list);
}
@ApiOperation("获取 roll房奖池详情")
@PostMapping("/getRollPrizePool")
public R<RollJackpotOrnamentsByPageVO> getRollPrizePool(@RequestBody @Validated GetRollPrizePool param) {
return rollService.getRollPrizePool(param);
}
@ApiOperation("roll房的指定获奖人名单")
@GetMapping("/rollWinners/{rollId}")
public R rollWinners(@PathVariable Integer rollId) {
return rollUserService.rollWinners(rollId);
}
@ApiOperation("指定roll房winner")
@PostMapping("/namedWinner")
public AjaxResult namedWinner(@RequestBody @Validated TtRollPrizeDataVO param) {
return rollService.namedWinner(param);
}
@ApiOperation("取消指定roll房奖品")
@DeleteMapping("/cancelNamedWinner")
public R cancelNamedWinner(@RequestBody List<Integer> rollUserPrizeIds) {
return rollService.cancelNamedWinner(rollUserPrizeIds);
}
@ApiOperation("获取ROLL房用户")
@GetMapping("/getRollUser/{rollId}")
public AjaxResult getRollUser(@PathVariable("rollId") Integer rollId) {
List<TtUser> rollUserList = rollService.getRollUser(rollId);
return success(rollUserList);
}
@ApiOperation("加入机器人")
@PostMapping("/addRobot")
public AjaxResult addRobot(@RequestBody AddRobotBody addRobotBody) {
return rollService.addRobot(addRobotBody);
}
}

View File

@@ -0,0 +1,70 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.domain.entity.roll.TtRollJackpot;
import com.ruoyi.admin.service.TtRollJackpotService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.List;
@Api(tags = "管理端 roll奖池")
@RestController
@RequestMapping("/admin/rollJackpot")
public class TtRollJackpotController extends BaseController {
private final TtRollJackpotService rollJackpotService;
public TtRollJackpotController(TtRollJackpotService rollJackpotService) {
this.rollJackpotService = rollJackpotService;
}
@ApiOperation("奖池列表")
@GetMapping("/list")
public PageDataInfo<TtRollJackpot> list(@RequestParam(value = "jackpotName", required = false) String jackpotName) {
startPage();
LambdaQueryWrapper<TtRollJackpot> wrapper = Wrappers.lambdaQuery();
if (StringUtils.isNotEmpty(jackpotName)) {
wrapper.like(TtRollJackpot::getJackpotName, jackpotName);
}
List<TtRollJackpot> list = rollJackpotService.list(wrapper);
return getPageData(list);
}
@GetMapping(value = "/{jackpotId}")
public R<TtRollJackpot> getInfo(@PathVariable("jackpotId") Long jackpotId) {
TtRollJackpot rollJackpot = rollJackpotService.getById(jackpotId);
return R.ok(rollJackpot);
}
@ApiOperation("添加奖池")
@PostMapping
public AjaxResult add(@RequestBody TtRollJackpot ttRollJackpot) {
ttRollJackpot.setCreateBy(getUsername());
ttRollJackpot.setCreateTime(DateUtils.getNowDate());
ttRollJackpot.setTotalPrice(BigDecimal.ZERO);
return toAjax(rollJackpotService.save(ttRollJackpot));
}
@PutMapping
public AjaxResult edit(@RequestBody TtRollJackpot ttRollJackpot) {
ttRollJackpot.setUpdateBy(getUsername());
ttRollJackpot.setUpdateTime(DateUtils.getNowDate());
return toAjax(rollJackpotService.updateById(ttRollJackpot));
}
@DeleteMapping("/remove/{jackpotId}")
public AjaxResult remove(@PathVariable Long jackpotId) {
String msg = rollJackpotService.removeRollJackpotById(jackpotId);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
}

View File

@@ -0,0 +1,80 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ruoyi.domain.dto.rollJackpotOrnament.RollJOEdit;
import com.ruoyi.domain.entity.roll.TtRoll;
import com.ruoyi.domain.entity.roll.TtRollJackpotOrnaments;
import com.ruoyi.admin.service.TtRollJackpotOrnamentsService;
import com.ruoyi.admin.service.TtRollService;
import com.ruoyi.domain.entity.roll.TtRollJackpotOrnamentsBody;
import com.ruoyi.domain.vo.TtRollJackpotOrnamentsDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@Api(tags = "管理端 roll奖池物品管理")
@RestController
@RequestMapping("/admin/rollJackpotOrnaments")
public class TtRollJackpotOrnamentsController extends BaseController {
private final TtRollService rollService;
private final TtRollJackpotOrnamentsService rollJackpotOrnamentsService;
public TtRollJackpotOrnamentsController(TtRollService rollService,
TtRollJackpotOrnamentsService rollJackpotOrnamentsService) {
this.rollService = rollService;
this.rollJackpotOrnamentsService = rollJackpotOrnamentsService;
}
@ApiOperation("物品列表")
@GetMapping("/list")
public PageDataInfo<TtRollJackpotOrnamentsDataVO> list(TtRollJackpotOrnamentsBody rollJackpotOrnamentsBody) {
startPage();
List<TtRollJackpotOrnamentsDataVO> list = rollJackpotOrnamentsService.queryList(rollJackpotOrnamentsBody);
return getPageData(list);
}
@GetMapping(value = "/{rollJackpotOrnamentsId}")
public R<TtRollJackpotOrnaments> getInfo(@PathVariable("rollJackpotOrnamentsId") Long rollJackpotOrnamentsId) {
TtRollJackpotOrnaments rollJackpotOrnaments = rollJackpotOrnamentsService.getById(rollJackpotOrnamentsId);
return R.ok(rollJackpotOrnaments);
}
@PostMapping
public AjaxResult add(@RequestBody TtRollJackpotOrnaments ttRollJackpotOrnaments) {
String msg = rollJackpotOrnamentsService.insertRollJackpotOrnaments(ttRollJackpotOrnaments);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@ApiOperation("修改奖池道具")
@PutMapping
public AjaxResult edit(@RequestBody TtRollJackpotOrnaments rollJOEdit) {
String msg = rollJackpotOrnamentsService.updateRollJackpotOrnamentsById(rollJOEdit);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{jackpotId}/{rollJackpotOrnamentsIds}")
public AjaxResult remove(@PathVariable("jackpotId") Integer jackpotId,
@PathVariable("rollJackpotOrnamentsIds") Long[] rollJackpotOrnamentsIds) {
List<TtRoll> rollList = new LambdaQueryChainWrapper<>(rollService.getBaseMapper()).eq(TtRoll::getJackpotId, jackpotId)
.eq(TtRoll::getRollStatus, "0").eq(TtRoll::getDelFlag, "0").list();
if (StringUtils.isNotNull(rollList) && !rollList.isEmpty())
return AjaxResult.error("该奖池正在被进行中的Roll房使用禁止删除奖品");
return toAjax(rollJackpotOrnamentsService.removeByIds(Arrays.asList(rollJackpotOrnamentsIds)));
}
@ApiOperation("奖池批量填货")
@PostMapping("/batchAdd/{rollJackpotId}/{OrnamentsIds}")
public AjaxResult batchAdd(@PathVariable Integer rollJackpotId, @PathVariable Long[] OrnamentsIds) {
String msg = rollJackpotOrnamentsService.batchAdd(rollJackpotId, Arrays.asList(OrnamentsIds));
return StringUtils.isEmpty(msg) ? AjaxResult.success("批量填货成功,请手动修改饰品数量!") : AjaxResult.error(msg);
}
}

View File

@@ -0,0 +1,94 @@
package com.ruoyi.admin.controller;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.domain.other.TtTaskCenter;
import com.ruoyi.admin.service.TtTaskCenterService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 任务中心Controller
*
* @author ruoyi
* @date 2024-05-25
*/
@RestController
@RequestMapping("/admin/taskCenter")
public class TtTaskCenterController extends BaseController
{
@Autowired
private TtTaskCenterService ttTaskCenterService;
/**
* 查询任务列表
*/
@PreAuthorize("isAuthenticated()")
@GetMapping("/list")
public TableDataInfo list(TtTaskCenter ttTaskCenter)
{
startPage();
List<TtTaskCenter> list = ttTaskCenterService.selectTtTaskCenterList(ttTaskCenter);
return getDataTable(list);
}
/**
* 获取任务详细信息
*/
@PreAuthorize("isAuthenticated()")
@GetMapping(value = "/{taskId}")
public AjaxResult getInfo(@PathVariable("taskId") Integer taskId)
{
return success(ttTaskCenterService.selectTtTaskCenterByTaskId(taskId));
}
/**
* 新增任务
*/
@PreAuthorize("isAuthenticated()")
@Log(title = "任务中心", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TtTaskCenter ttTaskCenter)
{
ttTaskCenter.setCreateBy(getUsername());
return toAjax(ttTaskCenterService.insertTtTaskCenter(ttTaskCenter));
}
/**
* 修改任务
*/
@PreAuthorize("isAuthenticated()")
@Log(title = "任务中心", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtTaskCenter ttTaskCenter)
{
ttTaskCenter.setUpdateBy(getUsername());
return toAjax(ttTaskCenterService.updateTtTaskCenter(ttTaskCenter));
}
/**
* 删除任务
*/
@PreAuthorize("isAuthenticated()")
@Log(title = "任务中心", businessType = BusinessType.DELETE)
@DeleteMapping("/{taskIds}")
public AjaxResult remove(@PathVariable Integer[] taskIds)
{
return error("任务创建后无法删除");
// return toAjax(ttTaskCenterService.deleteTtTaskCenterByTaskIds(taskIds));
}
}

View File

@@ -0,0 +1,81 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.entity.roll.TtTimeRoll;
import com.ruoyi.admin.service.TtTimeRollService;
import com.ruoyi.domain.vo.TtRollPrizeDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.exception.job.TaskException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.quartz.SchedulerException;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/admin/timeRoll")
public class TtTimeRollController extends BaseController {
private final TtTimeRollService timeRollService;
public TtTimeRollController(TtTimeRollService timeRollService) {
this.timeRollService = timeRollService;
}
@GetMapping("/list")
public PageDataInfo<TtTimeRoll> list(){
startPage();
List<TtTimeRoll> list = timeRollService.list();
return getPageData(list);
}
@GetMapping(value = "/{timeRollId}")
public R<TtTimeRoll> getInfo(@PathVariable("timeRollId") Integer timeRollId) {
TtTimeRoll timeRoll = timeRollService.getById(timeRollId);
return R.ok(timeRoll);
}
@PostMapping
public AjaxResult add(@RequestBody TtTimeRoll ttTimeRoll) throws SchedulerException, TaskException {
ttTimeRoll.setCreateBy(getUsername());
ttTimeRoll.setCreateTime(DateUtils.getNowDate());
String msg = timeRollService.insertTimeRoll(ttTimeRoll);
return StringUtils.isEmpty(msg) ? AjaxResult.success("新增成功!") : AjaxResult.error(msg);
}
@PutMapping
public AjaxResult edit(@RequestBody TtTimeRoll ttTimeRoll) {
ttTimeRoll.setUpdateBy(getUsername());
ttTimeRoll.setUpdateTime(DateUtils.getNowDate());
return toAjax(timeRollService.updateById(ttTimeRoll));
}
@PutMapping("/changeStatus")
public AjaxResult changeStatus(@RequestBody TtTimeRoll ttTimeRoll) throws SchedulerException {
String msg = timeRollService.changeStatus(ttTimeRoll);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/remove/{id}")
public AjaxResult remove(@PathVariable Integer id) throws SchedulerException {
return timeRollService.removeTimeRollById(id);
}
@GetMapping("/getTimeRollPrizeList/{id}")
public R<List<TtRollPrizeDataVO>> getTimeRollPrizeList(@PathVariable("id") Integer id) {
List<TtRollPrizeDataVO> list = timeRollService.getTimeRollPrizeList(id);
List<TtRollPrizeDataVO> sortedList = list.stream().sorted((a, b) -> b.getUsePrice().compareTo(a.getUsePrice())).collect(Collectors.toList());
return R.ok(sortedList);
}
@PostMapping("/namedWinner")
public AjaxResult namedWinner(@RequestBody TtRollPrizeDataVO rollPrizeData) {
String msg = timeRollService.namedWinner(rollPrizeData);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
}

View File

@@ -0,0 +1,83 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtUpgradeFailOrnamentsService;
import com.ruoyi.domain.other.TtUpgradeFailOrnaments;
import com.ruoyi.domain.vo.TtUpgradeFailOrnamentsDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Api(tags = "管理端 失败物品奖励")
@RestController
@RequestMapping("/admin/upgradeFailOrnaments")
public class TtUpgradeFailOrnamentsController extends BaseController {
private final TtUpgradeFailOrnamentsService upgradeFailOrnamentsService;
public TtUpgradeFailOrnamentsController(TtUpgradeFailOrnamentsService upgradeFailOrnamentsService) {
this.upgradeFailOrnamentsService = upgradeFailOrnamentsService;
}
@AllArgsConstructor
@NoArgsConstructor
@Data
public static class listParam {
@NotNull(message = "参与升级物品id不能为空")
private Integer upgradeOrnamentId;
}
@ApiOperation("失败奖励列表")
@PostMapping("/list")
public PageDataInfo<TtUpgradeFailOrnamentsDataVO> list(@RequestBody listParam param) {
startPage();
List<TtUpgradeFailOrnamentsDataVO> list = upgradeFailOrnamentsService.queryList(param);
return getPageData(list);
}
@AllArgsConstructor
@NoArgsConstructor
@Data
public static class BatchAddParam{
@NotNull(message = "升级物品id不能为空")
private Integer upgradeId;
// @NotEmpty(message = "失败物品列表不能为空")
private Map<Long,Integer> ornamentsInfo;
@NotEmpty(message = "失败物品列表不能为空")
private List<Long> ornamentsIds;
//是否应用所有
private Boolean useAllFlag;
}
@ApiOperation("批量添加失败奖励")
@PostMapping("/batchAdd")
public AjaxResult batchAdd(@RequestBody @Validated BatchAddParam param) {
return upgradeFailOrnamentsService.batchAdd(param);
}
@PutMapping
public AjaxResult edit(@RequestBody TtUpgradeFailOrnamentsDataVO ttUpgradeFailOrnamentsDataVO) {
String msg = upgradeFailOrnamentsService.updateUpgradeFailOrnamentsById(ttUpgradeFailOrnamentsDataVO);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(upgradeFailOrnamentsService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,81 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ruoyi.domain.other.TtUpgradeFailOrnaments;
import com.ruoyi.domain.other.TtUpgradeOrnaments;
import com.ruoyi.admin.service.TtUpgradeFailOrnamentsService;
import com.ruoyi.admin.service.TtUpgradeOrnamentsService;
import com.ruoyi.domain.other.TtUpgradeOrnamentsBody;
import com.ruoyi.domain.vo.TtUpgradeOrnamentsDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Api(tags = "管理端 幸运升级")
@RestController
@RequestMapping("/admin/upgradeOrnaments")
public class TtUpgradeOrnamentsController extends BaseController {
private final TtUpgradeFailOrnamentsService upgradeFailOrnamentsService;
private final TtUpgradeOrnamentsService upgradeOrnamentsService;
public TtUpgradeOrnamentsController(TtUpgradeFailOrnamentsService upgradeFailOrnamentsService,
TtUpgradeOrnamentsService upgradeOrnamentsService) {
this.upgradeFailOrnamentsService = upgradeFailOrnamentsService;
this.upgradeOrnamentsService = upgradeOrnamentsService;
}
@ApiOperation("获取参与幸运升级的物品")
@GetMapping("/list")
public PageDataInfo<TtUpgradeOrnamentsDataVO> list(TtUpgradeOrnamentsBody ttUpgradeOrnamentsBody){
startPage();
List<TtUpgradeOrnamentsDataVO> list = upgradeOrnamentsService.queryList(ttUpgradeOrnamentsBody);
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtUpgradeOrnaments> getInfo(@PathVariable("id") Integer id) {
TtUpgradeOrnaments ttUpgradeOrnaments = upgradeOrnamentsService.getById(id);
return R.ok(ttUpgradeOrnaments);
}
@ApiOperation("批量填货")
@PostMapping("/batchAdd/{ornamentsIds}")
public AjaxResult batchAdd(@PathVariable Long[] ornamentsIds) {
String msg = upgradeOrnamentsService.batchAdd(Arrays.asList(ornamentsIds));
return StringUtils.isEmpty(msg) ? AjaxResult.success("批量上架成功,请手动修改幸运区间!") : AjaxResult.error(msg);
}
@PutMapping
public AjaxResult edit(@RequestBody TtUpgradeOrnamentsDataVO ttUpgradeOrnamentsDataVO) {
String msg = upgradeOrnamentsService.updateUpgradeOrnamentsById(ttUpgradeOrnamentsDataVO);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
List<TtUpgradeFailOrnaments> upgradeFailOrnamentsList = new LambdaQueryChainWrapper<>(upgradeFailOrnamentsService.getBaseMapper())
.in(TtUpgradeFailOrnaments::getUpgradeId, Arrays.asList(ids)).list();
List<Integer> list = upgradeFailOrnamentsList.stream().map(TtUpgradeFailOrnaments::getId).collect(Collectors.toList());
upgradeFailOrnamentsService.removeByIds(list);
return toAjax(upgradeOrnamentsService.removeByIds(Arrays.asList(ids)));
}
@GetMapping("/getUpgradeProfitStatistics/{id}")
public R<Object> getUpgradeProfitStatistics(@PathVariable("id") Integer id){
Map<String, BigDecimal> map = upgradeOrnamentsService.getUpgradeProfitStatistics(id);
return R.ok(map);
}
}

View File

@@ -0,0 +1,36 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.service.TtUpgradeRecordService;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.domain.dto.upgrade.UpgradeCondition;
import com.ruoyi.domain.other.TtUpgradeRecord;
import com.ruoyi.domain.other.TtUpgradeRecordBody;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.domain.vo.upgrade.UpgradeRecordVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "管理端 幸运升级日志")
@RestController
@RequestMapping("/admin/upgradeRecord")
public class TtUpgradeRecordController extends BaseController {
private final TtUpgradeRecordService upgradeRecordService;
public TtUpgradeRecordController(TtUpgradeRecordService upgradeRecordService) {
this.upgradeRecordService = upgradeRecordService;
}
@ApiOperation("幸运升级日志")
@PostMapping("/list")
public R<Page<UpgradeRecordVO>> list(@RequestBody @Validated UpgradeCondition param){
return upgradeRecordService.adminGetLog(param);
}
}

View File

@@ -0,0 +1,33 @@
package com.ruoyi.admin.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.domain.entity.recorde.TtUserAmountRecords;
import com.ruoyi.admin.service.TtUserAmountRecordsService;
import com.ruoyi.domain.other.TtUserAmountRecordsBody;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.PageDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "管理端 金币账户")
@RestController
@RequestMapping("/admin/userAmountRecords")
public class TtUserAmountRecordsController extends BaseController {
private final TtUserAmountRecordsService userAmountRecordsService;
public TtUserAmountRecordsController(TtUserAmountRecordsService userAmountRecordsService) {
this.userAmountRecordsService = userAmountRecordsService;
}
@ApiOperation("获取列表")
@PostMapping("/list")
public R list(@RequestBody @Validated TtUserAmountRecordsBody ttUserAmountRecordsBody) {
return userAmountRecordsService.queryList(ttUserAmountRecordsBody);
}
}

View File

@@ -0,0 +1,59 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtUserAvatar;
import com.ruoyi.admin.service.TtUserAvatarService;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/admin/userAvatar")
@Slf4j
public class TtUserAvatarController extends BaseController {
private final TtUserAvatarService userAvatarService;
public TtUserAvatarController(TtUserAvatarService userAvatarService) {
this.userAvatarService = userAvatarService;
}
@GetMapping("/list")
public PageDataInfo<TtUserAvatar> list() {
startPage();
List<TtUserAvatar> list = userAvatarService.list();
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtUserAvatar> getInfo(@PathVariable("id") Integer id) {
TtUserAvatar ttUserAvatar = userAvatarService.getById(id);
ttUserAvatar.setAvatar("");
return R.ok(ttUserAvatar);
}
@PostMapping
public AjaxResult add(@RequestBody TtUserAvatar ttUserAvatar) {
if (StringUtils.isEmpty(ttUserAvatar.getAvatar())) ttUserAvatar.setAvatar("");
else ttUserAvatar.setAvatar(RuoYiConfig.getDomainName() + ttUserAvatar.getAvatar());
return toAjax(userAvatarService.save(ttUserAvatar));
}
@PutMapping
public AjaxResult edit(@RequestBody TtUserAvatar ttUserAvatar) {
String msg = userAvatarService.updateUserAvatarById(ttUserAvatar);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
return toAjax(userAvatarService.removeByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,32 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtUserBlendErcashService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.domain.dto.userRecord.BlendErcashCondition;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
@Api(tags = "管理端 收支明细")
@RestController
@RequestMapping("/admin/blendErcash")
@Slf4j
public class TtUserBlendErcashController extends BaseController {
@Autowired
private TtUserBlendErcashService ttUserBlendErcashService;
@ApiOperation("收支明细")
@PostMapping("/list")
public R list(@RequestBody @Validated BlendErcashCondition condition) {
return ttUserBlendErcashService.byCondition(condition);
}
}

View File

@@ -0,0 +1,183 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.mapper.TtUserMapper;
import com.ruoyi.admin.service.TtBoxRecordsService;
import com.ruoyi.admin.service.TtUserService;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.common.constant.TtboxRecordStatus;
import com.ruoyi.domain.entity.TtBoxRecords;
import com.ruoyi.domain.entity.sys.TtUser;
import com.ruoyi.domain.other.ApiUserOnline;
import com.ruoyi.domain.other.TtUserBody;
import com.ruoyi.domain.other.TtUserPackSackBody;
import com.ruoyi.domain.vo.TtUserPackSackDataVO;
import com.ruoyi.domain.vo.user.TtUserVo;
import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/admin/user")
public class TtUserController extends BaseController {
private final TtUserService userService;
private final RedisCache redisCache;
private final TtBoxRecordsService boxRecordsService;
public TtUserController(TtUserService ttUserService,
RedisCache redisCache,
TtBoxRecordsService boxRecordsService) {
this.userService = ttUserService;
this.redisCache = redisCache;
this.boxRecordsService = boxRecordsService;
}
@Autowired
private TtUserMapper ttUserMapper;
@GetMapping("/list")
public PageDataInfo<TtUserVo> list(TtUserBody ttUserBody) {
startPage();
Pair<Integer, List<TtUserVo>> list = userService.queryList(ttUserBody);
list.getValue().forEach(ttUser -> ttUser.setPassword(""));
PageDataInfo<TtUserVo> pageDataInfo = getPageData(list.getValue());
pageDataInfo.setTotal(list.getKey());
return pageDataInfo;
}
@PostMapping("/export")
public void export(HttpServletResponse response, TtUserBody ttUserBody) {
Pair<Integer, List<TtUserVo>> list = userService.queryList(ttUserBody);
ExcelUtil<TtUserVo> util = new ExcelUtil<>(TtUserVo.class);
util.exportExcel(response, list.getValue(), "用户信息列表");
}
@GetMapping(value = "/{userId}")
public R<TtUser> getInfo(@PathVariable("userId") Long userId) {
TtUser user = userService.getById(userId);
user.setPassword(null);
if (user.getRemark() != null && user.getRemark().length() > 5) user.setRemark(user.getRemark().substring(5));
return R.ok(user);
}
@ApiOperation("生成账号")
@PostMapping("/generateAccount/{num}")
public void generateAccount(HttpServletResponse response, @PathVariable("num") Integer num) {
List<TtUser> userList = userService.getAccountList(num);
userService.generateAccount(response, userList);
}
@ApiOperation("生成账号")
@GetMapping("/generateAccountByPhoneNum")
public R generateAccountByPhoneNum(HttpServletResponse response, @RequestParam("phoneNum") String phoneNum,
@RequestParam("password") String password) {
TtUser user = userService.getAccountList(phoneNum, password);
return R.ok(user);
}
@ApiOperation("生成机器人")
@PostMapping("/generateRobot/{num}")
public void generateRobot(HttpServletResponse response, @PathVariable("num") Integer num) {
List<TtUser> userList = userService.getRobotList(num);
userService.generateAccount(response, userList);
}
@ApiOperation("修改用户信息")
@PutMapping
public AjaxResult edit(@RequestBody TtUser ttUser) {
ttUser.setUpdateBy(getUsername());
ttUser.setUpdateTime(DateUtils.getNowDate());
return userService.updateUserById(ttUser);
}
@ApiOperation("修改邀请码")
@PostMapping("/editInvitationCode")
public AjaxResult editInvitationCode(@RequestBody TtUser ttUser) {
ttUser.setUpdateBy(getUsername());
ttUser.setUpdateTime(DateUtils.getNowDate());
return userService.updateUserInvitationCodeById(ttUser);
}
@DeleteMapping("/{userIds}")
public AjaxResult remove(@PathVariable Long[] userIds) {
return toAjax(userService.removeByIds(Arrays.asList(userIds)));
}
@GetMapping("/online/list")
public PageDataInfo<ApiUserOnline> list(String ipaddr, String userName) {
startPage();
Collection<String> redisKeys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
List<ApiUserOnline> userOnlineList = redisKeys.stream().map(redisKey -> {
LoginUser user = redisCache.getCacheObject(redisKey);
if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) {
return userService.selectOnlineByInfo(ipaddr, userName, user);
} else if (StringUtils.isNotEmpty(ipaddr)) {
return userService.selectOnlineByIpaddr(ipaddr, user);
} else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser())) {
return userService.selectOnlineByUserName(userName, user);
} else {
return userService.loginUserToUserOnline(user);
}
}).collect(Collectors.toList());
Collections.reverse(userOnlineList);
userOnlineList.removeAll(Collections.singleton(null));
return getPageData(userOnlineList);
}
@GetMapping("/getPackSack")
public PageDataInfo<TtUserPackSackDataVO> getPackSack(TtUserPackSackBody ttUserPackSackBody) {
startPage();
List<TtUserPackSackDataVO> list = userService.getPackSack(ttUserPackSackBody);
return getPageData(list);
}
@PostMapping("/removeUserPackSackData/{ids}")
public AjaxResult removeUserPackSackData(@PathVariable Long[] ids) {
List<TtBoxRecords> boxRecordsList = boxRecordsService.getBaseMapper().selectBatchIds(Arrays.asList(ids));
boxRecordsList = boxRecordsList.stream().peek(ttBoxRecords -> {
ttBoxRecords.setStatus(TtboxRecordStatus.ADMIN_DELETE.getCode());
ttBoxRecords.setUpdateTime(DateUtils.getNowDate());
}).collect(Collectors.toList());
return toAjax(boxRecordsService.updateBatchById(boxRecordsList, 1));
}
@GetMapping("/getUserProfitStatistics/{userId}")
public R<Object> getUserProfitStatistics(@PathVariable("userId") Integer userId) {
Map<String, BigDecimal> map = userService.getUserProfitStatistics(userId);
return R.ok(map);
}
@ApiOperation("重置用户余额和积分")
@PostMapping("/resetBalance/{userId}")
public AjaxResult resetUserBalance(@PathVariable("userId") Integer userId){
TtUser ttUser = new TtUser();
ttUser.setUserId(userId);
ttUser.setAccountAmount(BigDecimal.ZERO);
ttUser.setAccountCredits(BigDecimal.ZERO);
ttUser.setUpdateBy(getUsername());
ttUser.setUpdateTime(DateUtils.getNowDate());
return userService.updateUserById(ttUser);
}
@ApiOperation("真删除用户(数据库删除,不可恢复)")
@DeleteMapping("/forceDelete/{userId}")
public AjaxResult forceDelete(@PathVariable("userId") Integer userId) {
ttUserMapper.removeByUserId(userId);
return AjaxResult.success("用户已彻底删除");
}
}

View File

@@ -0,0 +1,30 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.entity.recorde.TtUserCreditsRecords;
import com.ruoyi.admin.service.TtUserCreditsRecordsService;
import com.ruoyi.domain.other.TtUserCreditsRecordsBody;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.PageDataInfo;
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("/admin/userCreditsRecords")
public class TtUserCreditsRecordsController extends BaseController {
private final TtUserCreditsRecordsService userCreditsRecordsService;
public TtUserCreditsRecordsController(TtUserCreditsRecordsService userCreditsRecordsService) {
this.userCreditsRecordsService = userCreditsRecordsService;
}
@GetMapping("/list")
public PageDataInfo<TtUserCreditsRecords> list(TtUserCreditsRecordsBody ttUserCreditsRecordsBody) {
startPage();
List<TtUserCreditsRecords> list = userCreditsRecordsService.queryList(ttUserCreditsRecordsBody);
return getPageData(list);
}
}

View File

@@ -0,0 +1,57 @@
package com.ruoyi.admin.controller;
import com.ruoyi.domain.other.TtVipLevel;
import com.ruoyi.admin.service.TtVipLevelService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/admin/vipLevel")
public class TtVipLevelController extends BaseController {
private final TtVipLevelService vipLevelService;
public TtVipLevelController(TtVipLevelService vipLevelService) {
this.vipLevelService = vipLevelService;
}
@GetMapping("/list")
public PageDataInfo<TtVipLevel> list() {
startPage();
List<TtVipLevel> list = vipLevelService.list();
return getPageData(list);
}
@GetMapping(value = "/{id}")
public R<TtVipLevel> getInfo(@PathVariable("id") Integer id) {
TtVipLevel ttVipLevel = vipLevelService.getById(id);
ttVipLevel.setIcon("");
return R.ok(ttVipLevel);
}
@PostMapping("generateVipLevel/{num}")
public AjaxResult generateVipLevel(@PathVariable("num") Integer num) {
String msg = vipLevelService.generateVipLevel(num);
return StringUtils.isEmpty(msg) ? AjaxResult.success("生成成功,请修改参数!") : AjaxResult.error(msg);
}
@PutMapping
public AjaxResult edit(@RequestBody TtVipLevel ttVipLevel) {
ttVipLevel.setUpdateTime(DateUtils.getNowDate());
String msg = vipLevelService.updateVipLevelById(ttVipLevel);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@PostMapping
public AjaxResult truncateVipLevel() {
vipLevelService.truncateVipLevel();
return AjaxResult.success("重置成功,请重新设置!");
}
}

View File

@@ -0,0 +1,99 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtWelfareService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.other.TtWelfare;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 福利列表Controller
*
* @author ruoyi
* @date 2024-05-11
*/
@RestController
@RequestMapping("/admin/welfare")
public class TtWelfareController extends BaseController
{
@Autowired
private TtWelfareService ttWelfareService;
/**
* 查询福利列表
*/
@PreAuthorize("isAuthenticated()")
@GetMapping("/list")
public TableDataInfo list(TtWelfare ttWelfare)
{
startPage();
List<TtWelfare> list = ttWelfareService.selectTtWelfareList(ttWelfare);
return getDataTable(list);
}
/**
* 导出福利列表
*/
@PreAuthorize("isAuthenticated()")
@Log(title = "福利列表", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TtWelfare ttWelfare)
{
List<TtWelfare> list = ttWelfareService.selectTtWelfareList(ttWelfare);
ExcelUtil<TtWelfare> util = new ExcelUtil<TtWelfare>(TtWelfare.class);
util.exportExcel(response, list, "福利列表数据");
}
/**
* 获取福利列表详细信息
*/
@PreAuthorize("isAuthenticated()")
@GetMapping(value = "/{welfareId}")
public AjaxResult getInfo(@PathVariable("welfareId") Integer welfareId)
{
return success(ttWelfareService.selectTtWelfareByWelfareId(welfareId));
}
/**
* 新增福利列表
*/
@PreAuthorize("isAuthenticated()")
@Log(title = "福利列表", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TtWelfare ttWelfare)
{
return toAjax(ttWelfareService.insertTtWelfare(ttWelfare));
}
/**
* 修改福利列表
*/
@PreAuthorize("isAuthenticated()")
@Log(title = "福利列表", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtWelfare ttWelfare)
{
return toAjax(ttWelfareService.updateTtWelfare(ttWelfare));
}
/**
* 删除福利列表
*/
@PreAuthorize("isAuthenticated()")
@Log(title = "福利列表", businessType = BusinessType.DELETE)
@DeleteMapping("/{welfareIds}")
public AjaxResult remove(@PathVariable Integer[] welfareIds)
{
return toAjax(ttWelfareService.deleteTtWelfareByWelfareIds(welfareIds));
}
}

View File

@@ -0,0 +1,104 @@
package com.ruoyi.admin.controller;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.domain.other.TtWelfareMonthlyRecharges;
import com.ruoyi.admin.service.ITtWelfareMonthlyRechargesService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 每月充值福利Controller
*
* @author ruoyi
* @date 2024-06-24
*/
@RestController
@RequestMapping("/admin/recharges")
public class TtWelfareMonthlyRechargesController extends BaseController
{
@Autowired
private ITtWelfareMonthlyRechargesService ttWelfareMonthlyRechargesService;
/**
* 查询每月充值福利列表
*/
@PreAuthorize("@ss.hasPermi('admin:recharges:list')")
@GetMapping("/list")
public TableDataInfo list(TtWelfareMonthlyRecharges ttWelfareMonthlyRecharges)
{
startPage();
List<TtWelfareMonthlyRecharges> list = ttWelfareMonthlyRechargesService.selectTtWelfareMonthlyRechargesList(ttWelfareMonthlyRecharges);
return getDataTable(list);
}
/**
* 导出每月充值福利列表
*/
@PreAuthorize("@ss.hasPermi('admin:recharges:export')")
@Log(title = "每月充值福利", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TtWelfareMonthlyRecharges ttWelfareMonthlyRecharges)
{
List<TtWelfareMonthlyRecharges> list = ttWelfareMonthlyRechargesService.selectTtWelfareMonthlyRechargesList(ttWelfareMonthlyRecharges);
ExcelUtil<TtWelfareMonthlyRecharges> util = new ExcelUtil<TtWelfareMonthlyRecharges>(TtWelfareMonthlyRecharges.class);
util.exportExcel(response, list, "每月充值福利数据");
}
/**
* 获取每月充值福利详细信息
*/
@PreAuthorize("@ss.hasPermi('admin:recharges:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id)
{
return success(ttWelfareMonthlyRechargesService.selectTtWelfareMonthlyRechargesById(id));
}
/**
* 新增每月充值福利
*/
@PreAuthorize("@ss.hasPermi('admin:recharges:add')")
@Log(title = "每月充值福利", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TtWelfareMonthlyRecharges ttWelfareMonthlyRecharges)
{
return toAjax(ttWelfareMonthlyRechargesService.insertTtWelfareMonthlyRecharges(ttWelfareMonthlyRecharges));
}
/**
* 修改每月充值福利
*/
@PreAuthorize("@ss.hasPermi('admin:recharges:edit')")
@Log(title = "每月充值福利", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TtWelfareMonthlyRecharges ttWelfareMonthlyRecharges)
{
return toAjax(ttWelfareMonthlyRechargesService.updateTtWelfareMonthlyRecharges(ttWelfareMonthlyRecharges));
}
/**
* 删除每月充值福利
*/
@PreAuthorize("@ss.hasPermi('admin:recharges:remove')")
@Log(title = "每月充值福利", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids)
{
return toAjax(ttWelfareMonthlyRechargesService.deleteTtWelfareMonthlyRechargesByIds(ids));
}
}

View File

@@ -0,0 +1,77 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.TtOrnamentService;
import com.ruoyi.admin.service.WebsitePropertyService;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.domain.dto.queryCondition.OrnamentCondition;
import com.ruoyi.domain.vo.WebsitePropertyDataVO;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.PageDataInfo;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.domain.vo.upgrade.SimpleOrnamentVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@Api(tags = "管理端 道具管理")
@RestController
@RequestMapping("/admin/websiteProperty")
@Slf4j
public class WebsitePropertyController extends BaseController {
private final WebsitePropertyService websitePropertyService;
private final TtOrnamentService ornamentsService;
public WebsitePropertyController(WebsitePropertyService websitePropertyService,
TtOrnamentService ornamentsService) {
this.websitePropertyService = websitePropertyService;
this.ornamentsService = ornamentsService;
}
// @ApiOperation("获取道具列表")
// @GetMapping("/list")
// public PageDataInfo<WebsitePropertyDataVO> list() {
// startPage();
// List<WebsitePropertyDataVO> list = websitePropertyService.list();
// return getPageData(Arrays.asList());
// }
@ApiOperation("获取道具列表")
@GetMapping("/list")
public TableDataInfo list(OrnamentCondition condition) {
startPage();
List<SimpleOrnamentVO> list = ornamentsService.byCondition(condition);
return getDataTable(list);
}
@GetMapping(value = "/{id}")
public R<WebsitePropertyDataVO> getInfo(@PathVariable("id") Integer id) {
WebsitePropertyDataVO websitePropertyDataVO = websitePropertyService.getById(id);
websitePropertyDataVO.setImageUrl("");
return R.ok(websitePropertyDataVO);
}
@PostMapping
public AjaxResult add(@RequestBody WebsitePropertyDataVO websitePropertyDataVO) {
String msg = websitePropertyService.save(websitePropertyDataVO);
return StringUtils.isEmpty(msg) ? AjaxResult.success("新增网站道具成功!") : AjaxResult.error(msg);
}
@PutMapping
public AjaxResult edit(@RequestBody WebsitePropertyDataVO websitePropertyDataVO) {
String msg = websitePropertyService.updateWebsitePropertyById(websitePropertyDataVO);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Integer[] ids) {
// return toAjax(ornamentsService.removeByIds(Arrays.asList(ids)));
return toAjax(websitePropertyService.deleteWebsitePropertyByIds(ids));
}
}

View File

@@ -0,0 +1,40 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.service.WebsiteSetupService;
import com.ruoyi.domain.other.OperationalStatistics;
import com.ruoyi.domain.other.ParameterSettingBody;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/admin/websiteSetup")
public class WebsiteSetupController extends BaseController {
private final WebsiteSetupService websiteSetupService;
public WebsiteSetupController(WebsiteSetupService websiteSetupService) {
this.websiteSetupService = websiteSetupService;
}
@GetMapping("getOperationalStatistics")
public R<List<OperationalStatistics>> getOperationalStatistics() {
List<OperationalStatistics> list = websiteSetupService.getOperationalStatistics();
return R.ok(list);
}
@PostMapping("/getParameterSetting")
public R<ParameterSettingBody> getParameterSetting() {
return R.ok(websiteSetupService.getParameterSetting());
}
@PostMapping("/updateParameterSetting")
public AjaxResult updateParameterSetting(@RequestBody ParameterSettingBody parameterSettingBody) {
String msg = websiteSetupService.updateParameterSetting(parameterSettingBody);
return StringUtils.isEmpty(msg) ? AjaxResult.success() : AjaxResult.error(msg);
}
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.admin.domain.body;
import lombok.Data;
import jakarta.validation.constraints.NotNull;
@Data
public class AddRobotBody {
@NotNull(message = "ROLL房ID不能为空")
private Integer rollId;
private Integer robotNum;
}

View File

@@ -0,0 +1,24 @@
package com.ruoyi.admin.domain.body;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
//设置开箱临时爆率请求参数
@Data
public class BoxMockRequest {
private Integer uid;
//临时爆率列表
private List<MockItem> items;
@Data
public static class MockItem implements Serializable {
//最低价格(包含)
private BigDecimal lowPrice;
//最高价格(包含)
private BigDecimal highPrice;
}
}

View File

@@ -0,0 +1,33 @@
package com.ruoyi.admin.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@AllArgsConstructor
@Getter
public enum BoxPoolType {
ANCHOR_PLAYER("01", "主播用户奖池"),
NORMAL_PLAYER("02", "普通用户奖池"),
COMPENSATION("03", "补偿奖池"),
THIRD_EXPLOSIVE("04", "三级爆率奖池"),
ROBOT_PLAYER("05", "机器人用户奖池");
private final String id;
private final String desc;
public static List<BoxPoolType> allTypes() {
return Arrays.stream(values()).collect(Collectors.toList());
}
public static BoxPoolType fromId(String id) {
for (BoxPoolType type : values()) {
if (type.getId().equals(id)) {
return type;
}
}
return null;
}
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.ConfigData;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ConfigMapper extends BaseMapper<ConfigData> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtAdvertisement;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtAdvertisementMapper extends BaseMapper<TtAdvertisement> {
}

View File

@@ -0,0 +1,20 @@
package com.ruoyi.admin.mapper;
import com.ruoyi.domain.other.TtAnnouncement;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface TtAnnouncementMapper {
List<TtAnnouncement> getAnnouncementList();
TtAnnouncement getAnnouncementByAnnouncementId(Integer announcementId);
int addAnnouncement(TtAnnouncement ttAnnouncement);
int editAnnouncement(TtAnnouncement ttAnnouncement);
int removeAnnouncementByAnnouncementId(Integer announcementId);
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtBanner;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtBannerMapper extends BaseMapper<TtBanner> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtBonus;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtBonusMapper extends BaseMapper<TtBonus> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtBonusReceiveRecord;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtBonusReceiveRecordMapper extends BaseMapper<TtBonusReceiveRecord> {
}

View File

@@ -0,0 +1,18 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtBox;
import com.ruoyi.domain.other.TtBoxBody;
import com.ruoyi.domain.vo.TtBoxDataVO;
import com.ruoyi.domain.vo.box.BoxGlobalData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface TtBoxMapper extends BaseMapper<TtBox> {
List<TtBoxDataVO> selectTtBoxList(TtBoxBody ttBoxBody);
BoxGlobalData globalData(@Param("boxId") Integer boxId);
}

View File

@@ -0,0 +1,61 @@
package com.ruoyi.admin.mapper;
import java.util.List;
import com.ruoyi.admin.domain.TtBoxOpenChance;
/**
* 开箱机会Mapper接口
*
* @author ruoyi
* @date 2024-07-09
*/
public interface TtBoxOpenChanceMapper
{
/**
* 查询开箱机会
*
* @param ornamentId 开箱机会主键
* @return 开箱机会
*/
public TtBoxOpenChance selectTtBoxOpenChanceByOrnamentId(Integer ornamentId);
/**
* 查询开箱机会列表
*
* @param ttBoxOpenChance 开箱机会
* @return 开箱机会集合
*/
public List<TtBoxOpenChance> selectTtBoxOpenChanceList(TtBoxOpenChance ttBoxOpenChance);
/**
* 新增开箱机会
*
* @param ttBoxOpenChance 开箱机会
* @return 结果
*/
public int insertTtBoxOpenChance(TtBoxOpenChance ttBoxOpenChance);
/**
* 修改开箱机会
*
* @param ttBoxOpenChance 开箱机会
* @return 结果
*/
public int updateTtBoxOpenChance(TtBoxOpenChance ttBoxOpenChance);
/**
* 删除开箱机会
*
* @param ornamentId 开箱机会主键
* @return 结果
*/
public int deleteTtBoxOpenChanceByOrnamentId(Integer ornamentId);
/**
* 批量删除开箱机会
*
* @param ornamentIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteTtBoxOpenChanceByOrnamentIds(Integer[] ornamentIds);
}

View File

@@ -0,0 +1,24 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtBoxOrnaments;
import com.ruoyi.domain.vo.TtBoxOrnamentsDataVO;
import com.ruoyi.domain.vo.upgrade.SimpleOrnamentVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface TtBoxOrnamentsMapper extends BaseMapper<TtBoxOrnaments> {
List<Integer> selectBoxIdList();
List<TtBoxOrnamentsDataVO> selectTtBoxOrnamentsList(Integer boxId);
List<TtBoxOrnamentsDataVO> ornametBelongbox(Integer integer);
List<SimpleOrnamentVO> simpleBoxDetail(Integer boxId);
List<Long> allOrnId(@Param("boxId") Integer boxId);
}

View File

@@ -0,0 +1,71 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.dto.boxRecords.TtBoxRecordsNum;
import com.ruoyi.domain.dto.boxRecords.queryCondition;
import com.ruoyi.domain.dto.packSack.DecomposeLogCondition;
import com.ruoyi.domain.dto.roll.GetRollOpenPrizeParam;
import com.ruoyi.domain.entity.TtBoxRecords;
import com.ruoyi.domain.other.TtBoxRecordsBody;
import com.ruoyi.domain.other.TtBoxUserIdPrice;
import com.ruoyi.domain.vo.TtBoxRecordsDataVO;
import com.ruoyi.domain.vo.TtUserPackSackDataVO;
import com.ruoyi.domain.vo.boxRecords.TtBoxRecordsVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
@Mapper
public interface TtBoxRecordsMapper extends BaseMapper<TtBoxRecords> {
List<TtBoxRecordsDataVO> selectBoxRecordsList(TtBoxRecordsBody ttBoxRecordsBody);
List<TtBoxRecords> selectBoxRecordsByDate(@Param("boxId") Integer boxId, @Param("formattedDate") String formattedDate);
List<TtBoxRecordsNum> selectBoxRecordsByOrnamentIds(@Param("boxId") Integer boxId, @Param("ornamentIds") List<Long> ornamentIds, @Param("beginTime") String beginTime);
List<TtBoxRecordsDataVO> decomposeLog(DecomposeLogCondition param);
List<Integer> myOwnFights(@Param("playerId") Integer playerId);
List<TtBoxRecordsVO> byCondition(@Param("userId") Integer userId,
@Param("limit") Integer limit,
@Param("size") Integer size,
@Param("orderByFie") Integer orderByFie,
@Param("boxRecordId") Long boxRecordId,
@Param("boxId") Integer boxId,
@Param("userType") String userType,
@Param("source") List<Integer> source,
@Param("status") List<Integer> status,
@Param("ornamentPriceMin") BigDecimal ornamentPriceMin,
@Param("ornamentPriceMax") BigDecimal ornamentPriceMax,
@Param("ornamentLevelIds") List<Integer> ornamentLevelIds
);
List<TtBoxRecordsVO> tenTopQuery(
@Param("limit") Integer limit,
@Param("size") Integer size,
@Param("source") List<Integer> source,
@Param("status") List<Integer> status
);
List<TtUserPackSackDataVO> propRankOfDay(@Param("beginT") String beginT,
@Param("endT") String endT,
@Param("sources") Integer[] sources,
@Param("number") Integer number);
List<TtBoxRecordsVO> rollOpenPrize(GetRollOpenPrizeParam param);
Integer checkDeliveryAble(@Param("packSackIds") List<Long> packSackIds);
Integer checkAllDeliveryAble(@Param("userId") Integer userId);
/**
* 汰换后的状态更新
*/
int updateStatusByIds(@Param("list") List<Long> list, @Param("status") String status);
List<TtBoxUserIdPrice> boxUserIdPrice(@Param("userIds") List<Integer> userIds, @Param("startDate") String startDate, @Param("endDate") String endDate);
}

View File

@@ -0,0 +1,10 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.box.TtBoxThirdExplosiveUser;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtBoxThirdExplosiveUserMapper extends BaseMapper<TtBoxThirdExplosiveUser> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtBoxType;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtBoxTypeMapper extends BaseMapper<TtBoxType> {
}

View File

@@ -0,0 +1,23 @@
package com.ruoyi.admin.mapper;
import com.ruoyi.domain.other.TtCompRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface TtCompRecordMapper {
public TtCompRecord selectTtCompRecord(
@Param("userId") Integer userId,
@Param("boxId") Integer boxId
);
public int insertTtCompRecord(TtCompRecord ttCompRecord);
public int updateTtCompRecord(TtCompRecord ttCompRecord);
public int deleteTtCompRecord(
@Param("userId") Integer userId,
@Param("boxId") Integer boxId
);
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtContent;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtContentMapper extends BaseMapper<TtContent> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtContentType;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtContentTypeMapper extends BaseMapper<TtContentType> {
}

View File

@@ -0,0 +1,28 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.dto.userRecord.DeliveryRecordsConfition;
import com.ruoyi.domain.entity.delivery.TtDeliveryRecord;
import com.ruoyi.domain.other.TtDeliveryApplyBody;
import com.ruoyi.domain.vo.DeliveryApplyVO;
import com.ruoyi.domain.other.TtDeliveryRecordBody;
import com.ruoyi.domain.vo.TtDeliveryRecordDataVO;
import com.ruoyi.domain.vo.delivery.DeliveryRecordVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface TtDeliveryRecordMapper extends BaseMapper<TtDeliveryRecord> {
List<DeliveryApplyVO> getDeliveryApplyList(TtDeliveryApplyBody deliveryApplyBody);
List<TtDeliveryRecordDataVO> getDeliveryRecordList(TtDeliveryRecordBody deliveryRecordBody);
List<TtDeliveryRecordDataVO> getDeliveryRecordByUserList(TtDeliveryRecordBody deliveryRecordBody);
List<DeliveryRecordVO> byCondition(@Param("statusList") List<Integer> statusList,
@Param("uidList") List<Integer> uidList,
@Param("limit") Integer limit,
@Param("size") Integer size);
}

View File

@@ -0,0 +1,17 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.dto.exponent.ExponentOpenBoxVo;
import com.ruoyi.domain.entity.exponent.TtExponent;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface TtExponentMapper extends BaseMapper<TtExponent> {
/**
* 获取开箱记录
*/
List<ExponentOpenBoxVo> exponentOpenBox(@Param("userId") Integer userId);
}

View File

@@ -0,0 +1,10 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.exponent.TtExponentUserBox;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtExponentUserBoxMapper extends BaseMapper<TtExponentUserBox> {
}

View File

@@ -0,0 +1,10 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.exponent.TtExponentUser;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtExponentUserMapper extends BaseMapper<TtExponentUser> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.fight.TtFight;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtFightMapper extends BaseMapper<TtFight> {
}

View File

@@ -0,0 +1,63 @@
package com.ruoyi.admin.mapper;
import java.util.List;
import com.ruoyi.domain.other.TtFightRankingReward;
/**
* 对战奖励金额Mapper接口
*
* @author ruoyi
* @date 2024-07-04
*/
public interface TtFightRankingRewardMapper
{
/**
* 查询对战奖励金额
*
* @param id 对战奖励金额主键
* @return 对战奖励金额
*/
public TtFightRankingReward selectTtFightRankingRewardById(Integer id);
/**
* 查询对战奖励金额列表
*
* @param ttFightRankingReward 对战奖励金额
* @return 对战奖励金额集合
*/
public List<TtFightRankingReward> selectTtFightRankingRewardList(TtFightRankingReward ttFightRankingReward);
/**
* 新增对战奖励金额
*
* @param ttFightRankingReward 对战奖励金额
* @return 结果
*/
public int insertTtFightRankingReward(TtFightRankingReward ttFightRankingReward);
/**
* 修改对战奖励金额
*
* @param ttFightRankingReward 对战奖励金额
* @return 结果
*/
public int updateTtFightRankingReward(TtFightRankingReward ttFightRankingReward);
/**
* 删除对战奖励金额
*
* @param id 对战奖励金额主键
* @return 结果
*/
public int deleteTtFightRankingRewardById(Integer id);
/**
* 批量删除对战奖励金额
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteTtFightRankingRewardByIds(Integer[] ids);
public void truncateRankingReward();
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtFightResult;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtFightResultMapper extends BaseMapper<TtFightResult> {
}

View File

@@ -0,0 +1,13 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtFightUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface TtFightUserMapper extends BaseMapper<TtFightUser> {
List<Integer> myOwnFights(@Param("playerId") Integer playerId);
}

View File

@@ -0,0 +1,68 @@
package com.ruoyi.admin.mapper;
import com.ruoyi.domain.other.TtFirstRecharge;
import java.math.BigDecimal;
import java.util.List;
/**
* 首充赠送Mapper接口
*
* @author ruoyi
* @date 2024-06-21
*/
public interface TtFirstRechargeMapper
{
/**
* 查询首充赠送
*
* @param id 首充赠送主键
* @return 首充赠送
*/
public TtFirstRecharge selectTtFirstRechargeById(Integer id);
/**
* 查询首充赠送列表
*
* @param ttFirstRecharge 首充赠送
* @return 首充赠送集合
*/
public List<TtFirstRecharge> selectTtFirstRechargeList(TtFirstRecharge ttFirstRecharge);
/**
* 新增首充赠送
*
* @param ttFirstRecharge 首充赠送
* @return 结果
*/
public int insertTtFirstRecharge(TtFirstRecharge ttFirstRecharge);
/**
* 修改首充赠送
*
* @param ttFirstRecharge 首充赠送
* @return 结果
*/
public int updateTtFirstRecharge(TtFirstRecharge ttFirstRecharge);
/**
* 删除首充赠送
*
* @param id 首充赠送主键
* @return 结果
*/
public int deleteTtFirstRechargeById(Integer id);
/**
* 批量删除首充赠送
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteTtFirstRechargeByIds(Integer[] ids);
/**
* 查询赠送比例
*/
public BigDecimal selectRatioByMinAmount(BigDecimal minAmount);
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtMessage;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtMessageMapper extends BaseMapper<TtMessage> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtMessageSend;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtMessageSendMapper extends BaseMapper<TtMessageSend> {
}

View File

@@ -0,0 +1,32 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.dto.userRecord.OrderCondition;
import com.ruoyi.domain.entity.TtOrder;
import com.ruoyi.domain.vo.order.TtOrderVO;
import com.ruoyi.domain.vo.sys.SimpleTtUserVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.sql.Timestamp;
import java.util.List;
@Mapper
public interface TtOrderMapper extends BaseMapper<TtOrder> {
List<TtOrderVO> byCondition(OrderCondition param);
List<SimpleTtUserVO> batchRechargeTotal(@Param("userIdList") List<Integer> userIdList,
@Param("beginTime") String beginTime,
@Param("endTime") String endTime,
@Param("orderByType") Integer orderbyType,
@Param("limit") Integer limit,
@Param("size") Integer size);
SimpleTtUserVO rechargeTotalOfBoss(
@Param("employeeId") Integer employeeId,
@Param("beginTime") Timestamp beginTime,
@Param("endTime") String endTime,
@Param("orderType") Integer orderType,
@Param("limit") int limit,
@Param("size") Integer size);
}

View File

@@ -0,0 +1,43 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.domain.dto.queryCondition.OrnamentCondition;
import com.ruoyi.domain.entity.TtOrnament;
import com.ruoyi.domain.entity.TtOrnamentsYY;
import com.ruoyi.domain.vo.WebsitePropertyDataVO;
import com.ruoyi.domain.vo.upgrade.SimpleOrnamentVO;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface TtOrnamentMapper extends BaseMapper<TtOrnament> {
@Select("SELECT * FROM tt_ornament WHERE id = #{id}")
TtOrnament selectOrnamentById(@Param("id") Long id);
List<String> selectOrnamentsItemIdList();
List<WebsitePropertyDataVO> list();
List<SimpleOrnamentVO> simpleOrnamentInfo(@Param("idList") List<Long> idList);
List<SimpleOrnamentVO> byCondition(OrnamentCondition condition);
Integer countByCondition(OrnamentCondition condition);
List<Long> selectOrnamentsIdList();
List<String> selectOrnamentsMarketHashNameList();
int updateWebsiteProperty(WebsitePropertyDataVO websitePropertyDataVO);
int deleteWebsitePropertyByIds(Integer[] ids);
//根据id列表批量查询饰品
List<TtOrnament> selectByOrnamentIds(@Param("idList") List<Long> ornamentIdList);
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtOrnamentsLevel;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtOrnamentsLevelMapper extends BaseMapper<TtOrnamentsLevel> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.TtOrnamentsYY;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtOrnamentsYYMapper extends BaseMapper<TtOrnamentsYY> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.TtPromotionLevel;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtPromotionLevelMapper extends BaseMapper<TtPromotionLevel> {
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.TtPromotionRecord;
import com.ruoyi.domain.vo.PromotionDataVO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtPromotionRecordMapper extends BaseMapper<TtPromotionRecord> {
PromotionDataVO statisticsPromotionData(Integer userId);
}

View File

@@ -0,0 +1,19 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.sys.TtPromotionUpdate;
import com.ruoyi.domain.vo.TeamDetailVO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.sql.Timestamp;
import java.util.List;
import java.util.Map;
@Mapper
public interface TtPromotionUpdateMapper extends BaseMapper<TtPromotionUpdate> {
// @MapKey("employee_id")
List<TeamDetailVO> latelyUpdate(@Param("allEmployeesId") List<Integer> allEmployeesId);
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtRechargeCard;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtRechargeCardMapper extends BaseMapper<TtRechargeCard> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.TtRechargeConfig;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtRechargeConfigMapper extends BaseMapper<TtRechargeConfig> {
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.entity.TtRechargeProd;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TtRechargeProdMapper extends BaseMapper<TtRechargeProd> {
}

View File

@@ -0,0 +1,66 @@
package com.ruoyi.admin.mapper;
import com.ruoyi.domain.other.TtRechargeRankingReward;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 充值奖励金额Mapper接口
*
* @author ruoyi
* @date 2024-07-04
*/
@Mapper
public interface TtRechargeRankingRewardMapper
{
/**
* 查询充值奖励金额
*
* @param id 充值奖励金额主键
* @return 充值奖励金额
*/
public TtRechargeRankingReward selectTtRechargeRankingRewardById(Integer id);
/**
* 查询充值奖励金额列表
*
* @param ttRechargeRankingReward 充值奖励金额
* @return 充值奖励金额集合
*/
public List<TtRechargeRankingReward> selectTtRechargeRankingRewardList(TtRechargeRankingReward ttRechargeRankingReward);
/**
* 新增充值奖励金额
*
* @param ttRechargeRankingReward 充值奖励金额
* @return 结果
*/
public int insertTtRechargeRankingReward(TtRechargeRankingReward ttRechargeRankingReward);
/**
* 修改充值奖励金额
*
* @param ttRechargeRankingReward 充值奖励金额
* @return 结果
*/
public int updateTtRechargeRankingReward(TtRechargeRankingReward ttRechargeRankingReward);
/**
* 删除充值奖励金额
*
* @param id 充值奖励金额主键
* @return 结果
*/
public int deleteTtRechargeRankingRewardById(Integer id);
/**
* 批量删除充值奖励金额
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteTtRechargeRankingRewardByIds(Integer[] ids);
public void truncateRankingReward();
}

View File

@@ -0,0 +1,24 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtRechargeRecord;
import com.ruoyi.domain.other.TtUidTotalRechargeRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
@Mapper
public interface TtRechargeRecordMapper extends BaseMapper<TtRechargeRecord> {
List<Integer> getLastHourRechargeUserIds(BigDecimal minRecharge);
List<Integer> getLastDayRechargeUserIds(BigDecimal minRecharge);
List<Integer> getLastWeekRechargeUserIds(BigDecimal minRecharge);
List<Integer> getLastMonthRechargeUserIds(BigDecimal minRecharge);
List<TtUidTotalRechargeRecord> getTotalPriceByUserIds(@Param("userIds") List<Integer> userIds, @Param("startDate") String startDate, @Param("endDate") String endDate);
}

View File

@@ -0,0 +1,62 @@
package com.ruoyi.admin.mapper;
import com.ruoyi.domain.other.TtRedPack;
import java.util.List;
/**
* 【请填写功能名称】Mapper接口
*
* @author ruoyi
* @date 2023-06-29
*/
public interface TtRedPackMapper
{
/**
* 查询【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 【请填写功能名称】
*/
public TtRedPack selectTtRedPackById(Long id);
/**
* 查询【请填写功能名称】列表
*
* @param ttRedPack 【请填写功能名称】
* @return 【请填写功能名称】集合
*/
public List<TtRedPack> selectTtRedPackList(TtRedPack ttRedPack);
/**
* 新增【请填写功能名称】
*
* @param ttRedPack 【请填写功能名称】
* @return 结果
*/
public int insertTtRedPack(TtRedPack ttRedPack);
/**
* 修改【请填写功能名称】
*
* @param ttRedPack 【请填写功能名称】
* @return 结果
*/
public int updateTtRedPack(TtRedPack ttRedPack);
/**
* 删除【请填写功能名称】
*
* @param id 【请填写功能名称】主键
* @return 结果
*/
public int deleteTtRedPackById(Long id);
/**
* 批量删除【请填写功能名称】
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteTtRedPackByIds(Long[] ids);
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtRedPacket;
import com.ruoyi.domain.other.TtRedPacketBody;
import com.ruoyi.domain.vo.TtRedPacketDataVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface TtRedPacketMapper extends BaseMapper<TtRedPacket> {
List<TtRedPacketDataVO> queryList(TtRedPacketBody ttRedPacketBody);
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.other.TtRedPacketRecord;
import com.ruoyi.domain.other.TtRedPacketRecordBody;
import com.ruoyi.domain.vo.TtRedPacketRecordDataVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface TtRedPacketRecordMapper extends BaseMapper<TtRedPacketRecord> {
List<TtRedPacketRecordDataVO> queryList(TtRedPacketRecordBody ttRedPacketRecordBody);
}

Some files were not shown because too many files have changed in this diff Show More