|
@@ -14,6 +14,7 @@ import org.springframework.data.domain.Page;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import javax.transaction.Transactional;
|
|
import javax.transaction.Transactional;
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -30,7 +31,7 @@ public class MetaUserPropService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
|
- public MetaRestResult<MetaUserProp> operate(Long userId, Long metaPropId, MetaPropOperationType operationType, int num) {
|
|
|
|
|
|
|
+ public MetaRestResult<MetaUserProp> operate(Long userId, Long metaPropId, MetaPropOperationType operationType, int num, String remark) {
|
|
|
if (Objects.isNull(metaPropId)) {
|
|
if (Objects.isNull(metaPropId)) {
|
|
|
return MetaRestResult.returnError("Illegal parameter : metaPropId can not be null");
|
|
return MetaRestResult.returnError("Illegal parameter : metaPropId can not be null");
|
|
|
}
|
|
}
|
|
@@ -43,12 +44,12 @@ public class MetaUserPropService {
|
|
|
if (num < 1) {
|
|
if (num < 1) {
|
|
|
return MetaRestResult.returnError("道具数量最少为1");
|
|
return MetaRestResult.returnError("道具数量最少为1");
|
|
|
}
|
|
}
|
|
|
- return receive(userId, dbMetaUserProp, metaProp, num);
|
|
|
|
|
|
|
+ return receive(userId, dbMetaUserProp, metaProp, num, remark);
|
|
|
}
|
|
}
|
|
|
if (MetaPropOperationType.CANCEL_USE.equals(operationType)) {
|
|
if (MetaPropOperationType.CANCEL_USE.equals(operationType)) {
|
|
|
- return cancelUse(dbMetaUserProp, metaProp);
|
|
|
|
|
|
|
+ return cancelUse(dbMetaUserProp, metaProp, remark);
|
|
|
}
|
|
}
|
|
|
- return use(dbMetaUserProp, metaProp);
|
|
|
|
|
|
|
+ return use(dbMetaUserProp, metaProp, remark);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -59,7 +60,7 @@ public class MetaUserPropService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
@Transactional
|
|
@Transactional
|
|
|
- public MetaRestResult<MetaUserProp> cancelUse(MetaUserProp metaUserProp, MetaProp metaProp) {
|
|
|
|
|
|
|
+ public MetaRestResult<MetaUserProp> cancelUse(MetaUserProp metaUserProp, MetaProp metaProp, String remark) {
|
|
|
if (Objects.isNull(metaUserProp)) {
|
|
if (Objects.isNull(metaUserProp)) {
|
|
|
return MetaRestResult.returnError("玩家未拥有该道具!");
|
|
return MetaRestResult.returnError("玩家未拥有该道具!");
|
|
|
}
|
|
}
|
|
@@ -67,7 +68,8 @@ public class MetaUserPropService {
|
|
|
return MetaRestResult.returnError("仅限永久道具才能取消使用!");
|
|
return MetaRestResult.returnError("仅限永久道具才能取消使用!");
|
|
|
}
|
|
}
|
|
|
metaUserProp.setUsed(false);
|
|
metaUserProp.setUsed(false);
|
|
|
- metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.CANCEL_USE, 1);
|
|
|
|
|
|
|
+ int num = 1;
|
|
|
|
|
+ metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.CANCEL_USE, num, remark);
|
|
|
return MetaRestResult.returnSuccess("取消使用成功", metaUserPropRepo.save(metaUserProp));
|
|
return MetaRestResult.returnSuccess("取消使用成功", metaUserPropRepo.save(metaUserProp));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -81,7 +83,7 @@ public class MetaUserPropService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
@Transactional
|
|
@Transactional
|
|
|
- public MetaRestResult<MetaUserProp> receive(Long userId, MetaUserProp metaUserProp, MetaProp metaProp, int num) {
|
|
|
|
|
|
|
+ public MetaRestResult<MetaUserProp> receive(Long userId, MetaUserProp metaUserProp, MetaProp metaProp, int num, String remark) {
|
|
|
boolean init = false;
|
|
boolean init = false;
|
|
|
if (Objects.isNull(metaUserProp)) {
|
|
if (Objects.isNull(metaUserProp)) {
|
|
|
metaUserProp = MetaUserProp.create(userId, metaProp, num);
|
|
metaUserProp = MetaUserProp.create(userId, metaProp, num);
|
|
@@ -101,14 +103,14 @@ public class MetaUserPropService {
|
|
|
// 未拥有该道具,领取一个,多余转化为金币
|
|
// 未拥有该道具,领取一个,多余转化为金币
|
|
|
if (init) {
|
|
if (init) {
|
|
|
MetaUserProp save = metaUserPropRepo.save(metaUserProp);
|
|
MetaUserProp save = metaUserPropRepo.save(metaUserProp);
|
|
|
- metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.RECEIVE, 1);
|
|
|
|
|
|
|
+ metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.RECEIVE, 1, remark);
|
|
|
return MetaRestResult.returnSuccess(String.format("永久道具仅限持有一个,多余道具将转化为[%S]个金币!", goldNum), save);
|
|
return MetaRestResult.returnSuccess(String.format("永久道具仅限持有一个,多余道具将转化为[%S]个金币!", goldNum), save);
|
|
|
}
|
|
}
|
|
|
// 已拥有该道具,全部转为道具后返回
|
|
// 已拥有该道具,全部转为道具后返回
|
|
|
return MetaRestResult.returnSuccess(String.format("玩家已拥有该道具,所领取的道具将转化为[%S]个金币!", goldNum));
|
|
return MetaRestResult.returnSuccess(String.format("玩家已拥有该道具,所领取的道具将转化为[%S]个金币!", goldNum));
|
|
|
}
|
|
}
|
|
|
MetaUserProp save = metaUserPropRepo.save(metaUserProp);
|
|
MetaUserProp save = metaUserPropRepo.save(metaUserProp);
|
|
|
- metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.RECEIVE, num);
|
|
|
|
|
|
|
+ metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.RECEIVE, num, remark);
|
|
|
return MetaRestResult.returnSuccess("道具领取成功!", save);
|
|
return MetaRestResult.returnSuccess("道具领取成功!", save);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -121,26 +123,28 @@ public class MetaUserPropService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
@Transactional
|
|
@Transactional
|
|
|
- public MetaRestResult<MetaUserProp> use(MetaUserProp metaUserProp, MetaProp metaProp) {
|
|
|
|
|
|
|
+ public MetaRestResult<MetaUserProp> use(MetaUserProp metaUserProp, MetaProp metaProp, String remark) {
|
|
|
if (Objects.isNull(metaUserProp)) {
|
|
if (Objects.isNull(metaUserProp)) {
|
|
|
return MetaRestResult.returnError("玩家未拥有该道具!");
|
|
return MetaRestResult.returnError("玩家未拥有该道具!");
|
|
|
}
|
|
}
|
|
|
|
|
+ int num = 1;
|
|
|
|
|
+ String msg = String.format("玩家[%S]于[%S]使用道具[%S],数量[%S]", metaUserProp.getUserId(), LocalDateTime.now(), metaProp.getId(), num);
|
|
|
// 永久道具 不对背包做操作,增加一条操作记录
|
|
// 永久道具 不对背包做操作,增加一条操作记录
|
|
|
if (MetaPropUsedType.PERMANENT.equals(metaProp.getUsedType())) {
|
|
if (MetaPropUsedType.PERMANENT.equals(metaProp.getUsedType())) {
|
|
|
metaUserProp.setUsed(true);
|
|
metaUserProp.setUsed(true);
|
|
|
- metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.USE, 1);
|
|
|
|
|
|
|
+ metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.USE, num, msg);
|
|
|
return MetaRestResult.returnSuccess(metaUserPropRepo.save(metaUserProp));
|
|
return MetaRestResult.returnSuccess(metaUserPropRepo.save(metaUserProp));
|
|
|
}
|
|
}
|
|
|
// 数量为1的非永久道具,成功使用后直接删除背包中该道具数据,增加一条操作记录
|
|
// 数量为1的非永久道具,成功使用后直接删除背包中该道具数据,增加一条操作记录
|
|
|
if (1 == metaUserProp.getNum()) {
|
|
if (1 == metaUserProp.getNum()) {
|
|
|
metaUserProp.setNum(0);
|
|
metaUserProp.setNum(0);
|
|
|
- metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.USE, 1);
|
|
|
|
|
|
|
+ metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.USE, num, msg);
|
|
|
metaUserPropRepo.deleteByUserIdAndMetaPropId(metaUserProp.getUserId(), metaProp.getId());
|
|
metaUserPropRepo.deleteByUserIdAndMetaPropId(metaUserProp.getUserId(), metaProp.getId());
|
|
|
return MetaRestResult.returnSuccess(metaUserProp);
|
|
return MetaRestResult.returnSuccess(metaUserProp);
|
|
|
}
|
|
}
|
|
|
// 数量大于1的非永久道具,背包中该道具数量减1,增加一条操作记录
|
|
// 数量大于1的非永久道具,背包中该道具数量减1,增加一条操作记录
|
|
|
metaUserProp.setNum(metaUserProp.getNum() - 1);
|
|
metaUserProp.setNum(metaUserProp.getNum() - 1);
|
|
|
- metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.USE, 1);
|
|
|
|
|
|
|
+ metaUserPropRecordService.save(metaUserProp.getUserId(), metaProp, MetaPropOperationType.USE, num, msg);
|
|
|
return MetaRestResult.returnSuccess(metaUserPropRepo.save(metaUserProp));
|
|
return MetaRestResult.returnSuccess(metaUserPropRepo.save(metaUserProp));
|
|
|
}
|
|
}
|
|
|
|
|
|