Browse Source

saveAdvRecordV3调整 & 不登录获取app基础信息

master
nili 4 months ago
parent
commit
f66da39ea6
  1. 27
      game-service/src/main/java/awesome/group/game/service/bo/MatrixAdvRecordEditBo.java
  2. 16
      game-service/src/main/java/awesome/group/game/service/bo/citrus/AdvResponse.java
  3. 23
      game-service/src/main/java/awesome/group/game/service/bo/citrus/AppBasicInfo.java
  4. 2
      game-service/src/main/java/awesome/group/game/service/bo/citrus/AppCashConfig.java
  5. 9
      game-service/src/main/java/awesome/group/game/service/citrus/AdvRecordService.java
  6. 5
      game-service/src/main/java/awesome/group/game/service/citrus/CitrusAppService.java
  7. 1
      game-web/src/main/java/awesome/group/game/web/filter/CitrusLoginFilter.java
  8. 15
      game-web/src/main/java/awesome/group/game/web/rest/citrus/CitrusAppController.java
  9. 11
      game-web/src/main/java/awesome/group/game/web/rest/citrus/OpenController.java
  10. 5
      game-web/src/main/java/awesome/group/game/web/rest/citrus/UserController.java

27
game-service/src/main/java/awesome/group/game/service/bo/MatrixAdvRecordEditBo.java

@ -17,6 +17,8 @@ public class MatrixAdvRecordEditBo {
public String sign;
public long timestamp;//时间戳,秒
public MatrixAdvRecordEditBo() {
}
@ -43,4 +45,29 @@ public class MatrixAdvRecordEditBo {
str += "secret=" + secret;
return str;
}
public String getSignStrV3(String secret) {
Map<String, Object> map = new HashMap<>();
map.put("deviceId", deviceId);
map.put("appCode", appCode);
map.put("platform", platform);
map.put("advType", advType);
map.put("ecpm", ecpm);
map.put("deviceBrand", deviceBrand);
map.put("deviceName", deviceName);
map.put("advId", advId);
map.put("timestamp", timestamp);
List<String> keys = map.keySet().stream().sorted().toList();
String str = "";
for (String k : keys) {
if (map.get(k) == null) {
continue;
}
str += k + "=" + map.get(k) + "&";
}
// 不同批次 key 会变化
str += "secret=" + secret;
return str;
}
}

16
game-service/src/main/java/awesome/group/game/service/bo/citrus/AdvResponse.java

@ -0,0 +1,16 @@
package awesome.group.game.service.bo.citrus;
import awesome.group.game.dao.bean.MatrixUser;
public class AdvResponse {
public long incrCoin;//本次获得的金币
public long goldCoin;//可提现金币总数
public AdvResponse() {
}
public AdvResponse(long incrCoin, MatrixUser u) {
this.incrCoin = incrCoin;
this.goldCoin = u.getIncome() - (u.getMoney() * 1000);
}
}

23
game-service/src/main/java/awesome/group/game/service/bo/citrus/AppBasicInfo.java

@ -0,0 +1,23 @@
package awesome.group.game.service.bo.citrus;
import awesome.group.game.dao.bean.MatrixApp;
public class AppBasicInfo extends AppCashConfig{
public String name;
public String code;
public String img;
public String url;
public Integer version;
public AppBasicInfo() {
}
public AppBasicInfo(MatrixApp app) {
super(app);
this.name = app.getName();
this.code = app.getCode();
this.img = app.getImg();
this.url = app.getUrl();
this.version = app.getVersion();
}
}

2
game-service/src/main/java/awesome/group/game/service/bo/citrus/AppCashConfig.java

@ -23,7 +23,7 @@ public class AppCashConfig {
this.moneyLadder = gson.fromJson(app.getMoneyLadder(), new TypeToken<List<Integer>>() {
}.getType());
} else {
moneyLadder = Arrays.asList(30, 50, 100, 10000, 30000, 50000);
moneyLadder = Arrays.asList(30, 50, 100, 1000, 3000, 5000);
}
if (app.getNoAuditMoney() != null) {
this.noAuditMoney = app.getNoAuditMoney();

9
game-service/src/main/java/awesome/group/game/service/citrus/AdvRecordService.java

@ -7,6 +7,7 @@ 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.service.bo.MatrixAdvRecordEditBo;
import awesome.group.game.service.bo.citrus.AdvResponse;
import awesome.group.game.service.bo.matrix.AppNormalConfig;
import awesome.group.game.service.common.exception.PaganiException;
import awesome.group.game.service.common.exception.PaganiExceptionCode;
@ -28,12 +29,13 @@ public class AdvRecordService {
@Autowired
private MatrixUserMapper userMapper;
public long saveRecordV3(Integer uid, MatrixAdvRecordEditBo bo, String ip) {
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), "非法请求");
MatrixApp app = appMapper.queryByCode(bo.appCode);
Assert.isTrue(app != null, "非法请求");
String secret = app.getSecret();
String str = bo.getSignStr(secret);
String str = bo.getSignStrV3(secret);
if (!bo.sign.equalsIgnoreCase(EncryptUtil.sha1(str))) {
L.trace("signError", "sign:" + bo.sign + ",str:" + str + ",secret:" + secret);
throw new PaganiException(PaganiExceptionCode.GENERAL_ERROR, "非法请求");
@ -61,7 +63,8 @@ public class AdvRecordService {
mapper.insert(record);
userMapper.incIncome(uid, ecpmReal);
return ecpmReal;
MatrixUser user = userMapper.selectById(uid);
return new AdvResponse(ecpmReal, user);
}
}

5
game-service/src/main/java/awesome/group/game/service/citrus/CitrusAppService.java

@ -2,6 +2,7 @@ package awesome.group.game.service.citrus;
import awesome.group.game.dao.bean.MatrixApp;
import awesome.group.game.dao.mapper.MatrixAppMapper;
import awesome.group.game.service.bo.citrus.AppBasicInfo;
import awesome.group.game.service.bo.citrus.AppCashConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -11,8 +12,8 @@ public class CitrusAppService {
@Autowired
private MatrixAppMapper appMapper;
public AppCashConfig getAppDetail(String appCode) {
public AppBasicInfo getAppDetail(String appCode) {
MatrixApp app = appMapper.queryByCode(appCode);
return new AppCashConfig(app);
return new AppBasicInfo(app);
}
}

1
game-web/src/main/java/awesome/group/game/web/filter/CitrusLoginFilter.java

@ -35,6 +35,7 @@ public class CitrusLoginFilter implements Filter {
String token = httpRequest.getHeader("Authorization");
List<String> openApi = List.of(
"/api/citrus/register",
"/api/citrus/open",
"/api/citrus/login"
);
boolean pass = false;

15
game-web/src/main/java/awesome/group/game/web/rest/citrus/CitrusAppController.java

@ -1,26 +1,11 @@
package awesome.group.game.web.rest.citrus;
import awesome.group.game.service.bo.citrus.AppCashConfig;
import awesome.group.game.service.citrus.CitrusAppService;
import awesome.group.game.service.common.response.R;
import awesome.group.game.web.aop.RestApi;
import io.swagger.v3.oas.annotations.Hidden;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/citrus/app")
@Hidden
public class CitrusAppController {
@Autowired
private CitrusAppService appService;
@GetMapping("/getDetail")
@RestApi
public R<AppCashConfig> getAppDetail(@RequestParam String appCode) {
return new R<>(appService.getAppDetail(appCode));
}
}

11
game-web/src/main/java/awesome/group/game/web/rest/citrus/OpenController.java

@ -2,8 +2,10 @@ package awesome.group.game.web.rest.citrus;
import awesome.group.game.dao.bean.MatrixUser;
import awesome.group.game.service.SmsService;
import awesome.group.game.service.bo.citrus.AppBasicInfo;
import awesome.group.game.service.bo.citrus.InviteInfo;
import awesome.group.game.service.bo.citrus.LoginReq;
import awesome.group.game.service.citrus.CitrusAppService;
import awesome.group.game.service.citrus.RegisterService;
import awesome.group.game.service.citrus.UserService;
import awesome.group.game.service.common.response.R;
@ -29,6 +31,9 @@ public class OpenController {
@Autowired
private SmsService smsService;
@Autowired
private CitrusAppService appService;
@PostMapping("/register/sendCode")
@RestApi
public R<Void> sendCode(@RequestParam String mobile, @RequestParam String scene) {
@ -70,4 +75,10 @@ public class OpenController {
return new R<>(R.CODE_SUCCESS, "ok", token);
}
@GetMapping("/open/getAppDetail")
@RestApi
public R<AppBasicInfo> getAppDetail(@RequestParam String appCode) {
return new R<>(appService.getAppDetail(appCode));
}
}

5
game-web/src/main/java/awesome/group/game/web/rest/citrus/UserController.java

@ -1,6 +1,7 @@
package awesome.group.game.web.rest.citrus;
import awesome.group.game.service.bo.MatrixAdvRecordEditBo;
import awesome.group.game.service.bo.citrus.AdvResponse;
import awesome.group.game.service.bo.citrus.CashRecord;
import awesome.group.game.service.bo.citrus.UserBo;
import awesome.group.game.service.citrus.AdvRecordService;
@ -59,8 +60,8 @@ public class UserController {
@PostMapping("/saveAdvRecordV3")
@RestApi
public R<Long> saveAdvRecordV3(@RequestBody MatrixAdvRecordEditBo bo) {
Long res = advRecordService.saveRecordV3(RequestContext.getCitrusUid(), bo, RequestContext.getIpAddr(RequestContext.getRequest()));
public R<AdvResponse> saveAdvRecordV3(@RequestBody MatrixAdvRecordEditBo bo) {
AdvResponse res = advRecordService.saveRecordV3(RequestContext.getCitrusUid(), bo, RequestContext.getIpAddr(RequestContext.getRequest()));
return new R<>(res);
}

Loading…
Cancel
Save