MercFeeConfigSimCardServiceImpl.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package com.xy.service;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import cn.hutool.json.JSONUtil;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.xy.device.EnumAlgorithmPayConfig;
  7. import com.xy.device.EnumAlgorithmTypes;
  8. import com.xy.device.EnumSimConfig;
  9. import com.xy.dto.AlgorithmDto;
  10. import com.xy.dto.DeviceAlgorithmChargingDto;
  11. import com.xy.dto.MercFeeConfigAlgorithmTypeDto;
  12. import com.xy.dto.be.MercDto;
  13. import com.xy.entity.MercFeeConfigAlgorithmType;
  14. import com.xy.entity.MercFeeConfigSimCard;
  15. import com.xy.entity.SysDictRedis;
  16. import com.xy.error.CommRuntimeException;
  17. import com.xy.mapper.MercFeeConfigSimCardMapper;
  18. import com.xy.service.MercFeeConfigSimCardService;
  19. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  20. import com.xy.service.be.MercService;
  21. import com.xy.utils.*;
  22. import org.springframework.stereotype.Service;
  23. import io.swagger.annotations.Api;
  24. import lombok.AllArgsConstructor;
  25. import java.util.ArrayList;
  26. import java.util.HashMap;
  27. import java.util.List;
  28. import java.util.Map;
  29. import java.util.stream.Collectors;
  30. import com.xy.dto.MercFeeConfigSimCardDto;
  31. import org.springframework.web.bind.annotation.RequestBody;
  32. import org.springframework.web.bind.annotation.PostMapping;
  33. import io.swagger.annotations.ApiOperation;
  34. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  35. import com.baomidou.mybatisplus.core.metadata.IPage;
  36. import org.springframework.validation.annotation.Validated;
  37. import static com.xy.utils.Beans.copy;
  38. import static com.xy.utils.PlusBeans.toIPage;
  39. import static com.xy.utils.PlusBeans.toPageBean;
  40. /**
  41. * <p>
  42. * 商户流量卡费配置扩展 服务实现类
  43. * </p>
  44. *
  45. * @author 谭斌
  46. * @since 2024-04-07
  47. */
  48. @Service
  49. @AllArgsConstructor
  50. @Api(tags = "商户流量卡费配置扩展")
  51. public class MercFeeConfigSimCardServiceImpl extends ServiceImpl<MercFeeConfigSimCardMapper, MercFeeConfigSimCard> implements MercFeeConfigSimCardService {
  52. private MercService mercService;
  53. @PostMapping("obj")
  54. @ApiOperation("对象查询")
  55. public R<MercFeeConfigSimCardDto.Vo> obj(@RequestBody MercFeeConfigSimCardDto.Vo vo) {
  56. MercFeeConfigSimCardDto.SelectList selectList = copy(MercFeeConfigSimCardDto.SelectList.class, vo);
  57. List<MercFeeConfigSimCardDto.Vo> list = list(selectList).getData();
  58. if (Emptys.check(list)) {
  59. return R.ok(list.get(0));
  60. }
  61. return R.ok();
  62. }
  63. @PostMapping("list")
  64. @ApiOperation("集合查询")
  65. public R<List<MercFeeConfigSimCardDto.Vo>> list(@RequestBody MercFeeConfigSimCardDto.SelectList selectList) {
  66. LambdaQueryWrapper<MercFeeConfigSimCard> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, MercFeeConfigSimCard.class).build();
  67. List<MercFeeConfigSimCard> list = list(lambdaQueryWrapper);
  68. return R.ok(copy(MercFeeConfigSimCardDto.Vo.class, list));
  69. }
  70. @PostMapping("page")
  71. @ApiOperation("分页查询")
  72. public R<PageBean<MercFeeConfigSimCardDto.Vo>> page(@RequestBody MercFeeConfigSimCardDto.Page page) {
  73. PageBean pageBean = page.getPage();
  74. LambdaQueryWrapper<MercFeeConfigSimCard> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MercFeeConfigSimCard.class).build();
  75. IPage<MercFeeConfigSimCard> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
  76. return R.ok(toPageBean(MercFeeConfigSimCardDto.Vo.class, iPage));
  77. }
  78. @PostMapping("listByFeeConfig")
  79. @ApiOperation("设备算法费用配置查询")
  80. public R<MercFeeConfigSimCardDto.DeviceSimConfigVO> listByFeeConfig(@RequestBody @Validated MercFeeConfigAlgorithmTypeDto.ListByFeeConfigDTO dto) {
  81. MercFeeConfigSimCardDto.DeviceSimConfigVO data = new MercFeeConfigSimCardDto.DeviceSimConfigVO();
  82. Long mercId = dto.getMercId();
  83. MercDto.Vo merc = R.feignCheckData(mercService.obj(new MercDto.Vo().setId(mercId)));
  84. //查询默认算法信息
  85. //流量卡费-平台默认配置
  86. List<MercFeeConfigSimCardDto.DeviceSimPlatformVO> deviceSimPlatformList = new ArrayList<>();
  87. Integer money = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.money.getCode(), Integer.class);
  88. String name = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.name.getCode(), String.class);
  89. Integer expireDay = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.N_200.getCode(), Integer.class);
  90. deviceSimPlatformList.add(new MercFeeConfigSimCardDto.DeviceSimPlatformVO().setName(name).setExpireDay(expireDay).setMoney(money));
  91. // 设备管理费-商家自定义费用
  92. List<MercFeeConfigSimCardDto.DeviceSimMercVO> deviceSimMercList = new ArrayList<>();
  93. LambdaQueryWrapper<MercFeeConfigSimCard> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(dto, MercFeeConfigSimCard.class)
  94. .eq(MercFeeConfigSimCard::getMercId, merc.getId())
  95. .build();
  96. //默认配置 type 2预充 1赠送天数
  97. List<MercFeeConfigSimCard> list = list(lambdaQueryWrapper);
  98. if (CollUtil.isNotEmpty(list)) {
  99. for (MercFeeConfigSimCard cfg : list) {
  100. MercFeeConfigSimCardDto.DeviceSimMercVO deviceSimMercVO = BeanUtil.copyProperties(cfg, MercFeeConfigSimCardDto.DeviceSimMercVO.class);
  101. deviceSimMercVO.setName(name).setExpireDay(expireDay).setMoney(money);
  102. deviceSimMercList.add(deviceSimMercVO);
  103. }
  104. }
  105. data.setDeviceSimPlatformList(deviceSimPlatformList);
  106. data.setDeviceSimMercList(deviceSimMercList);
  107. return R.ok(data);
  108. }
  109. @PostMapping("save")
  110. @ApiOperation("添加")
  111. public R save(@RequestBody @Validated MercFeeConfigSimCardDto.Save save) {
  112. Long mercId = save.getMercId();
  113. MercFeeConfigSimCard mc = this.getOne(Wrappers.<MercFeeConfigSimCard>lambdaQuery()
  114. .eq(MercFeeConfigSimCard::getMercId, mercId)
  115. );
  116. if (mc != null) {
  117. throw new CommRuntimeException("该类型配置已存在,请勿重复添加!");
  118. }
  119. MercFeeConfigSimCard saveInfo = copy(MercFeeConfigSimCard.class, save);
  120. save(saveInfo);
  121. return R.ok();
  122. }
  123. @PostMapping("update")
  124. @ApiOperation("修改")
  125. public R update(@RequestBody @Validated MercFeeConfigSimCardDto.Update update) {
  126. MercFeeConfigSimCard updateInfo = copy(MercFeeConfigSimCard.class, update);
  127. updateById(updateInfo);
  128. return R.ok();
  129. }
  130. }