|
@@ -3,6 +3,8 @@ package com.xy.service;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.github.yitter.idgen.YitIdHelper;
|
|
|
+import com.xy.collections.list.JArrayList;
|
|
|
+import com.xy.collections.map.JMap;
|
|
|
import com.xy.dto.DeviceAnnualFeeOrdersDto;
|
|
|
import com.xy.entity.DeviceAnnualFee;
|
|
|
import com.xy.entity.DeviceAnnualFeeOrders;
|
|
@@ -16,6 +18,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
@@ -36,34 +40,53 @@ public class DeviceAnnualFeeOrdersServiceImpl extends ServiceImpl<DeviceAnnualFe
|
|
|
|
|
|
@Override
|
|
|
@ApiOperation("购买")
|
|
|
- public R pay(DeviceAnnualFeeOrdersDto.Pay pay) {
|
|
|
+ public R pay(List<DeviceAnnualFeeOrdersDto.Pay> pays) {
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
- DeviceAnnualFeeOrders deviceAnnualFeeOrders = Beans.copy(DeviceAnnualFeeOrders.class, pay)
|
|
|
- .setId(YitIdHelper.nextId())
|
|
|
- .setCreateTime(now)
|
|
|
- .setUpdateTime(now);
|
|
|
- save(deviceAnnualFeeOrders);
|
|
|
+ List<DeviceAnnualFeeOrders> saves = new ArrayList<>(pays.size());
|
|
|
+ for (DeviceAnnualFeeOrdersDto.Pay pay : pays) {
|
|
|
+ DeviceAnnualFeeOrders deviceAnnualFeeOrders = Beans.copy(DeviceAnnualFeeOrders.class, pay)
|
|
|
+ .setId(YitIdHelper.nextId())
|
|
|
+ .setCreateTime(now)
|
|
|
+ .setUpdateTime(now);
|
|
|
+ saves.add(deviceAnnualFeeOrders);
|
|
|
+ }
|
|
|
+ saveBatch(saves);
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@ApiOperation("购买回调")
|
|
|
public R payNotice(DeviceAnnualFeeOrdersDto.PayNotice payNotice) {
|
|
|
- DeviceAnnualFeeOrders deviceAnnualFeeOrders = getOne(new LambdaQueryWrapper<DeviceAnnualFeeOrders>()
|
|
|
+ //查询订单
|
|
|
+ List<DeviceAnnualFeeOrders> deviceAnnualFeeOrderss = list(new LambdaQueryWrapper<DeviceAnnualFeeOrders>()
|
|
|
.eq(DeviceAnnualFeeOrders::getOrdersId, payNotice.getOrderId())
|
|
|
);
|
|
|
- if (deviceAnnualFeeOrders == null) {
|
|
|
+ if (!Emptys.check(deviceAnnualFeeOrderss)) {
|
|
|
return R.ok();
|
|
|
}
|
|
|
- DeviceAnnualFee deviceAnnualFee = deviceAnnualFeeService.getOne(new LambdaQueryWrapper<DeviceAnnualFee>()
|
|
|
- .eq(DeviceAnnualFee::getMercId, deviceAnnualFeeOrders.getMercId())
|
|
|
- .eq(DeviceAnnualFee::getDeviceId, deviceAnnualFeeOrders.getDeviceId())
|
|
|
+ //查询设备年费表
|
|
|
+ List<DeviceAnnualFee> list = deviceAnnualFeeService.list(new LambdaQueryWrapper<DeviceAnnualFee>()
|
|
|
+ .eq(DeviceAnnualFee::getMercId, deviceAnnualFeeOrderss.get(0).getMercId())
|
|
|
+ .in(DeviceAnnualFee::getDeviceId, new JArrayList<>(deviceAnnualFeeOrderss).getProperty(DeviceAnnualFeeOrders::getDeviceId))
|
|
|
);
|
|
|
- String timeout = DataTime.getStringAround(deviceAnnualFeeOrders.getSize(), 0, 0, 0, 0, 0, DataTime.toString(deviceAnnualFee.getTimeout()));
|
|
|
- deviceAnnualFee.setTimeout(DataTime.toLocal(timeout));
|
|
|
- deviceAnnualFeeService.updateById(deviceAnnualFee);
|
|
|
- deviceAnnualFeeOrders.setStatus(true).setUpdateTime(LocalDateTime.now());
|
|
|
- updateById(deviceAnnualFeeOrders);
|
|
|
+ JMap<Long, DeviceAnnualFee> cover = new JArrayList<>(list).toMap(DeviceAnnualFee::getDeviceId).cover();
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ List<DeviceAnnualFee> updateDeviceAnnualFees = new ArrayList<>(list.size());
|
|
|
+ List<DeviceAnnualFeeOrders> updateDeviceAnnualFeeOrderss = new ArrayList<>(deviceAnnualFeeOrderss.size());
|
|
|
+ for (DeviceAnnualFeeOrders annualFeeOrders : deviceAnnualFeeOrderss) {
|
|
|
+ DeviceAnnualFee deviceAnnualFee = cover.get(annualFeeOrders.getDeviceId());
|
|
|
+ String timeout = DataTime.getStringAround(annualFeeOrders.getSize(), 0, 0, 0, 0, 0, DataTime.toString(deviceAnnualFee.getTimeout()));
|
|
|
+ deviceAnnualFee.setTimeout(DataTime.toLocal(timeout));
|
|
|
+ updateDeviceAnnualFees.add(deviceAnnualFee);
|
|
|
+ annualFeeOrders.setStatus(true).setUpdateTime(now);
|
|
|
+ updateDeviceAnnualFeeOrderss.add(annualFeeOrders);
|
|
|
+ }
|
|
|
+ if (Emptys.check(updateDeviceAnnualFees)) {
|
|
|
+ deviceAnnualFeeService.updateBatchById(updateDeviceAnnualFees);
|
|
|
+ }
|
|
|
+ if (Emptys.check(updateDeviceAnnualFeeOrderss)) {
|
|
|
+ updateBatchById(updateDeviceAnnualFeeOrderss);
|
|
|
+ }
|
|
|
return R.ok();
|
|
|
}
|
|
|
|