|
@@ -38,6 +38,8 @@ import org.springframework.stereotype.Service;
|
|
|
import java.beans.JavaBean;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* @author 唐斌
|
|
@@ -53,6 +55,9 @@ public class EquipTemplateService {
|
|
|
public EquipTemplate findById(String id) {
|
|
|
return mongoTemplate.findById(id, EquipTemplate.class);
|
|
|
}
|
|
|
+ public EquipTemplate findByItemId(String itemId) {
|
|
|
+ return Objects.requireNonNull(mongoTemplate.findOne(Query.query(new Criteria("itemId").is(itemId)), EquipTemplate.class));
|
|
|
+ }
|
|
|
|
|
|
public void save(EquipTemplate equipTemplate) {
|
|
|
if(StringUtils.isNotBlank(equipTemplate.getId())){
|
|
@@ -62,54 +67,20 @@ public class EquipTemplateService {
|
|
|
Goods goods = equipTemplate.getGoods();
|
|
|
goods.setType(3);
|
|
|
mongoTemplate.save(goods);
|
|
|
- equipTemplate.setId(goods.getId());
|
|
|
+ equipTemplate.setItemId(goods.getId());
|
|
|
equipTemplate.setGoods(goods);
|
|
|
mongoTemplate.save(equipTemplate);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void delBatch(String ids) {
|
|
|
- String[] idsArr = ids.split("-");
|
|
|
- GameCode.objNotFound.assertTrue(idsArr.length>0);
|
|
|
- Query query = new Query();
|
|
|
- query.addCriteria(Criteria.where("id").in(Arrays.asList(idsArr)));
|
|
|
-
|
|
|
- // 更新的字段
|
|
|
- Update update = new Update();
|
|
|
- //获取分配的字段
|
|
|
- update.set("delFlag", true);
|
|
|
- update.set("goods.delFlag", true);
|
|
|
-
|
|
|
- //UNORDERED是平行处理,即使某条记录出错了,其余的也会继续处理;ORDERED是队列排序处理,只要中途有个失败了,那么后续的操作流程就会终止了。
|
|
|
- BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, EquipTemplate.class);
|
|
|
- bulkOps.updateMulti(query, update);
|
|
|
- BulkWriteResult result = bulkOps.execute();
|
|
|
-
|
|
|
- //逻辑删除对应的商品
|
|
|
- delGoodsByChildBatch(idsArr);
|
|
|
+ public void delBatch(List<String> idList) {
|
|
|
+ Query query = new Query(new Criteria("itemId").in(idList));
|
|
|
+ mongoTemplate.remove(query, EquipTemplate.class);
|
|
|
+ //删除物品
|
|
|
+ Query goodsQuery = new Query(new Criteria("id").in(idList));
|
|
|
+ mongoTemplate.remove(goodsQuery, Goods.class);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 根据子表id批量删除物品(逻辑删除)
|
|
|
- * @param detailIdArr 子表主键
|
|
|
- */
|
|
|
- public void delGoodsByChildBatch(String[] detailIdArr) {
|
|
|
- if (detailIdArr.length==0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- Query query = new Query();
|
|
|
- query.addCriteria(Criteria.where("detailId").in(Arrays.asList(detailIdArr)));
|
|
|
-
|
|
|
- // 更新的字段
|
|
|
- Update update = new Update();
|
|
|
- //获取分配的字段
|
|
|
- update.set("delFlag", true);
|
|
|
-
|
|
|
- //UNORDERED是平行处理,即使某条记录出错了,其余的也会继续处理;ORDERED是队列排序处理,只要中途有个失败了,那么后续的操作流程就会终止了。
|
|
|
- BulkOperations bulkOps = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, Goods.class);
|
|
|
- bulkOps.updateMulti(query, update);
|
|
|
- BulkWriteResult result = bulkOps.execute();
|
|
|
- }
|
|
|
|
|
|
public void initEquipTemplate() {
|
|
|
// 初始化一些装备配置,后期将移到 excel 中做。
|
|
@@ -129,7 +100,7 @@ public class EquipTemplateService {
|
|
|
goods.setDealFlag(true);
|
|
|
goods.setType(3);
|
|
|
mongoTemplate.save(goods);
|
|
|
- equipTemplate.setId(goods.getId());
|
|
|
+ equipTemplate.setItemId(goods.getId());
|
|
|
equipTemplate.setGoods(goods);
|
|
|
|
|
|
mongoTemplate.save(equipTemplate);
|
|
@@ -151,7 +122,7 @@ public class EquipTemplateService {
|
|
|
goods2.setDealFlag(true);
|
|
|
goods2.setType(3);
|
|
|
mongoTemplate.save(goods2);
|
|
|
- equipTemplate2.setId(goods2.getId());
|
|
|
+ equipTemplate2.setItemId(goods2.getId());
|
|
|
equipTemplate2.setGoods(goods2);
|
|
|
|
|
|
mongoTemplate.save(equipTemplate2);
|
|
@@ -160,14 +131,12 @@ public class EquipTemplateService {
|
|
|
|
|
|
/**
|
|
|
* 根据装备库随机一件新的装备
|
|
|
- * @param equipTemplateId
|
|
|
+ * @param equipTemplateItemId
|
|
|
* @return
|
|
|
*/
|
|
|
- public Equip randomEquip(String equipTemplateId,long userId){
|
|
|
+ public Equip randomEquip(String equipTemplateItemId,long userId){
|
|
|
//取到装备库
|
|
|
- EquipTemplate equipTemplate = mongoTemplate.findById(equipTemplateId, EquipTemplate.class);
|
|
|
-
|
|
|
- GameCode.objNotFound.assertTrue(equipTemplate!=null);
|
|
|
+ EquipTemplate equipTemplate = findByItemId(equipTemplateItemId);
|
|
|
|
|
|
Equip equip = new Equip();
|
|
|
//新建装备对应的物品类
|
|
@@ -178,7 +147,8 @@ public class EquipTemplateService {
|
|
|
//将装备库属性拷贝到装备中
|
|
|
//对应的物品数据是新建的
|
|
|
BeanUtils.copyProperties(equipTemplate,equip);
|
|
|
- equip.setId(goods.getId());
|
|
|
+ equip.setId(null);
|
|
|
+ equip.setItemId(goods.getId());
|
|
|
equip.setGoods(goods);
|
|
|
equip.setName(equipTemplate.getGoods().getName());
|
|
|
//品质
|