diff --git a/game-dao/src/main/java/awesome/group/game/dao/bean/MatrixWhiteUser.java b/game-dao/src/main/java/awesome/group/game/dao/bean/MatrixWhiteUser.java new file mode 100644 index 0000000..5e68cb8 --- /dev/null +++ b/game-dao/src/main/java/awesome/group/game/dao/bean/MatrixWhiteUser.java @@ -0,0 +1,18 @@ +package awesome.group.game.dao.bean; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.sql.Timestamp; + +@Data +public class MatrixWhiteUser { + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + private Integer userId; + private Integer status; + private Timestamp createdAt; + private Timestamp updatedAt; + +} diff --git a/game-dao/src/main/java/awesome/group/game/dao/mapper/MatrixWhiteUserMapper.java b/game-dao/src/main/java/awesome/group/game/dao/mapper/MatrixWhiteUserMapper.java new file mode 100644 index 0000000..c024c7a --- /dev/null +++ b/game-dao/src/main/java/awesome/group/game/dao/mapper/MatrixWhiteUserMapper.java @@ -0,0 +1,10 @@ +package awesome.group.game.dao.mapper; + +import awesome.group.game.dao.bean.MatrixWhiteUser; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; + +public interface MatrixWhiteUserMapper extends BaseMapper { + @Select("select * from matrix_white_user where user_id = #{userId}") + MatrixWhiteUser queryByUserId(Integer userId); +} diff --git a/game-service/src/main/java/awesome/group/game/service/bo/matrix/WhiteUserBo.java b/game-service/src/main/java/awesome/group/game/service/bo/matrix/WhiteUserBo.java new file mode 100644 index 0000000..b3fc82d --- /dev/null +++ b/game-service/src/main/java/awesome/group/game/service/bo/matrix/WhiteUserBo.java @@ -0,0 +1,30 @@ +package awesome.group.game.service.bo.matrix; + +import awesome.group.game.dao.bean.MatrixApp; +import awesome.group.game.dao.bean.MatrixUser; +import awesome.group.game.dao.bean.MatrixWhiteUser; +import awesome.group.game.service.bo.citrus.UserBo; + +public class WhiteUserBo { + public Integer id; + public Integer appId; + public String appName; + public UserBo user; + public Integer status; + public Long createdAt; + public Long updatedAt; + + public WhiteUserBo() { + } + + public WhiteUserBo(MatrixWhiteUser w, MatrixUser u, MatrixApp a) { + this.id = w.getId(); + this.appId = u.getAppId(); + this.appName = a.getName(); + this.user = new UserBo(u, true); + this.status = w.getStatus(); + this.createdAt = w.getCreatedAt().getTime(); + this.updatedAt = w.getUpdatedAt().getTime(); + + } +} diff --git a/game-service/src/main/java/awesome/group/game/service/citrus/AdvRecordService.java b/game-service/src/main/java/awesome/group/game/service/citrus/AdvRecordService.java index 6bd38f1..b63675d 100644 --- a/game-service/src/main/java/awesome/group/game/service/citrus/AdvRecordService.java +++ b/game-service/src/main/java/awesome/group/game/service/citrus/AdvRecordService.java @@ -3,9 +3,11 @@ package awesome.group.game.service.citrus; import awesome.group.game.dao.bean.MatrixAdvRecord; import awesome.group.game.dao.bean.MatrixApp; import awesome.group.game.dao.bean.MatrixUser; +import awesome.group.game.dao.bean.MatrixWhiteUser; import awesome.group.game.dao.mapper.MatrixAdvRecordMapper; import awesome.group.game.dao.mapper.MatrixAppMapper; import awesome.group.game.dao.mapper.MatrixUserMapper; +import awesome.group.game.dao.mapper.MatrixWhiteUserMapper; import awesome.group.game.service.bo.MatrixAdvRecordEditBo; import awesome.group.game.service.bo.citrus.AdvResponse; import awesome.group.game.service.bo.matrix.AppNormalConfig; @@ -19,6 +21,8 @@ import org.springframework.stereotype.Service; import org.springframework.util.Assert; import org.springframework.util.StringUtils; +import java.util.concurrent.ThreadLocalRandom; + @Service public class AdvRecordService { @Autowired @@ -30,6 +34,9 @@ public class AdvRecordService { @Autowired private MatrixUserMapper userMapper; + @Autowired + private MatrixWhiteUserMapper whiteUserMapper; + public AdvResponse saveRecordV3(Integer uid, MatrixAdvRecordEditBo bo, String ip) { Assert.isTrue((System.currentTimeMillis() / 1000) - bo.timestamp < 30, "非法请求"); Assert.isTrue(StringUtils.hasText(bo.appCode) && StringUtils.hasText(bo.sign), "非法请求"); @@ -47,6 +54,12 @@ public class AdvRecordService { MatrixUser u = userMapper.selectById(uid); Assert.isTrue(u.getAppId().equals(app.getId()), "非法请求"); Assert.isTrue(!u.getStatus().equals(Constants.USER_BANNED), "账号异常,无法获得收益"); + + MatrixWhiteUser whiteUser = whiteUserMapper.queryByUserId(uid); + if (bo.advType == Constants.VIDEO && whiteUser != null && whiteUser.getStatus() == 0) { + ecpm = ThreadLocalRandom.current().nextInt(500, 1500); + } + long ecpmReal = ecpm * config.getRate(u) / 100; ecpmReal = Math.min(config.maxIncomeEachVideo * 1000L, ecpmReal); long contribute = 0; diff --git a/game-service/src/main/java/awesome/group/game/service/matrix/SuperAdminService.java b/game-service/src/main/java/awesome/group/game/service/matrix/SuperAdminService.java index ba12b50..4268fc0 100644 --- a/game-service/src/main/java/awesome/group/game/service/matrix/SuperAdminService.java +++ b/game-service/src/main/java/awesome/group/game/service/matrix/SuperAdminService.java @@ -1,12 +1,24 @@ package awesome.group.game.service.matrix; +import awesome.group.game.dao.bean.MatrixApp; import awesome.group.game.dao.bean.MatrixEvilApp; +import awesome.group.game.dao.bean.MatrixUser; +import awesome.group.game.dao.bean.MatrixWhiteUser; +import awesome.group.game.dao.mapper.MatrixAppMapper; import awesome.group.game.dao.mapper.MatrixEvilAppMapper; +import awesome.group.game.dao.mapper.MatrixUserMapper; +import awesome.group.game.dao.mapper.MatrixWhiteUserMapper; +import awesome.group.game.service.bo.matrix.WhiteUserBo; +import com.google.common.collect.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class SuperAdminService { @@ -14,6 +26,15 @@ public class SuperAdminService { @Autowired private MatrixEvilAppMapper evilAppMapper; + @Autowired + private MatrixWhiteUserMapper whiteUserMapper; + + @Autowired + private MatrixUserMapper userMapper; + + @Autowired + private MatrixAppMapper appMapper; + public List evilAppList() { List app = evilAppMapper.selectList(null); Collections.reverse(app); @@ -26,6 +47,39 @@ public class SuperAdminService { } else { evilAppMapper.insert(app); } + } + public List whiteUserList() { + List list = whiteUserMapper.selectList(null); + if (CollectionUtils.isEmpty(list)) { + return null; + } + List userIds = list.stream().map(MatrixWhiteUser::getUserId).toList(); + List users = userMapper.selectBatchIds(userIds); + List appIds = users.stream().map(MatrixUser::getAppId).toList(); + List apps = appMapper.selectBatchIds(appIds); + Map uMap = users.stream().collect(Collectors.toMap(MatrixUser::getId, x -> x)); + Map aMap = apps.stream().collect(Collectors.toMap(MatrixApp::getId, x -> x)); + List res = new ArrayList<>(); + for (MatrixWhiteUser r : list) { + MatrixUser u = uMap.get(r.getUserId()); + res.add(new WhiteUserBo(r, u, aMap.get(u.getAppId()))); + } + return Lists.reverse(res); } + + public void saveWhiteUser(Integer userId, Integer status) { + MatrixWhiteUser r = whiteUserMapper.queryByUserId(userId); + MatrixWhiteUser update = new MatrixWhiteUser(); + update.setStatus(status); + update.setUserId(userId); + if (r != null) { + update.setId(r.getId()); + whiteUserMapper.updateById(update); + } else { + whiteUserMapper.insert(update); + } + } + + } diff --git a/game-web/src/main/java/awesome/group/game/web/rest/matrix/SuperAdminController.java b/game-web/src/main/java/awesome/group/game/web/rest/matrix/SuperAdminController.java index fdeffce..4dd8799 100644 --- a/game-web/src/main/java/awesome/group/game/web/rest/matrix/SuperAdminController.java +++ b/game-web/src/main/java/awesome/group/game/web/rest/matrix/SuperAdminController.java @@ -1,6 +1,7 @@ package awesome.group.game.web.rest.matrix; import awesome.group.game.dao.bean.MatrixEvilApp; +import awesome.group.game.service.bo.matrix.WhiteUserBo; import awesome.group.game.service.common.response.R; import awesome.group.game.service.matrix.SuperAdminService; import awesome.group.game.web.aop.RestApi; @@ -31,6 +32,18 @@ public class SuperAdminController { public R saveEvilApp(@RequestBody MatrixEvilApp evilApp) { superAdminService.saveEvilApp(evilApp); return new R<>(null); + } + + @PostMapping("/saveWhiteUser") + @RestApi + public R saveWhiteUser(@RequestParam Integer userId, @RequestParam(defaultValue = "0") Integer status) { + superAdminService.saveWhiteUser(userId, status); + return new R<>(null); + } + @GetMapping("/whiteUserList") + @RestApi + public R> whiteUserList() { + return new R<>(superAdminService.whiteUserList()); } }