11
This commit is contained in:
1 parent
462a83af39
commit
4cb7103a18
7 files changed
+91
-42
No files matched your search
-1
@@ -15,7 +15,6 @@ public class HandCancelCodeDto {
|
||||
private Long hardwareId;
|
||||
|
||||
@Schema(description = "安卓订单code")
|
||||
@NotNull(message = "安卓订单code不能为空")
|
||||
private String androidOrderCode;
|
||||
|
||||
@Schema(description = "用户id")
|
||||
|
||||
+2
-1
@@ -41,8 +41,9 @@ public class HardApptController {
|
||||
|
||||
@Operation(summary = "app预约时间列表", description = "app预约时间列表")
|
||||
@GetMapping("/app/list")
|
||||
public R<List<HardApptEntity>> appList() {
|
||||
public R<List<HardApptEntity>> appList(@ParameterObject HardApptDto dto) {
|
||||
List<HardApptEntity> list = hardApptService.list(new LambdaQueryWrapper<HardApptEntity>()
|
||||
.eq(ObjectUtil.isNotEmpty(dto.getMchId()), HardApptEntity::getMchId, dto.getMchId())
|
||||
.eq(HardApptEntity::getStatus, YesNoEnum.YES.getCode())
|
||||
.orderByDesc(HardApptEntity::getSort)
|
||||
);
|
||||
|
||||
+13
-4
@@ -545,7 +545,7 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
|
||||
String subject = hardCarService.computerCarSubject(hardType, dto.getOrderType(), carListDto);
|
||||
// 添加硬件订单
|
||||
HardOrderEntity orderObj = HardOrderEntity.builder()
|
||||
.userId(dto.getUserId())
|
||||
.userId(userDetail.getSysUser().getUserId())
|
||||
.userDeptId(userDetail.getSysUser().getDeptId())
|
||||
.parentCarId(dto.getCarParentId())
|
||||
.sysType(dto.getHardType().getType())
|
||||
@@ -973,6 +973,9 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long xfjFastCreateOrder(HardXfjFastCreateOrderDto dto) {
|
||||
if (ObjectUtil.isEmpty(dto.getPlatformType())) {
|
||||
throw new RuntimeException("请选择终端支付类型");
|
||||
}
|
||||
// 查询设备
|
||||
HardManagerVo hard = hardManagerService.getByHardId(dto.getHardId());
|
||||
if (ObjectUtil.isEmpty(hard)) {
|
||||
@@ -991,7 +994,7 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
|
||||
}
|
||||
// 查询用户
|
||||
UserInfo userDetail = null;
|
||||
if (ObjectUtil.equals(dto.getPlatformType(), AppPlusPlatformTypeEnum.ZAX_APP_WALLET)) {
|
||||
if (ObjectUtil.equals(dto.getPlatformType(), AppPlusPlatformTypeEnum.ZAX_APP_WALLET) || ObjectUtil.isNotEmpty(dto.getUserId())) {
|
||||
userDetail = userService.getInnerByUserId(dto.getUserId()).getData();
|
||||
if (ObjectUtil.isEmpty(userDetail)) {
|
||||
throw new RuntimeException("用户不存在不存在");
|
||||
@@ -1039,6 +1042,7 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
|
||||
orderObj.setWalletId(wallet.getId());
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(userDetail)) {
|
||||
orderObj.setUserId(userDetail.getSysUser().getUserId());
|
||||
orderObj.setUserDeptId(userDetail.getSysUser().getDeptId());
|
||||
} else {
|
||||
orderObj.setUserId(-1L);
|
||||
@@ -1436,7 +1440,7 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
|
||||
HardOrderEntity order = baseMapper.selectById(dto.getOrderId());
|
||||
if (ObjectUtil.isEmpty(order)) throw new RuntimeException("订单不存在");
|
||||
// 查询用户
|
||||
UserInfo userInfo = userService.getByUserId(order.getUserId()).getData();
|
||||
UserInfo userInfo = userService.getInnerByUserId(order.getUserId()).getData();
|
||||
if (ObjectUtil.isEmpty(userInfo)) throw new RuntimeException("用户不存在");
|
||||
// 判断是否被核销过
|
||||
HardOrderTypeEnum orderType = HardOrderTypeEnum.valueOfByType(order.getOrderType());
|
||||
@@ -1444,7 +1448,12 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
|
||||
if (isCancel) throw new RuntimeException("该二维码已被核销");
|
||||
// 核销二维码
|
||||
getSelf().cancelCode(order, userInfo);
|
||||
HardOrderEntity updateObj = HardOrderEntity.builder().id(order.getId()).androidOrderCode(dto.getAndroidOrderCode()).hardId(dto.getHardwareId()).orderStatus(HardOrderStatusEnum.CANCEL.getType()).build();
|
||||
HardOrderEntity updateObj = HardOrderEntity.builder()
|
||||
.id(order.getId())
|
||||
.androidOrderCode(dto.getAndroidOrderCode())
|
||||
.hardId(dto.getHardwareId())
|
||||
.orderStatus(HardOrderStatusEnum.CANCEL.getType())
|
||||
.build();
|
||||
return baseMapper.updateById(updateObj) > 0;
|
||||
}
|
||||
|
||||
|
||||
+72
-32
@@ -12,6 +12,7 @@ import com.bsd.pjcloud.common.core.constant.CacheConstants;
|
||||
import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum;
|
||||
import com.bsd.pjcloud.hard.api.constant.HardTypeEnum;
|
||||
import com.bsd.pjcloud.hard.api.constant.xfj.HardXfjTypeEnum;
|
||||
import com.bsd.pjcloud.hard.api.dto.hard.HandCancelCodeDto;
|
||||
import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto;
|
||||
import com.bsd.pjcloud.hard.api.dto.order.xfj.HardXfjFastCreateOrderDto;
|
||||
import com.bsd.pjcloud.hard.api.dto.xfj.*;
|
||||
@@ -37,6 +38,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -210,6 +212,7 @@ public class HardXfjServiceImpl implements HardXfjService {
|
||||
payDto.setOrderNo(dto.getOrder());
|
||||
payDto.setWalletType(WalletTypeEnum.EAT);
|
||||
payDto.setXfjPayType(HardXfjTypeEnum.CARD_PAY);
|
||||
payDto.setPlatformType(AppPlusPlatformTypeEnum.ZAX_APP_WALLET);
|
||||
Long orderId = hardOrderService.xfjFastCreateOrder(payDto);
|
||||
|
||||
result.setName(username);
|
||||
@@ -542,6 +545,7 @@ public class HardXfjServiceImpl implements HardXfjService {
|
||||
* 付款码(二维码)支付接口
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public XfjQRCodeTransactionVo qrCodeTransaction(String body, Map<String, String> headers) {
|
||||
HardXfjLogEntity logger = initLogger(body, headers, "付款码(二维码)支付接口");
|
||||
XfjQRCodeTransactionVo result = new XfjQRCodeTransactionVo();
|
||||
@@ -555,16 +559,8 @@ public class HardXfjServiceImpl implements HardXfjService {
|
||||
}
|
||||
// 扣费
|
||||
if (ObjectUtil.equals(dto.getMode(), "0")) {
|
||||
// `QR`有三种可能性1、微信、支付宝、短码
|
||||
AppPlusPlatformTypeEnum platformType = judgeQrCode(dto.getQR());
|
||||
if (ObjectUtil.isEmpty(platformType)) {
|
||||
throw new RuntimeException("二维码解析错误");
|
||||
}
|
||||
Long userId = null;
|
||||
WalletTypeEnum walletType = null;
|
||||
HardXfjTypeEnum xfjPayType = HardXfjTypeEnum.QRCODE_PAY;
|
||||
if (ObjectUtil.equals(platformType, AppPlusPlatformTypeEnum.ZAX_APP_WALLET)) {
|
||||
walletType = WalletTypeEnum.EAT;
|
||||
// 取餐
|
||||
if (ObjectUtil.equals(dto.getPayType(), 3)) {
|
||||
// 传过来的是`短码`需要解析一下
|
||||
WalletCodeUseEntity data = remoteCodeUseService.getInfoByShortCode(dto.getQR()).getData();
|
||||
if (ObjectUtil.isEmpty(data)) {
|
||||
@@ -572,27 +568,70 @@ public class HardXfjServiceImpl implements HardXfjService {
|
||||
result.setMsg("二维码错误");
|
||||
return result;
|
||||
}
|
||||
userId = data.getUserId();
|
||||
} else if (ObjectUtil.equals(platformType, AppPlusPlatformTypeEnum.WECHAT)) {
|
||||
xfjPayType = HardXfjTypeEnum.WECHAT_QRCODE_PAY;
|
||||
} else if (ObjectUtil.equals(platformType, AppPlusPlatformTypeEnum.ALI_PAY)) {
|
||||
xfjPayType = HardXfjTypeEnum.ALI_QRCODE_PAY;
|
||||
if (ObjectUtil.isEmpty(data.getId())) {
|
||||
result.setStatus(XfjBaseVo.STATUS_FAIL);
|
||||
result.setMsg("不是定餐二维码");
|
||||
return result;
|
||||
}
|
||||
// 查询订单
|
||||
HardOrderEntity order = hardOrderService.getById(data.getBizId());
|
||||
if (ObjectUtil.isEmpty(order)) {
|
||||
result.setStatus(XfjBaseVo.STATUS_FAIL);
|
||||
result.setMsg("定餐订单不存在");
|
||||
return result;
|
||||
}
|
||||
HandCancelCodeDto cancelDto = new HandCancelCodeDto();
|
||||
cancelDto.setOrderId(order.getId());
|
||||
cancelDto.setHardwareId(entity.getId());
|
||||
cancelDto.setUserId(order.getUserId());
|
||||
Boolean isCancel = hardOrderService.handCancelCode(cancelDto);
|
||||
if (!isCancel) {
|
||||
result.setStatus(XfjBaseVo.STATUS_FAIL);
|
||||
result.setMsg("核销订餐失败");
|
||||
return result;
|
||||
}
|
||||
result.setQrorder(String.valueOf(order.getId()));
|
||||
return result;
|
||||
} else {
|
||||
// `QR`有三种可能性1、微信、支付宝、短码
|
||||
AppPlusPlatformTypeEnum platformType = judgeQrCode(dto.getQR());
|
||||
if (ObjectUtil.isEmpty(platformType)) {
|
||||
throw new RuntimeException("二维码解析错误");
|
||||
}
|
||||
Long userId = null;
|
||||
WalletTypeEnum walletType = null;
|
||||
HardXfjTypeEnum xfjPayType = HardXfjTypeEnum.QRCODE_PAY;
|
||||
if (ObjectUtil.equals(platformType, AppPlusPlatformTypeEnum.ZAX_APP_WALLET)) {
|
||||
walletType = WalletTypeEnum.EAT;
|
||||
// 传过来的是`短码`需要解析一下
|
||||
WalletCodeUseEntity data = remoteCodeUseService.getInfoByShortCode(dto.getQR()).getData();
|
||||
if (ObjectUtil.isEmpty(data)) {
|
||||
result.setStatus(XfjBaseVo.STATUS_FAIL);
|
||||
result.setMsg("二维码错误");
|
||||
return result;
|
||||
}
|
||||
userId = data.getUserId();
|
||||
} else if (ObjectUtil.equals(platformType, AppPlusPlatformTypeEnum.WECHAT)) {
|
||||
xfjPayType = HardXfjTypeEnum.WECHAT_QRCODE_PAY;
|
||||
} else if (ObjectUtil.equals(platformType, AppPlusPlatformTypeEnum.ALI_PAY)) {
|
||||
xfjPayType = HardXfjTypeEnum.ALI_QRCODE_PAY;
|
||||
}
|
||||
|
||||
// 解析金额
|
||||
int price = BigDecimal.valueOf(Double.valueOf(dto.getAmount())).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).intValue();
|
||||
|
||||
HardXfjFastCreateOrderDto payDto = new HardXfjFastCreateOrderDto();
|
||||
payDto.setUserId(userId);
|
||||
payDto.setHardId(entity.getId());
|
||||
payDto.setPrice(price);
|
||||
payDto.setWalletType(walletType);
|
||||
payDto.setXfjPayType(xfjPayType);
|
||||
payDto.setPlatformType(platformType);
|
||||
payDto.setDevicePayCode(dto.getQR());
|
||||
Long orderId = hardOrderService.xfjFastCreateOrder(payDto);
|
||||
result.setQrorder(String.valueOf(orderId));
|
||||
return result;
|
||||
}
|
||||
|
||||
// 解析金额
|
||||
int price = BigDecimal.valueOf(Double.valueOf(dto.getAmount())).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).intValue();
|
||||
|
||||
HardXfjFastCreateOrderDto payDto = new HardXfjFastCreateOrderDto();
|
||||
payDto.setUserId(userId);
|
||||
payDto.setHardId(entity.getId());
|
||||
payDto.setPrice(price);
|
||||
payDto.setWalletType(walletType);
|
||||
payDto.setXfjPayType(xfjPayType);
|
||||
payDto.setPlatformType(platformType);
|
||||
payDto.setDevicePayCode(dto.getQR());
|
||||
Long orderId = hardOrderService.xfjFastCreateOrder(payDto);
|
||||
result.setQrorder(String.valueOf(orderId));
|
||||
return result;
|
||||
}
|
||||
// 充值
|
||||
else if (ObjectUtil.equals(dto.getMode(), "1")) {
|
||||
@@ -785,8 +824,9 @@ public class HardXfjServiceImpl implements HardXfjService {
|
||||
redisTemplate.opsForValue().set(lockKey, "1", Duration.ofMinutes(30));
|
||||
log.info("|获取卡号白名单接口|设备 {} 查询完成,设置30分钟锁", entity.getUniqueCode());
|
||||
}
|
||||
for (WalletActiveEntity item : walletActiveRecords) {
|
||||
String whiteCarNumber = generateWhiteCarNumber(String.valueOf(item.getCardSort()), item.getCardNumber(), ObjectUtil.equals(item.getDelFlag(), YesNoEnum.YES.getCode()) ? "0" : "1");
|
||||
for (int i = 0; i < walletActiveRecords.size(); i++) {
|
||||
WalletActiveEntity traget = walletActiveRecords.get(i);
|
||||
String whiteCarNumber = generateWhiteCarNumber(String.valueOf(i + 1), traget.getCardNumber(), ObjectUtil.equals(traget.getDelFlag(), YesNoEnum.YES.getCode()) ? "0" : "1");
|
||||
whiteCarList.add(whiteCarNumber);
|
||||
}
|
||||
result.setCommID(dto.getCommID());
|
||||
|
||||
BIN
Binary file not shown.
+3
-4
@@ -142,10 +142,9 @@ public class MchManageController {
|
||||
dto.setVisibleMobile(YesNoEnum.YES.getCode());
|
||||
if (ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getDeptId())) {
|
||||
UserInfo userInfo = remoteUserService.getInnerByUserId(user.getId()).getData();
|
||||
List<SysDept> pageList = remoteDeptService.getDescendantList(userInfo.getSysUser().getDeptId()).getData();
|
||||
if (ObjectUtil.isNotEmpty(pageList)) {
|
||||
List<Long> deptList = pageList.stream().map(SysDept::getDeptId).distinct().toList();
|
||||
dto.setDeptIds(deptList);
|
||||
MchManageVo targetMch = mchManageService.getViewsCanteenMchByDeptId(userInfo.getSysUser().getDeptId());
|
||||
if (ObjectUtil.isNotEmpty(targetMch)) {
|
||||
dto.setIds(List.of(targetMch.getId()));
|
||||
}
|
||||
} else {
|
||||
R.ok(new Page<>());
|
||||
|
||||
+1
@@ -30,6 +30,7 @@ public interface MchManageMapper extends PjcloudBaseMapper<MchManageEntity> {
|
||||
.eq(dto.getParentIsNull(), MchManageEntity::getParentId, -1L)
|
||||
.likeIfExists(MchManageEntity::getName, dto.getName())
|
||||
.in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds())
|
||||
.in(ObjectUtil.isNotEmpty(dto.getIds()), MchManageEntity::getId, dto.getIds())
|
||||
.apply(ObjectUtil.isNotEmpty(dto.getType()), "FIND_IN_SET({0}, types)", dto.getType())
|
||||
.orderByDesc(MchManageEntity::getSort)
|
||||
.orderByDesc(MchManageEntity::getCreateTime)
|
||||
|
||||
Reference in new issue
Block a user