package com.xy.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.xy.device.EnumAlgorithmPayConfig; import com.xy.device.EnumAlgorithmTypes; import com.xy.device.EnumSimConfig; import com.xy.dto.AlgorithmDto; import com.xy.dto.DeviceAlgorithmChargingDto; import com.xy.dto.MercFeeConfigAlgorithmTypeDto; import com.xy.dto.be.MercDto; import com.xy.entity.MercFeeConfigAlgorithmType; import com.xy.entity.MercFeeConfigSimCard; import com.xy.entity.SysDictRedis; import com.xy.error.CommRuntimeException; import com.xy.mapper.MercFeeConfigSimCardMapper; import com.xy.service.MercFeeConfigSimCardService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xy.service.be.MercService; import com.xy.utils.*; import org.springframework.stereotype.Service; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import com.xy.dto.MercFeeConfigSimCardDto; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.PostMapping; import io.swagger.annotations.ApiOperation; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.validation.annotation.Validated; import static com.xy.utils.Beans.copy; import static com.xy.utils.PlusBeans.toIPage; import static com.xy.utils.PlusBeans.toPageBean; /** *

* 商户流量卡费配置扩展 服务实现类 *

* * @author 谭斌 * @since 2024-04-07 */ @Service @AllArgsConstructor @Api(tags = "商户流量卡费配置扩展") public class MercFeeConfigSimCardServiceImpl extends ServiceImpl implements MercFeeConfigSimCardService { private MercService mercService; @PostMapping("obj") @ApiOperation("对象查询") public R obj(@RequestBody MercFeeConfigSimCardDto.Vo vo) { MercFeeConfigSimCardDto.SelectList selectList = copy(MercFeeConfigSimCardDto.SelectList.class, vo); List list = list(selectList).getData(); if (Emptys.check(list)) { return R.ok(list.get(0)); } return R.ok(); } @PostMapping("list") @ApiOperation("集合查询") public R> list(@RequestBody MercFeeConfigSimCardDto.SelectList selectList) { LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, MercFeeConfigSimCard.class).build(); List list = list(lambdaQueryWrapper); return R.ok(copy(MercFeeConfigSimCardDto.Vo.class, list)); } @PostMapping("page") @ApiOperation("分页查询") public R> page(@RequestBody MercFeeConfigSimCardDto.Page page) { PageBean pageBean = page.getPage(); LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MercFeeConfigSimCard.class).build(); IPage iPage = page(toIPage(pageBean), lambdaQueryWrapper); return R.ok(toPageBean(MercFeeConfigSimCardDto.Vo.class, iPage)); } @PostMapping("listByFeeConfig") @ApiOperation("设备算法费用配置查询") public R listByFeeConfig(@RequestBody @Validated MercFeeConfigAlgorithmTypeDto.ListByFeeConfigDTO dto) { MercFeeConfigSimCardDto.DeviceSimConfigVO data = new MercFeeConfigSimCardDto.DeviceSimConfigVO(); Long mercId = dto.getMercId(); MercDto.Vo merc = R.feignCheckData(mercService.obj(new MercDto.Vo().setId(mercId))); //查询默认算法信息 //流量卡费-平台默认配置 List deviceSimPlatformList = new ArrayList<>(); Integer money = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.money.getCode(), Integer.class); String name = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.name.getCode(), String.class); Integer expireDay = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.N_200.getCode(), Integer.class); deviceSimPlatformList.add(new MercFeeConfigSimCardDto.DeviceSimPlatformVO().setName(name).setExpireDay(expireDay).setMoney(money)); // 设备管理费-商家自定义费用 List deviceSimMercList = new ArrayList<>(); LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(dto, MercFeeConfigSimCard.class) .eq(MercFeeConfigSimCard::getMercId, merc.getId()) .build(); //默认配置 type 2预充 1赠送天数 List list = list(lambdaQueryWrapper); if (CollUtil.isNotEmpty(list)) { for (MercFeeConfigSimCard cfg : list) { MercFeeConfigSimCardDto.DeviceSimMercVO deviceSimMercVO = BeanUtil.copyProperties(cfg, MercFeeConfigSimCardDto.DeviceSimMercVO.class); deviceSimMercVO.setName(name).setExpireDay(expireDay).setMoney(money); deviceSimMercList.add(deviceSimMercVO); } } data.setDeviceSimPlatformList(deviceSimPlatformList); data.setDeviceSimMercList(deviceSimMercList); return R.ok(data); } @PostMapping("save") @ApiOperation("添加") public R save(@RequestBody @Validated MercFeeConfigSimCardDto.Save save) { Long mercId = save.getMercId(); MercFeeConfigSimCard mc = this.getOne(Wrappers.lambdaQuery() .eq(MercFeeConfigSimCard::getMercId, mercId) ); if (mc != null) { throw new CommRuntimeException("该类型配置已存在,请勿重复添加!"); } MercFeeConfigSimCard saveInfo = copy(MercFeeConfigSimCard.class, save); save(saveInfo); return R.ok(); } @PostMapping("update") @ApiOperation("修改") public R update(@RequestBody @Validated MercFeeConfigSimCardDto.Update update) { MercFeeConfigSimCard updateInfo = copy(MercFeeConfigSimCard.class, update); updateById(updateInfo); return R.ok(); } }