Browse Source

白名单

master
nili 3 months ago
parent
commit
18dbf61953
  1. 18
      game-dao/src/main/java/awesome/group/game/dao/bean/MatrixWhiteUser.java
  2. 10
      game-dao/src/main/java/awesome/group/game/dao/mapper/MatrixWhiteUserMapper.java
  3. 30
      game-service/src/main/java/awesome/group/game/service/bo/matrix/WhiteUserBo.java
  4. 13
      game-service/src/main/java/awesome/group/game/service/citrus/AdvRecordService.java
  5. 54
      game-service/src/main/java/awesome/group/game/service/matrix/SuperAdminService.java
  6. 13
      game-web/src/main/java/awesome/group/game/web/rest/matrix/SuperAdminController.java

18
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;
}

10
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<MatrixWhiteUser> {
@Select("select * from matrix_white_user where user_id = #{userId}")
MatrixWhiteUser queryByUserId(Integer userId);
}

30
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();
}
}

13
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;

54
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<MatrixEvilApp> evilAppList() {
List<MatrixEvilApp> app = evilAppMapper.selectList(null);
Collections.reverse(app);
@ -26,6 +47,39 @@ public class SuperAdminService {
} else {
evilAppMapper.insert(app);
}
}
public List<WhiteUserBo> whiteUserList() {
List<MatrixWhiteUser> list = whiteUserMapper.selectList(null);
if (CollectionUtils.isEmpty(list)) {
return null;
}
List<Integer> userIds = list.stream().map(MatrixWhiteUser::getUserId).toList();
List<MatrixUser> users = userMapper.selectBatchIds(userIds);
List<Integer> appIds = users.stream().map(MatrixUser::getAppId).toList();
List<MatrixApp> apps = appMapper.selectBatchIds(appIds);
Map<Integer, MatrixUser> uMap = users.stream().collect(Collectors.toMap(MatrixUser::getId, x -> x));
Map<Integer, MatrixApp> aMap = apps.stream().collect(Collectors.toMap(MatrixApp::getId, x -> x));
List<WhiteUserBo> 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);
}
}
}

13
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<Void> saveEvilApp(@RequestBody MatrixEvilApp evilApp) {
superAdminService.saveEvilApp(evilApp);
return new R<>(null);
}
@PostMapping("/saveWhiteUser")
@RestApi
public R<Void> saveWhiteUser(@RequestParam Integer userId, @RequestParam(defaultValue = "0") Integer status) {
superAdminService.saveWhiteUser(userId, status);
return new R<>(null);
}
@GetMapping("/whiteUserList")
@RestApi
public R<List<WhiteUserBo>> whiteUserList() {
return new R<>(superAdminService.whiteUserList());
}
}

Loading…
Cancel
Save