diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/config/MinWechatConfiguration.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/config/MinWechatConfiguration.java
new file mode 100644
index 000000000..941c1b7dc
--- /dev/null
+++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/config/MinWechatConfiguration.java
@@ -0,0 +1,38 @@
+package com.bsd.pjcloud.app.config;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
+import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Slf4j
+@Configuration
+@EnableConfigurationProperties(MiniWechatConf.class)
+public class MinWechatConfiguration {
+
+ private final MiniWechatConf properties;
+
+ @Autowired
+ public MinWechatConfiguration(MiniWechatConf properties) {
+ this.properties = properties;
+ }
+
+
+ @Bean
+ public WxMaService wxMaService() {
+
+ WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
+ wxMaDefaultConfig.setAppid(properties.getAppId());
+ wxMaDefaultConfig.setSecret(properties.getAppSecret());
+ wxMaDefaultConfig.setMsgDataFormat("JSON");
+
+ WxMaService maService = new WxMaServiceImpl();
+ maService.setWxMaConfig(wxMaDefaultConfig);
+ return maService;
+ }
+
+}
diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/config/MiniWechatConf.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/config/MiniWechatConf.java
new file mode 100644
index 000000000..d18af0b63
--- /dev/null
+++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/config/MiniWechatConf.java
@@ -0,0 +1,18 @@
+package com.bsd.pjcloud.app.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * 微信小程序配置
+ */
+@Data
+@ConfigurationProperties(prefix = "mini-wechat-pay")
+public class MiniWechatConf {
+ /**
+ * 应用ID
+ */
+ private String appId;
+
+ private String appSecret;
+}
diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppUserAutoLoginController.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppUserAutoLoginController.java
index 04ee43189..589d0e7db 100644
--- a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppUserAutoLoginController.java
+++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/controller/AppUserAutoLoginController.java
@@ -24,6 +24,7 @@ import com.bsd.pjcloud.admin.api.dto.UserTokenDTO;
import com.bsd.pjcloud.admin.api.entity.SysUser;
import com.bsd.pjcloud.admin.api.feign.RemoteTokenService;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
+import com.bsd.pjcloud.app.api.dto.AppUserDTO;
import com.bsd.pjcloud.app.service.AppUserService;
import com.bsd.pjcloud.canteen.api.feign.RemoteCanteenSpuService;
import com.bsd.pjcloud.canteen.api.feign.RemoteDailyMenuService;
@@ -33,6 +34,7 @@ import com.bsd.pjcloud.canteen.entity.CanteenSpuEntity;
import com.bsd.pjcloud.canteen.vo.app.CanteenOnlineSpuAppVO;
import com.bsd.pjcloud.canteen.vo.app.DailyMenuAppVO;
import com.bsd.pjcloud.common.core.util.R;
+import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.security.annotation.Inner;
import com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdPartyAuthService;
import com.bsd.pjcloud.thirdparty.dto.SHJNSSODTO;
@@ -387,12 +389,13 @@ public class AppUserAutoLoginController {
// return appUserService.importUser(excelVOList, bindingResult);
// }
//
-// @Operation(summary = "注册app用户表", description = "注册app用户表")
-// @SysLog("注册app用户表")
-// @Inner(value = false)
-// @PostMapping("/register")
-// public R register(@RequestBody AppUserDTO appUser) {
-// return appUserService.registerAppUser(appUser);
-// }
+
+//@Operation(summary = "注册app用户表", description = "注册app用户表")
+//@SysLog("注册app用户表")
+//@Inner(value = false)
+//@PostMapping("/register")
+//public R register(@RequestBody AppUserDTO appUser) {
+// return appUserService.registerAppUser(appUser);
+//}
}
diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/handler/MiniWechatLoginHandler.java b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/handler/MiniWechatLoginHandler.java
index d9d5e622d..e095d7dd0 100644
--- a/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/handler/MiniWechatLoginHandler.java
+++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/java/com/bsd/pjcloud/app/handler/MiniWechatLoginHandler.java
@@ -17,18 +17,15 @@
package com.bsd.pjcloud.app.handler;
-import cn.hutool.http.HttpUtil;
-import cn.hutool.json.JSONUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.bsd.pjcloud.app.api.constant.AppUserTypeEnum;
import com.bsd.pjcloud.app.api.dto.AppUserInfo;
-import com.bsd.pjcloud.app.api.entity.AppSocialDetails;
import com.bsd.pjcloud.app.api.entity.AppUser;
import com.bsd.pjcloud.app.mapper.AppSocialDetailsMapper;
import com.bsd.pjcloud.app.service.AppUserService;
-import com.bsd.pjcloud.common.core.constant.SecurityConstants;
-import com.bsd.pjcloud.common.core.constant.enums.LoginTypeEnum;
-import com.bsd.pjcloud.common.core.exception.CheckedException;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -47,6 +44,8 @@ public class MiniWechatLoginHandler extends AbstractLoginHandler {
private final AppSocialDetailsMapper appSocialDetailsMapper;
+ private final WxMaService wxMaService;
+
/**
* 小程序登录传入code
*
@@ -57,20 +56,16 @@ public class MiniWechatLoginHandler extends AbstractLoginHandler {
*/
@Override
public String identify(String code) {
- AppSocialDetails condition = new AppSocialDetails();
- condition.setType(LoginTypeEnum.MINI_APP.getType());
- AppSocialDetails socialDetails = appSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
-
- String url = String.format(SecurityConstants.MINI_APP_AUTHORIZATION_CODE_URL, socialDetails.getAppId(),
- socialDetails.getAppSecret(), code);
- String result = HttpUtil.get(url);
- log.debug("微信小程序响应报文:{}", result);
-
- if (JSONUtil.parseObj(result).containsKey("openid")) {
- return JSONUtil.parseObj(result).get("openid").toString();
- } else {
- log.error("微信小程序登录失败:{}", result);
- throw new CheckedException("微信小程序登录失败");
+ try {
+ WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code);
+ if (ObjectUtil.isNotEmpty(session) && ObjectUtil.isNotEmpty(session.getOpenid())) {
+ return session.getOpenid();
+ }
+ return null;
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.error("微信小程序登录失败:{}", e.getMessage());
+ return null;
}
}
@@ -83,22 +78,22 @@ public class MiniWechatLoginHandler extends AbstractLoginHandler {
@Override
public AppUserInfo info(String openId) {
AppUser user = appUserService.getOne(Wrappers.query().lambda().eq(AppUser::getOpenid, openId));
-
- // 未注册用户自动注册
- if (Objects.isNull(user)) {
- log.info("微信小程序未绑定:{},创建新的用户", openId);
+ if (ObjectUtil.isEmpty(user)) {
+ log.info("微信小程序openId:{},创建新的用户", openId);
+ String name = "微信游客-" + openId;
AppUser appUser = new AppUser();
appUser.setOpenid(openId);
- appUser.setUsername(openId);
+ appUser.setUserType(AppUserTypeEnum.MINI_ALIPAY.getType());
+ appUser.setUsername(name);
+ appUser.setName(name);
appUser.setCreateBy(openId);
appUser.setUpdateBy(openId);
appUserService.saveOrUpdate(appUser);
-
- AppUserInfo appUserDTO = new AppUserInfo();
- appUserDTO.setAppUser(appUser);
- return appUserDTO;
+ return appUserService.findUserInfo(user);
}
+ if (ObjectUtil.isEmpty(user.getLoginExtJson())) {
+ }
return appUserService.findUserInfo(user);
}
diff --git a/pjcloud-app-server/pjcloud-app-server-biz/src/main/resources/application.yml b/pjcloud-app-server/pjcloud-app-server-biz/src/main/resources/application.yml
index 645bbb4f6..9a29f8834 100644
--- a/pjcloud-app-server/pjcloud-app-server-biz/src/main/resources/application.yml
+++ b/pjcloud-app-server/pjcloud-app-server-biz/src/main/resources/application.yml
@@ -24,3 +24,7 @@ mini-ali-pay:
alipay-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqnCB+N172m5gxf1Rolfx5LErSiVwQCh0XQdDrVy6aTuVF5EtdqahSHtADyEPsBWudMBhzCfqpoZvfnvH7a+PED6uZ3DoXt7ETh8TmNM5yc+WTnD8pSphQvuHDJ3zMks489KNxiX6sXag71k9H1MXklJGPOUaljHqy/QlRn2ZLT7pFgaFH9LEcVoQBPIOurUn95078h848RFD30jZFW3fakxUGAGVVZaHH62z5OEWOmcA+CwxsEDMa1XMt02RGXgAAq4WOj+BqOGiFmhM8rnrUMchTyvx4umOzGvbF2Y9irN3aBZ5lfg+bzYcJpIOMzlM/V00LnEWzCblJzXNyH4hJQIDAQAB
callback-url: https://rj4jv5rwqs.by.takin.cc/hard/hard-ali-pay/callback
# callback-url: https://stgl.pj.gov.cn/api/hard/hard-ali-pay/callback
+
+mini-wechat-pay:
+ app-id: wx95481f43b14565e5
+ app-secret: 0aee1289b5ae14c0c69b8f5e9a4e518e
diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiStatusEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiStatusEnum.java
index 6bc48e680..c0e050c3e 100644
--- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiStatusEnum.java
+++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiStatusEnum.java
@@ -7,14 +7,15 @@ import lombok.Getter;
import java.util.Arrays;
/**
- * 第三方面密类型
+ * 第三方免密支付状态
*/
@AllArgsConstructor
@Getter
public enum HardThirdMiStatusEnum {
CREATE_ORDER("10", "创建订单"),
- PAY("20", "支付订单"),
+ PAY_SUCCESS("20", "支付成功"),
+ PAY_ERROR("21", "支付失败"),
REFUND("30", "取消/退款"),
;
diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiTypeEnum.java
index bebfaf775..ee88facb8 100644
--- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiTypeEnum.java
+++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiTypeEnum.java
@@ -7,7 +7,7 @@ import lombok.Getter;
import java.util.Arrays;
/**
- * 第三方面密类型
+ * 第三方免密类型
*/
@AllArgsConstructor
@Getter
diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardThirdMiOrderDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardThirdMiOrderDto.java
new file mode 100644
index 000000000..797f734d8
--- /dev/null
+++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardThirdMiOrderDto.java
@@ -0,0 +1,26 @@
+package com.bsd.pjcloud.hard.api.dto;
+
+import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class HardThirdMiOrderDto extends HardThirdMiOrderEntity {
+
+ /**
+ * 创建订单时间
+ */
+ private LocalDateTime[] createOrderTimeList;
+
+ /**
+ * 支付时间
+ */
+ private LocalDateTime[] payOrderTimeList;
+
+ /**
+ * 退款时间
+ */
+ private LocalDateTime[] refundOrderTimeList;
+
+}
diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardThirdMiOrderEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardThirdMiOrderEntity.java
index 088f26f7c..fd358d074 100755
--- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardThirdMiOrderEntity.java
+++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardThirdMiOrderEntity.java
@@ -19,7 +19,6 @@ import java.time.LocalDateTime;
@Schema(description = "硬件商品免密订单")
public class HardThirdMiOrderEntity extends Model {
-
/**
* 编号
*/
@@ -63,6 +62,18 @@ public class HardThirdMiOrderEntity extends Model {
@Schema(description = "订单id")
private Long orderId;
+ /**
+ * 退款id
+ */
+ @Schema(description = "退款id")
+ private Long refundId;
+
+ /**
+ * 设备id
+ */
+ @Schema(description = "设备id")
+ private Long hardId;
+
/**
* 外部订单号
*/
@@ -117,6 +128,12 @@ public class HardThirdMiOrderEntity extends Model {
@Schema(description = "支付金额")
private int payPrice;
+ /**
+ * 退款金额
+ */
+ @Schema(description = "退款金额")
+ private int refundPrice;
+
/**
* 原始 sign json 数据
*/
diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardThirdMiOrderVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardThirdMiOrderVo.java
new file mode 100644
index 000000000..40de0040d
--- /dev/null
+++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardThirdMiOrderVo.java
@@ -0,0 +1,30 @@
+package com.bsd.pjcloud.hard.api.vo;
+
+import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
+import com.bsd.pjcloud.hard.api.vo.base.BaseHardInterface;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class HardThirdMiOrderVo extends HardThirdMiOrderEntity implements BaseHardInterface {
+
+ /**
+ * 用户相关
+ */
+ private String username;
+
+ private String userMobile;
+
+ private String userAvatar;
+
+ /**
+ * 设备相关
+ */
+ private String hardName;
+
+ private String hardType;
+
+ private List hardTypeCodes;
+
+}
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardThirdMiOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardThirdMiOrderController.java
index 8e71e9e24..c2e0a6c59 100755
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardThirdMiOrderController.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardThirdMiOrderController.java
@@ -7,8 +7,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.log.annotation.SysLog;
+import com.bsd.pjcloud.hard.api.dto.HardThirdMiOrderDto;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiPayDto;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
+import com.bsd.pjcloud.hard.api.vo.HardThirdMiOrderVo;
import com.bsd.pjcloud.hard.service.HardThirdMiOrderService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
@@ -55,6 +57,15 @@ public class HardThirdMiOrderController {
return R.ok();
}
+ /**
+ * 退款
+ */
+ @Operation(summary = "退款", description = "退款")
+ @GetMapping("/refund")
+ public R refund(@RequestParam("id") Long id) {
+ hardThirdMiOrderService.refund(id);
+ return R.ok();
+ }
/**
* 分页查询
@@ -62,9 +73,8 @@ public class HardThirdMiOrderController {
@Operation(summary = "分页查询", description = "分页查询")
@GetMapping("/page")
@PreAuthorize("@pms.hasPermission('thirdmi_hardThirdMiOrder_view')")
- public R getHardThirdMiOrderPage(@ParameterObject Page page, @ParameterObject HardThirdMiOrderEntity hardThirdMiOrder) {
- LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
- return R.ok(hardThirdMiOrderService.page(page, wrapper));
+ public R> getHardThirdMiOrderPage(@ParameterObject Page page, @ParameterObject HardThirdMiOrderDto dto) {
+ return R.ok(hardThirdMiOrderService.scopePageJoin(page, dto, null));
}
/**
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardThirdMiOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardThirdMiOrderMapper.java
index 4cc7c22ff..32ed228ac 100755
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardThirdMiOrderMapper.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardThirdMiOrderMapper.java
@@ -1,9 +1,14 @@
package com.bsd.pjcloud.hard.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper;
+import com.bsd.pjcloud.hard.api.dto.HardThirdMiOrderDto;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
+import com.bsd.pjcloud.hard.api.vo.HardThirdMiOrderVo;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
@Mapper
public interface HardThirdMiOrderMapper extends PjcloudBaseMapper {
@@ -19,4 +24,6 @@ public interface HardThirdMiOrderMapper extends PjcloudBaseMapper scopePageJoin(Page page, @Param("dto") HardThirdMiOrderDto dto, DataScope dataScope);
}
\ No newline at end of file
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdMiOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdMiOrderService.java
index b09b04179..0aaff8392 100755
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdMiOrderService.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdMiOrderService.java
@@ -1,22 +1,35 @@
package com.bsd.pjcloud.hard.service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.bsd.pjcloud.common.data.datascope.DataScope;
+import com.bsd.pjcloud.hard.api.dto.HardThirdMiOrderDto;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiPayDto;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
-import jakarta.validation.constraints.NotNull;
+import com.bsd.pjcloud.hard.api.vo.HardThirdMiOrderVo;
public interface HardThirdMiOrderService extends IService {
+ /**
+ * 分页查询
+ */
+ Page scopePageJoin(Page page, HardThirdMiOrderDto dto, DataScope dataScope);
+
/**
* 刷新订单
*/
- void refresh(Long id);
+ HardThirdMiOrderEntity refresh(Long id);
/**
* 后台支付
*/
void adminPay(HardThirdMiPayDto dto);
+ /**
+ * 退款
+ */
+ void refund(Long id);
+
/**
* 根据授权id查询授权订单
*/
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/MiniAlipayService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/MiniAlipayService.java
index ca534d629..f3ed72c60 100644
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/MiniAlipayService.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/MiniAlipayService.java
@@ -17,6 +17,11 @@ public interface MiniAlipayService {
*/
String miDynamicSign(Long userId, UserTypeEnum userType, Long authId);
+ /**
+ * 免密授权(需要押金)
+ */
+ ZhimaCreditPayafteruseCreditbizorderCreateResponse miDynamicCreate(Long userId, UserTypeEnum userType, Long authId);
+
/**
* 查询免密授权
*/
@@ -45,6 +50,6 @@ public interface MiniAlipayService {
/**
* 支付宝免密(取消/退款)
*/
- AlipayTradeRefundResponse miCancelOrRefund(String authId, String refundId, int price);
+ AlipayTradeRefundResponse miCancelOrRefund(HardThirdMiOrderEntity thirdOrder);
}
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java
index 8d203a8b3..d3d6c8ebe 100644
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java
@@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alipay.api.response.AlipayTradeCreateResponse;
+import com.alipay.api.response.ZhimaCreditPayafteruseCreditbizorderCreateResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -150,7 +151,6 @@ public class HardAuthServiceImpl extends ServiceImpl implements HardThirdMiOrderService {
+ private final HardManagerMapper hardManagerMapper;
+
private final MiniAlipayService miniAlipayService;
+ private final RemoteUserService userService;
+
+ /**
+ * 分页查询
+ */
+ @Override
+ public Page scopePageJoin(Page page, HardThirdMiOrderDto dto, DataScope dataScope) {
+ Page pageList = baseMapper.scopePageJoin(page, dto, dataScope);
+ disposeList(pageList.getRecords());
+ return pageList;
+ }
+
/**
* 刷新订单
*/
@Override
- public void refresh(Long id) {
+ public HardThirdMiOrderEntity refresh(Long id) {
HardThirdMiOrderEntity order = baseMapper.selectById(id);
if (ObjectUtil.isEmpty(order)) {
throw new RuntimeException("订单不存在");
@@ -37,7 +68,7 @@ public class HardThirdMiOrderServiceImpl extends ServiceImpl list) {
+ if (ObjectUtil.isEmpty(list)) return;
+ RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+ // 用户部门
+ CompletableFuture userFuture = CompletableFuture.runAsync(() -> {
+ RequestContextHolder.setRequestAttributes(requestAttributes);
+ List userIds = list.stream().map(HardThirdMiOrderVo::getUserId).filter(ObjectUtil::isNotEmpty).distinct().toList();
+ if (ObjectUtil.isNotEmpty(userIds)) {
+ List userList = userService.getUserDeptByIds(userIds).getData();
+ if (ObjectUtil.isNotEmpty(userList)) {
+ Map map = CollectionUtils.convertMap(userList, UserVO::getUserId);
+ for (HardThirdMiOrderVo item : list) {
+ UserVO userVO = map.get(item.getUserId());
+ if (ObjectUtil.isEmpty(userVO)) continue;
+ item.setUsername(userVO.getName());
+ item.setUserMobile(userVO.getPhone());
+ item.setUserAvatar(userVO.getAvatar());
+ }
+ }
+ }
+ });
+ // 设备
+ CompletableFuture deviceFuture = CompletableFuture.runAsync(() -> {
+ RequestContextHolder.setRequestAttributes(requestAttributes);
+ List hardIds = list.stream().map(HardThirdMiOrderVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList();
+ if (ObjectUtil.isNotEmpty(hardIds)) {
+ HardManagerDto hardManagerDto = new HardManagerDto();
+ hardManagerDto.setIds(hardIds);
+ List hardList = hardManagerMapper.list(hardManagerDto);
+ if (ObjectUtil.isNotEmpty(hardList)) {
+ HardUtil.convertHardList(list, CollectionUtils.convertMap(hardList, HardManagerEntity::getId));
+ }
+ }
+ });
+ CompletableFuture.allOf(userFuture, deviceFuture).join();
+ }
+
}
\ No newline at end of file
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/ali/MiniAlipayServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/ali/MiniAlipayServiceImpl.java
index 7b6491e44..d310d8218 100644
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/ali/MiniAlipayServiceImpl.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/ali/MiniAlipayServiceImpl.java
@@ -126,6 +126,51 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
}
}
+ /**
+ * 免密授权(需要押金)
+ */
+ @Override
+ public ZhimaCreditPayafteruseCreditbizorderCreateResponse miDynamicCreate(Long userId, UserTypeEnum userType, Long authId) {
+ int depositPricePrice = 300;
+
+ HardThirdMiOrderEntity thirdOrder = new HardThirdMiOrderEntity();
+ thirdOrder.setBizType(HardThirdMiTypeEnum.MI_ALIPAY.getType());
+ thirdOrder.setAuthId(authId);
+ thirdOrder.setUserId(userId);
+ thirdOrder.setDepositPrice(depositPricePrice);
+ thirdOrder.setUserType(userType.getStatus());
+ thirdOrder.setCreateOrderTime(LocalDateTime.now());
+ thirdOrder.setOrderStatus(HardThirdMiStatusEnum.CREATE_ORDER.getType());
+
+ ZhimaCreditPayafteruseCreditbizorderCreateRequest request = new ZhimaCreditPayafteruseCreditbizorderCreateRequest();
+ ZhimaCreditPayafteruseCreditbizorderCreateModel model = new ZhimaCreditPayafteruseCreditbizorderCreateModel();
+ model.setOutOrderNo(String.valueOf(authId));
+ model.setAmountType("RISK_AMOUNT");
+ model.setZmServiceId(conf.getZmServiceId());
+ model.setCategoryId("credit_pay_after_use");
+ model.setOrderAmount(new BigDecimal(depositPricePrice).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
+ model.setProductCode("CREDIT_PAY_AFTER_USE");
+ model.setSubject("浦江智能柜芝麻先享");
+ model.setBody("浦江智能柜芝麻先享");
+ request.setBizModel(model);
+
+ System.out.println(JSONUtil.toJsonStr(model));
+ try {
+ ZhimaCreditPayafteruseCreditbizorderCreateResponse response = getClient().sdkExecute(request);
+ if (!response.isSuccess()) {
+ log.error("|免密授权(需要押金)|失败,json|{}", response.getBody());
+ return null;
+ }
+ return response;
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.error("|免密授权(需要押金)|异常", e);
+ return null;
+ } finally {
+ hardThirdMiOrderMapper.insert(thirdOrder);
+ }
+ }
+
/**
* 查询面密授权
*/
@@ -209,7 +254,6 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
// 一般是芝麻信用评估不通过、未开通等
if (List.of("ZHIMA_CHECK_NO_PASS", "ZHIMA_EVALUATE_NO_PASS", "CREDIT_AGREEMENT_INVALID").contains(response.getCode())) {
- miDynamicCreate(authId, orderId);
}
response.getCode();
@@ -256,10 +300,13 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
*/
@Override
public AlipayTradeCreateResponse miCreateOrder(String openId, Long authId, Long userId, UserTypeEnum userType) {
+ int depositPricePrice = 10;
+
HardThirdMiOrderEntity thirdOrder = new HardThirdMiOrderEntity();
thirdOrder.setBizType(HardThirdMiTypeEnum.MI_ALIPAY.getType());
thirdOrder.setAuthId(authId);
thirdOrder.setUserId(userId);
+ thirdOrder.setDepositPrice(depositPricePrice);
thirdOrder.setUserType(userType.getStatus());
thirdOrder.setCreateOrderTime(LocalDateTime.now());
thirdOrder.setOrderStatus(HardThirdMiStatusEnum.CREATE_ORDER.getType());
@@ -273,7 +320,7 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
// 设置订单附加信息
bizContent.putOnce("body", "浦江智能柜芝麻先享");
// 设置订单金额
- bizContent.putOnce("total_amount", 0.01);
+ bizContent.putOnce("total_amount", new BigDecimal(depositPricePrice).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
// 固定
bizContent.putOnce("product_code", "JSAPI_PAY");
// 用户登录id
@@ -344,11 +391,12 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
updateObj.setPayOrderTime(LocalDateTime.now());
updateObj.setOrderPrice(totalPrice);
updateObj.setPayPrice(totalPrice);
+ updateObj.setOrderStatus(HardThirdMiStatusEnum.PAY_ERROR.getType());
AlipayTradeOrderPayRequest request = new AlipayTradeOrderPayRequest();
AlipayTradeOrderPayModel model = new AlipayTradeOrderPayModel();
model.setOutRequestNo(String.valueOf(thirdOrder.getOrderId()));
- model.setTradeNo(thirdOrder.getOutOrderNo());
+ model.setTradeNo(thirdOrder.getThirdOrderNo());
model.setFulfillmentAmount(new BigDecimal(totalPrice).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP).toString());
model.setOrderPayMode("CREDIT_FULFILLMENT_ZM");
try {
@@ -360,7 +408,7 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
}
log.info("|支付宝免密扣款|成功,json|{}", response.getBody());
if (ObjectUtil.equals(response.getCode(), "10000")) {
- updateObj.setOrderStatus(HardThirdMiStatusEnum.PAY.getType());
+ updateObj.setOrderStatus(HardThirdMiStatusEnum.PAY_SUCCESS.getType());
return true;
}
return false;
@@ -369,9 +417,7 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
log.error("|支付宝免密扣款|异常", e);
return false;
} finally {
- if (ObjectUtil.isNotEmpty(updateObj.getOrderStatus())) {
- hardThirdMiOrderMapper.updateById(updateObj);
- }
+ hardThirdMiOrderMapper.updateById(updateObj);
}
}
@@ -379,15 +425,15 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
* 支付宝免密(取消/退款)
*/
@Override
- public AlipayTradeRefundResponse miCancelOrRefund(String authId, String refundId, int price) {
+ public AlipayTradeRefundResponse miCancelOrRefund(HardThirdMiOrderEntity thirdOrder) {
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
JSONObject bizContent = new JSONObject();
// 订单总金额
- bizContent.putOnce("refund_amount", new BigDecimal(price).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
+ bizContent.putOnce("refund_amount", new BigDecimal(thirdOrder.getRefundId()).divide(BigDecimal.valueOf(thirdOrder.getRefundPrice()), 2, RoundingMode.HALF_UP));
// 商家订单唯一号
- bizContent.putOnce("out_trade_no", authId);
- bizContent.putOnce("out_request_no", refundId);
+ bizContent.putOnce("out_trade_no", String.valueOf(thirdOrder.getAuthId()));
+ bizContent.putOnce("out_request_no", String.valueOf(thirdOrder.getRefundId()));
//扩展参数
JSONObject extendParam = new JSONObject();
extendParam.putOnce("is_fulfilled", "true");
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java
index 005de5e37..ffa2b0e86 100644
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java
@@ -976,14 +976,6 @@ public class HardOrderServiceImpl extends ServiceImpl
+
+ select a.id,
+ a.biz_type,
+ a.user_id,
+ a.user_type,
+ a.auth_id,
+ a.flow_id,
+ a.order_id,
+ a.refund_id,
+ a.hard_id,
+ a.out_order_no,
+ a.third_order_no,
+ a.create_order_time,
+ a.pay_order_time,
+ a.refund_order_time,
+ a.order_status,
+ a.deposit_price,
+ a.order_price,
+ a.pay_price,
+ a.refund_price,
+ a.org_sign_json,
+ a.org_order_json,
+ a.create_by,
+ a.create_time,
+ a.update_by,
+ a.update_time,
+ a.del_flag,
+ a.tenant_id
+
+
+
+ a.del_flag = '0'
+
+ and a.biz_type = #{dto.bizType}
+
+
+ and a.user_id = #{dto.userId}
+
+
+ and a.hard_id = #{dto.hardId}
+
+
+ and a.user_type = #{dto.userType}
+
+
+ and a.order_status = #{dto.orderStatus}
+
+
+ and a.create_order_time between #{dto.createOrderTimeList[0]} and #{dto.createOrderTimeList[1]}
+
+
+ and a.pay_order_time between #{dto.payOrderTimeList[0]} and #{dto.payOrderTimeList[1]}
+
+
+ and a.refund_order_time between #{dto.refundOrderTimeList[0]} and #{dto.refundOrderTimeList[1]}
+
+
+
+
+
\ No newline at end of file
diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/RegisterController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/RegisterController.java
index 6a5c5a410..29f3e19b2 100644
--- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/RegisterController.java
+++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/RegisterController.java
@@ -26,12 +26,12 @@ public class RegisterController {
private final SysUserService userService;
- /**
- * 注册用户
- *
- * @param userDto 用户信息
- * @return success/false
- */
+// /**
+// * 注册用户
+// *
+// * @param userDto 用户信息
+// * @return success/false
+// */
// @SysLog("注册用户")
// @PostMapping("/user")
// @ConditionalOnProperty(name = "register.user", matchIfMissing = true)
@@ -39,6 +39,14 @@ public class RegisterController {
// return userService.registerUser(userDto);
// }
+ /**
+ * 注册普通用户
+ */
+ @SysLog("注册用户")
+ @PostMapping("/default-user")
+ public R registerDefaultUser(@RequestBody UserDTO userDto) {
+ return userService.registerDefaultUser(userDto);
+ }
/**
diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java
index 16fd28f7d..ed989c10f 100644
--- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java
+++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java
@@ -136,6 +136,11 @@ public interface SysUserService extends IService {
*/
R registerUser(UserDTO userDto);
+ /**
+ * 注册普通用户
+ */
+ R registerDefaultUser(UserDTO userDto);
+
/**
* 锁定用户
*
diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java
index 6b3cc21f2..6d72daab1 100644
--- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java
+++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java
@@ -753,6 +753,71 @@ public class SysUserServiceImpl extends ServiceImpl impl
return R.ok(true);
}
+ /**
+ * 注册用户 赋予用户默认角色
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R registerDefaultUser(UserDTO userDto) {
+ userDto.setPhone(userDto.getUsername());
+ // 判断用户名是否存在
+ boolean usernameExists = this.exists(Wrappers.lambdaQuery().eq(SysUser::getUsername, userDto.getUsername()));
+ if (usernameExists) {
+ String message = MsgUtils.getMessage(ErrorCodes.SYS_USER_USERNAME_EXISTING, userDto.getUsername());
+ return R.failed(message);
+ }
+ // 判断手机号是否存在
+ boolean phoneExists = this.exists(Wrappers.lambdaQuery().eq(SysUser::getPhone, userDto.getPhone()));
+ if (phoneExists) {
+ String message = MsgUtils.getMessage(ErrorCodes.SYS_USER_PHONE_EXISTING, userDto.getPhone());
+ return R.failed(message);
+ }
+ SysUser sysUser = new SysUser();
+ BeanUtils.copyProperties(userDto, sysUser);
+
+ sysUser.setLockFlag(UserStateEnum.NORMAL.getCode());
+ sysUser.setCreateBy(userDto.getUsername());
+ sysUser.setUpdateBy(userDto.getUsername());
+ sysUser.setPassword(ENCODER.encode(userDto.getPassword()));
+ sysUser.setPasswordModifyTime(LocalDateTime.now());
+ sysUser.setProcessStatus(TaskCheckStatusEnum.RESULT.getCode());
+ sysUser.setProcessTime(LocalDateTime.now());
+ sysUser.setStaffingType(UserStaffingTypeEnum.NONE_STAFFING.getType());
+ baseMapper.insert(sysUser);
+
+ // 如果角色为空,赋默认角色
+ if (CollUtil.isEmpty(userDto.getRole())) {
+ // 获取默认角色编码
+ String defaultRole = ParamResolver.getStr("USER_DEFAULT_ROLE");
+ // 默认角色
+ SysRole sysRole = sysRoleService.getOne(Wrappers.lambdaQuery().eq(SysRole::getRoleCode, defaultRole));
+ userDto.setRole(Collections.singletonList(sysRole.getRoleId()));
+ }
+
+ // 插入用户角色关系表
+ userDto.getRole().stream().map(roleId -> {
+ SysUserRole userRole = new SysUserRole();
+ userRole.setUserId(sysUser.getUserId());
+ userRole.setRoleId(roleId);
+ return userRole;
+ }).forEach(sysUserRoleMapper::insert);
+
+ // 创建用户默认钱包、保证线程header
+ RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+ CompletableFuture.runAsync(() -> {
+ try {
+ RequestContextHolder.setRequestAttributes(requestAttributes);
+ // 创建钱包
+ remoteWalletService.createWallet(sysUser.getUserId());
+ // 通知钱包
+ remoteWalletService.userChange(sysUser.getUserId(), Boolean.FALSE);
+ } catch (Exception e) {
+ log.error("|{}|创建用户钱包失败error:|{}|", TAG, e.getMessage());
+ }
+ });
+ return R.ok(null);
+ }
+
/**
* 锁定用户
*
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeInvoiceVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeInvoiceVo.java
index f57be8b94..84e9f053c 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeInvoiceVo.java
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeInvoiceVo.java
@@ -7,6 +7,11 @@ import lombok.Data;
@Data
public class WalletRechargeInvoiceVo extends WalletRechargeInvoiceEntity {
+ /**
+ * 申请人相关
+ */
+ private String applyUsername;
+
private String totalPriceCnStr;
private Boolean isCheckUser;
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeInvoiceServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeInvoiceServiceImpl.java
index bae0b1833..250f56d1e 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeInvoiceServiceImpl.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeInvoiceServiceImpl.java
@@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.dto.UserInfo;
import com.bsd.pjcloud.admin.api.entity.SysDept;
+import com.bsd.pjcloud.admin.api.entity.SysUser;
import com.bsd.pjcloud.admin.api.feign.RemoteDeptService;
import com.bsd.pjcloud.admin.api.feign.RemoteFileService;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
@@ -567,5 +568,18 @@ public class WalletRechargeInvoiceServiceImpl extends ServiceImpl applyUserIds = list.stream().map(WalletRechargeInvoiceVo::getApplyUserId).distinct().filter(ObjectUtil::isNotEmpty).toList();
+ if (ObjectUtil.isNotEmpty(applyUserIds)) {
+ List userData = remoteUserService.getInnerUserById(applyUserIds).getData();
+ if (ObjectUtil.isNotEmpty(userData)) {
+ Map userMap = CollectionUtils.convertMap(userData, SysUser::getUserId);
+ for (WalletRechargeInvoiceVo v : list) {
+ SysUser target = userMap.get(v.getApplyUserId());
+ if (ObjectUtil.isEmpty(target)) continue;
+ v.setApplyUsername(target.getName());
+ }
+ }
+ }
}
}
\ No newline at end of file