|
@@ -0,0 +1,90 @@
|
|
|
+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.list.JList;
|
|
|
+import com.xy.collections.map.JMap;
|
|
|
+import com.xy.dto.DeviceSimDto;
|
|
|
+import com.xy.entity.DeviceSim;
|
|
|
+import com.xy.entity.DeviceSimCharge;
|
|
|
+import com.xy.mapper.DeviceSimMapper;
|
|
|
+import com.xy.utils.DataTime;
|
|
|
+import com.xy.utils.Emptys;
|
|
|
+import com.xy.utils.R;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 设备流量卡 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author lijin
|
|
|
+ * @since 2023-10-16
|
|
|
+ */
|
|
|
+@Service
|
|
|
+@AllArgsConstructor
|
|
|
+@Api(tags = "设备流量卡")
|
|
|
+public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim> implements DeviceSimService {
|
|
|
+
|
|
|
+ private DeviceSimChargeServiceImpl deviceSimChargeService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @ApiOperation("购买")
|
|
|
+ public R pay(DeviceSimDto.Pay pay) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ List<DeviceSimDto.Pay.DeviceSimCharge> deviceSimCharges = pay.getDeviceSimCharges();
|
|
|
+ List<DeviceSimCharge> deviceSimChargess = new ArrayList<>(deviceSimCharges.size());
|
|
|
+ deviceSimCharges.forEach(deviceSimCharge -> {
|
|
|
+ DeviceSimCharge deviceSimChargeInfo = new DeviceSimCharge()
|
|
|
+ .setId(YitIdHelper.nextId())
|
|
|
+ .setOrderId(pay.getOrderId())
|
|
|
+ .setSimId(deviceSimCharge.getSimId())
|
|
|
+ .setMercId(pay.getMercId())
|
|
|
+ .setMoney(deviceSimCharge.getMoney())
|
|
|
+ .setSize(deviceSimCharge.getSize())
|
|
|
+ .setPayType(pay.getPayType())
|
|
|
+ .setNote(pay.getNote())
|
|
|
+ .setCreateTime(now)
|
|
|
+ .setUpdateTime(now);
|
|
|
+ deviceSimChargess.add(deviceSimChargeInfo);
|
|
|
+ });
|
|
|
+ deviceSimChargeService.saveBatch(deviceSimChargess);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @ApiOperation("购买回调")
|
|
|
+ public R payNotice(DeviceSimDto.PayNotice payNotice) {
|
|
|
+ //查询设备流量卡充值表
|
|
|
+ List<DeviceSimCharge> list = deviceSimChargeService.list(new LambdaQueryWrapper<DeviceSimCharge>().eq(DeviceSimCharge::getOrderId, payNotice.getOrderId()));
|
|
|
+ if (!Emptys.check(list)) {
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ //查询设备流量卡
|
|
|
+ JList<DeviceSimCharge> deviceSimCharges = new JArrayList<>(list);
|
|
|
+ JMap<String, DeviceSimCharge> deviceSimChargesJMaps = deviceSimCharges.toMap(DeviceSimCharge::getSimId).cover();
|
|
|
+ List<DeviceSim> deviceSims = listByIds(deviceSimCharges.getProperty(DeviceSimCharge::getSimId));
|
|
|
+ //循环处理
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ deviceSims.forEach(deviceSim -> {
|
|
|
+ DeviceSimCharge deviceSimCharge = deviceSimChargesJMaps.get(deviceSim.getId());
|
|
|
+ String newTimeout = deviceSimCharge.getPayType() == 100 ? DataTime.getStringAround(0, 0, deviceSimCharge.getSize(), 0, 0, 0)
|
|
|
+ : DataTime.getStringAround(deviceSimCharge.getSize(), 0, 0, 0, 0, 0);
|
|
|
+ deviceSim.setTimeout(DataTime.toLocal(newTimeout))
|
|
|
+ .setLastRenewalTime(now)
|
|
|
+ .setUpdateTime(now);
|
|
|
+ });
|
|
|
+ updateBatchById(deviceSims);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+}
|