|
@@ -17,10 +17,13 @@ import com.xy.device.EnumDeviceQrCode;
|
|
|
import com.xy.device.EnumDeviceType;
|
|
|
import com.xy.dto.DeviceCreateIdsDto;
|
|
|
import com.xy.dto.DeviceQualityDto;
|
|
|
+import com.xy.dto.MercDeviceQrConfigDto;
|
|
|
import com.xy.dto.SysWorkUser.ListDto;
|
|
|
import com.xy.dto.SysWorkUser.SysWorkVo;
|
|
|
+import com.xy.dto.be.MercDto;
|
|
|
import com.xy.entity.DeviceCreateIds;
|
|
|
import com.xy.mapper.DeviceCreateIdsMapper;
|
|
|
+import com.xy.service.be.MercService;
|
|
|
import com.xy.utils.*;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -64,6 +67,10 @@ public class DeviceCreateIdsServiceImpl extends ServiceImpl<DeviceCreateIdsMappe
|
|
|
|
|
|
private final SysWorkUserService sysWorkUserService;
|
|
|
|
|
|
+ private final MercDeviceQrConfigService mercDeviceQrConfigService;
|
|
|
+
|
|
|
+ private final MercService mercService;
|
|
|
+
|
|
|
@SneakyThrows
|
|
|
@PostMapping("save")
|
|
|
@ApiOperation("添加")
|
|
@@ -144,17 +151,41 @@ public class DeviceCreateIdsServiceImpl extends ServiceImpl<DeviceCreateIdsMappe
|
|
|
PageBean<DeviceCreateIdsDto.Vo> voPageBean = toPageBean(PlusBeans.copy(DeviceCreateIdsDto.Vo.class, iPage));
|
|
|
List<DeviceCreateIdsDto.Vo> records = voPageBean.getRecords();
|
|
|
JList<Long> createUserIds = new JArrayList<>(records).getProperty(DeviceCreateIdsDto.Vo::getCreateUserId);
|
|
|
+ //查询创建人
|
|
|
+ JMap<Long, SysWorkVo> sysWorkVoJMap;
|
|
|
List<SysWorkVo> sysWorkVos = sysWorkUserService.list(new ListDto().setId(createUserIds)).getData();
|
|
|
if (Emptys.check(sysWorkVos)) {
|
|
|
- JMap<Long, SysWorkVo> sysWorkVoJMap = new JArrayList<>(sysWorkVos).toMap(SysWorkVo::getId).cover();
|
|
|
- records.forEach(vo -> {
|
|
|
- SysWorkVo sysWorkVo = sysWorkVoJMap.get(vo.getCreateUserId());
|
|
|
- if (sysWorkVo == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
- vo.setCreateUserName(sysWorkVo.getAccount());
|
|
|
- });
|
|
|
+ sysWorkVoJMap = new JArrayList<>(sysWorkVos).toMap(SysWorkVo::getId).cover();
|
|
|
+ } else {
|
|
|
+ sysWorkVoJMap = new JHashMap<>();
|
|
|
+ }
|
|
|
+ //查询绑定商户
|
|
|
+ JMap<Long, MercDto.Vo> mercsJMaps;
|
|
|
+ JList<Long> mercIds = new JArrayList<>(records).filter().isNotNull(DeviceCreateIdsDto.Vo::getDeviceQrMercId).list().getProperty(DeviceCreateIdsDto.Vo::getDeviceQrMercId);
|
|
|
+ if (Emptys.check(mercIds)) {
|
|
|
+ List<MercDto.Vo> mercs = mercService.list(new MercDto.SelectList().setMercIds(mercIds)).getData();
|
|
|
+ mercsJMaps = new JArrayList<>(mercs).toMap(MercDto.Vo::getId).cover();
|
|
|
+ } else {
|
|
|
+ mercsJMaps = new JHashMap<>();
|
|
|
}
|
|
|
+ records.forEach(vo -> {
|
|
|
+ if (Emptys.check(sysWorkVoJMap)) {
|
|
|
+ if (Emptys.check(vo.getCreateUserId())) {
|
|
|
+ SysWorkVo sysWorkVo = sysWorkVoJMap.get(vo.getCreateUserId());
|
|
|
+ if (sysWorkVo != null) {
|
|
|
+ vo.setCreateUserName(sysWorkVo.getAccount());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Emptys.check(mercsJMaps)) {
|
|
|
+ if (Emptys.check(vo.getDeviceQrMercId())) {
|
|
|
+ MercDto.Vo mercVo = mercsJMaps.get(vo.getDeviceQrMercId());
|
|
|
+ if (mercVo != null) {
|
|
|
+ vo.setDeviceQrMercName(mercVo.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
return R.ok(voPageBean);
|
|
|
}
|
|
|
|
|
@@ -169,9 +200,15 @@ public class DeviceCreateIdsServiceImpl extends ServiceImpl<DeviceCreateIdsMappe
|
|
|
@PostMapping("getQrCode")
|
|
|
@ApiOperation("获取二维码")
|
|
|
public R<List<String>> getQrCode(@RequestBody @Validated DeviceQualityDto.Qrcode qrcode) {
|
|
|
- //查询设备类型
|
|
|
DeviceCreateIds deviceCreateIds = getById(qrcode.getDeviceId());
|
|
|
+ //查询商户特有二维码地址
|
|
|
String qrUrl = SysDictUtils.getValue(EnumDeviceQrCode.Code.CODE.getCode(), EnumDeviceQrCode.URL.getCode(), String.class);
|
|
|
+ if (Emptys.check(deviceCreateIds.getDeviceQrMercId())) {
|
|
|
+ MercDeviceQrConfigDto.Vo mercDeviceQrConfig = mercDeviceQrConfigService.obj(new MercDeviceQrConfigDto.Vo().setMercId(deviceCreateIds.getDeviceQrMercId())).getData();
|
|
|
+ if (Emptys.check(mercDeviceQrConfig)) {
|
|
|
+ qrUrl = mercDeviceQrConfig.getQrUrl() + "?deviceId=";
|
|
|
+ }
|
|
|
+ }
|
|
|
//验证是否是双门柜
|
|
|
int deviceType = SysDictUtils.getValue(EnumDeviceType.Code.CODE.getCode(), EnumDeviceType.N_2.getCode(), Integer.class);
|
|
|
String deviceId = qrcode.getDeviceId().toString();
|
|
@@ -194,14 +231,31 @@ public class DeviceCreateIdsServiceImpl extends ServiceImpl<DeviceCreateIdsMappe
|
|
|
@PostMapping("exportQrCode")
|
|
|
@ApiOperation("导出二维码")
|
|
|
public void exportQrCode(@RequestBody @Validated DeviceCreateIdsDto.ExportQrCode exportQrCode) {
|
|
|
- String qrUrl = SysDictUtils.getValue(EnumDeviceQrCode.Code.CODE.getCode(), EnumDeviceQrCode.URL.getCode(), String.class);
|
|
|
+ String url = SysDictUtils.getValue(EnumDeviceQrCode.Code.CODE.getCode(), EnumDeviceQrCode.URL.getCode(), String.class);
|
|
|
int deviceType = SysDictUtils.getValue(EnumDeviceType.Code.CODE.getCode(), EnumDeviceType.N_2.getCode(), Integer.class);
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
JList<String> deviceIds = new JArrayList<>();
|
|
|
List<String> deviceIdInfos = new ArrayList<>();
|
|
|
List<DeviceCreateIds> updateDeviceCreateIds = new ArrayList<>();
|
|
|
- List<DeviceCreateIds> deviceCreateIdss = listByIds(exportQrCode.getDeviceIds());
|
|
|
+ JList<DeviceCreateIds> deviceCreateIdss = new JArrayList<>(listByIds(exportQrCode.getDeviceIds()));
|
|
|
+ //查询商户特有二维码地址
|
|
|
+ JMap<Long, MercDeviceQrConfigDto.Vo> mercDeviceQrConfigsJMas;
|
|
|
+ JList<Long> mercIds = deviceCreateIdss.filter().isNotNull(DeviceCreateIds::getDeviceQrMercId).list().getProperty(DeviceCreateIds::getDeviceQrMercId);
|
|
|
+ if (Emptys.check(mercIds)) {
|
|
|
+ List<MercDeviceQrConfigDto.Vo> mercDeviceQrConfigs = mercDeviceQrConfigService.list(new MercDeviceQrConfigDto.SelectList().setMercId(mercIds)).getData();
|
|
|
+ mercDeviceQrConfigsJMas = new JArrayList<>(mercDeviceQrConfigs).toMap(MercDeviceQrConfigDto.Vo::getMercId).cover();
|
|
|
+ } else {
|
|
|
+ mercDeviceQrConfigsJMas = new JHashMap<>();
|
|
|
+ }
|
|
|
+ //循环
|
|
|
deviceCreateIdss.forEach(deviceCreateIds -> {
|
|
|
+ String qrUrl = url;
|
|
|
+ if (Emptys.check(deviceCreateIds.getDeviceQrMercId())) {
|
|
|
+ MercDeviceQrConfigDto.Vo mercDeviceQrConfig = mercDeviceQrConfigsJMas.get(deviceCreateIds.getDeviceQrMercId());
|
|
|
+ if (Emptys.check(mercDeviceQrConfig)) {
|
|
|
+ qrUrl = mercDeviceQrConfig.getQrUrl() + "?deviceId=";
|
|
|
+ }
|
|
|
+ }
|
|
|
//验证是否是双门柜
|
|
|
if (deviceCreateIds.getDeviceType() == deviceType) {
|
|
|
for (int i = 0; i < 2; i++) {
|