From 428ebc05803402bd04ab3e9a6d770bb9eb9e2f65 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 17 八月 2024 16:25:20 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java         |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java     |   49 +++++-
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java               |    6 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java              |   17 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java   |    4 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/Constant/AliConstant.java             |    5 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java        |   38 +----
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java              |   15 ++
 /dev/null                                                                                             |  122 -----------------
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java           |   10 +
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                         |   17 ++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java        |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java             |   64 ++++++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java      |    1 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                   |    9 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java                |    7 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java             |    4 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java             |    4 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java        |    8 +
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml |    3 
 20 files changed, 204 insertions(+), 183 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java
index f5821e7..452dadb 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java
@@ -25,7 +25,7 @@
 		return new CouponClient() {
 			
 			@Override
-			public R<TCoupon> getCouponById(Integer id) {
+			public R<TCoupon> getCouponById1(Integer id) {
 				return R.fail("根据id获取优惠券信息失败:" + throwable.getMessage());
 			}
 		};
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java
index 7d9affe..c4ede7f 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java
@@ -22,6 +22,6 @@
 	 * @param id
 	 * @return
 	 */
-	@PostMapping("/t-coupon/getCouponById/{id}")
-	R<TCoupon> getCouponById(@PathVariable("id") Integer id);
+	@PostMapping("/t-coupon/getCouponById1/{id}")
+	R<TCoupon> getCouponById1(@PathVariable("id") Integer id);
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java
new file mode 100644
index 0000000..0135ce7
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/query/ChangeUserQuery.java
@@ -0,0 +1,15 @@
+package com.ruoyi.system.api.query;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "用户选择列表Query")
+public class ChangeUserQuery extends BasePage {
+
+    @ApiModelProperty(value = "用户名称")
+    private String nickName;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 35abfc4..dc848a4 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -16,6 +16,7 @@
 import com.ruoyi.other.api.domain.TUserSite;
 import com.ruoyi.other.api.feignClient.RoleSiteClient;
 import com.ruoyi.other.api.feignClient.UserSiteClient;
+import com.ruoyi.system.api.query.ChangeUserQuery;
 import com.ruoyi.system.domain.dto.IndexDto;
 import com.ruoyi.system.domain.vo.UserRoleVO;
 import com.ruoyi.system.api.model.*;
@@ -110,6 +111,15 @@
     }
 
     /**
+     * 获取用户选择列表
+     */
+    @PostMapping("/getChangeUserList")
+    @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表"})
+    public AjaxResult<PageInfo<SysUser>> getChangeUserList(@RequestBody ChangeUserQuery query) {
+        return AjaxResult.success(userService.getChangeUserList(query));
+    }
+
+    /**
      * 新增用户
      */
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 74b10ed..3851999 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -5,6 +5,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.system.api.query.ChangeUserQuery;
 import com.ruoyi.system.query.GetSysUserList;
 import org.apache.ibatis.annotations.Param;
 import com.ruoyi.system.api.domain.SysUser;
@@ -139,4 +140,12 @@
     List<Long> getSysUserFromPhone(@Param("phoneNumber") String phoneNumber);
 
     void deleteSysUser(@Param("userIds") ArrayList<Integer> userIds);
+
+    /**
+     * 获取用户选择列表
+     * @param pageInfo
+     * @param query
+     * @return
+     */
+    List<SysUser> getChangeUserList(@Param("pageInfo")PageInfo<SysUser> pageInfo,@Param("query") ChangeUserQuery query);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index c215705..0b89db9 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.query.ChangeUserQuery;
 import com.ruoyi.system.query.GetSysUserList;
 
 /**
@@ -218,4 +219,10 @@
 
     void deleteSysUser(ArrayList<Integer> userIds);
 
+    /**
+     * 获取用户选择列表
+     * @param query
+     * @return
+     */
+    PageInfo<SysUser> getChangeUserList(ChangeUserQuery query);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 6b7e40e..3f42081 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -15,6 +15,7 @@
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.other.api.feignClient.RoleSiteClient;
 import com.ruoyi.other.api.feignClient.UserSiteClient;
+import com.ruoyi.system.api.query.ChangeUserQuery;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.domain.SysUserPost;
 import com.ruoyi.system.domain.SysUserRole;
@@ -609,4 +610,11 @@
         this.baseMapper.deleteSysUser(userIds);
     }
 
+    @Override
+    public PageInfo<SysUser> getChangeUserList(ChangeUserQuery query) {
+        PageInfo<SysUser> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize());
+        List<SysUser> list = this.baseMapper.getChangeUserList(pageInfo, query);
+        return pageInfo.setRecords(list);
+    }
+
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 4446573..6ea45fd 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -155,8 +155,23 @@
 	<select id="getSysUserFromPhone" resultType="java.lang.Long">
 		select user_id from sys_user  where phonenumber =#{phoneNumber}
 	</select>
+    <select id="getChangeUserList" resultType="com.ruoyi.system.api.domain.SysUser">
+		select
+		    user_id AS userId,
+		    nick_name AS nickName,
+		    create_time AS createTime,
+			remark AS remark
+		from sys_user
+		<where>
+			<if test="query.nickName != null and query.nickName != ''">
+				AND nick_name LIKE concat('%',#{query.nickName},'%')
+			</if>
+			AND del_flag = '0'
+		</where>
+		ORDER BY create_time DESC
+	</select>
 
-	<insert id="insertUser" parameterType="com.ruoyi.system.api.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
+    <insert id="insertUser" parameterType="com.ruoyi.system.api.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
  		insert into sys_user(
  			<if test="userId != null and userId != 0">user_id,</if>
  			<if test="deptId != null and deptId != 0">dept_id,</if>
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/Constant/AliConstant.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/Constant/AliConstant.java
index 8cb6198..5cfc7c7 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/Constant/AliConstant.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/Constant/AliConstant.java
@@ -6,5 +6,8 @@
      * 支付宝配置
      */
     public static final String GRANT_TYPE = "authorization_code";
-
+    /**
+     * 获取token接口地址
+     */
+    public static final String LOGIN_SERVER_URL = "https://openapi.alipay.com/gateway.do";
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java
index 52d54d7..8a60f08 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java
@@ -1,6 +1,14 @@
 package com.ruoyi.account.ali.tools;
 
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
 import com.alipay.api.AlipayConfig;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.request.AlipaySystemOauthTokenRequest;
+import com.alipay.api.request.AlipayUserUserinfoShareRequest;
+import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import com.alipay.api.response.AlipayUserUserinfoShareResponse;
+import com.ruoyi.account.ali.Constant.AliConstant;
 import com.ruoyi.account.ali.model.AliProperties;
 import lombok.extern.slf4j.Slf4j;
 
@@ -13,8 +21,14 @@
 @Slf4j
 public class AliAppletTools {
 
-    private static final String SERVER_URL = "https://openapi.alipay.com/gateway.do";
-
+    //设置连接池中的最大可缓存的空闲连接数
+    private static final Integer MaxIdleConnections = 5;
+    //连接超时,单位:毫秒,默认3000
+    private static final Integer ConnectTimeout = 3000;
+    //读取超时,单位:毫秒,默认15000
+    private static final Integer ReadTimeout = 15000;
+    //空闲连接存活时间,单位:毫秒,默认10000L
+    private static final Long KeepAliveDuration = 10000L;
     private AliProperties aliProperties;
 
     public AliAppletTools(AliProperties aliProperties) {
@@ -22,15 +36,57 @@
     }
 
     /**
+     * 支付宝小程序授权登录接口
+     * @param code
+     * @return
+     */
+    public AlipaySystemOauthTokenResponse login(String code) {
+        try {
+            // 初始化SDK
+            AlipayClient alipayClient = new DefaultAlipayClient(new AliAppletTools(aliProperties).getAlipayConfig(AliConstant.LOGIN_SERVER_URL));
+            // 构造请求参数以调用接口
+            AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
+            // 设置授权码
+            request.setCode(code);
+            // 设置授权方式
+            request.setGrantType(AliConstant.GRANT_TYPE);
+            return alipayClient.execute(request);
+        } catch (AlipayApiException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * 支付宝小程序授权获取手机号
+     * @return
+     */
+    public AlipayUserUserinfoShareResponse getUserInfo(String accessToken) {
+        try {
+            // 初始化SDK
+            AlipayClient alipayClient = new DefaultAlipayClient(new AliAppletTools(aliProperties).getAlipayConfig(AliConstant.LOGIN_SERVER_URL));
+            //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.user.userinfo.share
+            AlipayUserUserinfoShareRequest request = new AlipayUserUserinfoShareRequest();
+            //授权类接口执行API调用时需要带上accessToken
+            return alipayClient.execute(request,accessToken);
+        } catch (AlipayApiException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
      * 初始化支付宝配置
      * @return
      */
-    public AlipayConfig getAlipayConfig() {
+    public AlipayConfig getAlipayConfig(String serverUrl) {
         AlipayConfig alipayConfig = new AlipayConfig();
-        alipayConfig.setServerUrl(SERVER_URL);
+        alipayConfig.setServerUrl(serverUrl);
         alipayConfig.setAppId(aliProperties.getAppId());
         alipayConfig.setPrivateKey(aliProperties.getPrivateKey());
         alipayConfig.setAlipayPublicKey(aliProperties.getAlipayPublicKey());
+        alipayConfig.setMaxIdleConnections(MaxIdleConnections);
+        alipayConfig.setConnectTimeout(ConnectTimeout);
+        alipayConfig.setReadTimeout(ReadTimeout);
+        alipayConfig.setKeepAliveDuration(KeepAliveDuration);
         return alipayConfig;
     }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java
index b574502..408d79a 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java
@@ -7,6 +7,7 @@
 import com.alipay.api.diagnosis.DiagnosisUtils;
 import com.alipay.api.request.AlipaySystemOauthTokenRequest;
 import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import com.alipay.api.response.AlipayUserUserinfoShareResponse;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.account.ali.Constant.AliConstant;
@@ -48,44 +49,23 @@
     private AliProperties aliProperties;
     @Autowired
     private TAppUserService appUserService;
-    @Autowired
-    private TokenService tokenService;
     @ApiOperation(value = "通过code获得openid",tags = {"支付宝小程序登录"})
     @GetMapping("/openIdByJsCode")
-    public AjaxResult<Map<String, Object>> openIdByJsCode(@RequestParam(name = "code")@ApiParam(value = "code", required = true) String code) throws AlipayApiException {
+    public AjaxResult<Map<String, Object>> openIdByJsCode(@RequestParam(name = "code")@ApiParam(value = "code", required = true) String code){
         log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", code);
-        // 初始化SDK
-        AlipayClient alipayClient = new DefaultAlipayClient(new AliAppletTools(aliProperties).getAlipayConfig());
-        // 构造请求参数以调用接口
-        AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
-        // 设置授权码
-        request.setCode(code);
-        // 设置授权方式
-        request.setGrantType(AliConstant.GRANT_TYPE);
-        AlipaySystemOauthTokenResponse response = alipayClient.execute(request);
-        TAppUser appUser = null;
+        // 登录
+        AlipaySystemOauthTokenResponse response = new AliAppletTools(aliProperties).login(code);
         if (response.isSuccess()) {
-            String openId = response.getOpenId();
-            appUser = appUserService.getOne(Wrappers.lambdaQuery(TAppUser.class).eq(TAppUser::getAliOpenid, openId).last("limit 1"));
-            if (Objects.isNull(appUser)) {
-                appUser = new TAppUser();
-                appUser.setWxOpenid(openId);
-                appUserService.save(appUser);
-            }
-            log.info("支付宝小程序登录调用成功");
+            // 获取用户信息
+            AlipayUserUserinfoShareResponse userInfo = new AliAppletTools(aliProperties).getUserInfo(response.getAccessToken());
+            log.info("获取支付宝用户信息:{}", userInfo);
+            // 用户信息封装
+            return AjaxResult.ok(appUserService.aliLogin(response,userInfo));
         } else {
              String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
              log.warn("诊断结果:{}",diagnosisUrl);
              throw new ServiceException("支付宝小程序登录失败");
         }
-        LoginUserApplet loginUserApplet = new LoginUserApplet();
-        if(ObjectUtils.isNotNull(appUser)){
-            loginUserApplet.setUserId(appUser.getId());
-        }
-        HashMap<String, Object> tokenInfos = new HashMap<>();
-        tokenInfos.put("token",tokenService.createTokenApplet(loginUserApplet));
-        tokenInfos.put("info",loginUserApplet);
-        return AjaxResult.ok(tokenInfos);
     }
 
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index 2bf740b..54626a4 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -14,6 +14,7 @@
 import com.ruoyi.account.service.TAppUserCarService;
 import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
 import com.ruoyi.chargingPile.api.vo.SiteInfoVO;
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
index e3444f7..58cc16d 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
@@ -62,6 +62,6 @@
         }
         AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey,  data.getIv());
         appletUserDecodeData.setOpenId(openid);
-        return AjaxResult.ok(appUserService.login(appletUserDecodeData));
+        return AjaxResult.ok(appUserService.wxLogin(appletUserDecodeData));
     }
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java
index 11fec43..0a9a179 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java
@@ -1,5 +1,7 @@
 package com.ruoyi.account.service;
 
+import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import com.alipay.api.response.AlipayUserUserinfoShareResponse;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.account.wx.pojo.AppletUserDecodeData;
@@ -21,6 +23,19 @@
      * @param appletUserDecodeData
      * @return
      */
-    Map<String, Object> login(AppletUserDecodeData appletUserDecodeData);
+    Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData);
 
+    /**
+     * 支付宝小程序登录用户封装
+     * @param userInfo
+     * @return
+     */
+    Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,AlipayUserUserinfoShareResponse userInfo);
+
+    /**
+     * 封装用户信息和token
+     * @param appUser
+     * @return
+     */
+    Map<String, Object> getUserInfo(TAppUser appUser);
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
index 912a5e0..4f5b66b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
@@ -1,5 +1,7 @@
 package com.ruoyi.account.service.impl;
 
+import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import com.alipay.api.response.AlipayUserUserinfoShareResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -32,27 +34,22 @@
     @Autowired
     private TokenService tokenService;
     @Override
-    public Map<String, Object> login(AppletUserDecodeData appletUserDecodeData) {
+    public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData) {
         // 通过手机号查询用户,是否已存在手动导入用户
         TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                 .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
                 .isNull(TAppUser::getWxOpenid)
                 .last("LIMIT 1"));
-        LambdaQueryWrapper<TAppUser> wrapper = Wrappers.lambdaQuery(TAppUser.class)
-                .eq(TAppUser::getWxOpenid, appletUserDecodeData.getOpenId());
         if(Objects.isNull(appUser)){
             // 先使用openId和当前手机号进行查询
-            wrapper.eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
-                    .last("LIMIT 1");
-            appUser = this.getOne(wrapper);
+            appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+                    .eq(TAppUser::getWxOpenid, appletUserDecodeData.getOpenId())
+                    .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
+                    .last("LIMIT 1"));
             if(Objects.isNull(appUser)){
                 appUser = new TAppUser();
                 appUser.setPhone(appletUserDecodeData.getPhoneNumber());
             }
-        }else {
-            wrapper.last("LIMIT 1");
-            // 删除小程序原有授权用户
-            this.remove(wrapper);
         }
         appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
         appUser.setCity(appletUserDecodeData.getCity());
@@ -60,6 +57,38 @@
         appUser.setProvince(appletUserDecodeData.getProvince());
         appUser.setWxOpenid(appletUserDecodeData.getOpenId());
         this.saveOrUpdate(appUser);
+        return this.getUserInfo(appUser);
+    }
+
+    @Override
+    public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserUserinfoShareResponse userInfo) {
+        // 通过手机号查询用户,是否已存在手动导入用户
+        TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+                .eq(TAppUser::getPhone, userInfo.getMobile())
+                .isNull(TAppUser::getAliOpenid)
+                .last("LIMIT 1"));
+        if(Objects.isNull(appUser)){
+            // 先使用openId和当前手机号进行查询
+            appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+                    .eq(TAppUser::getAliOpenid, response.getOpenId())
+                    .eq(TAppUser::getPhone, userInfo.getMobile())
+                    .last("LIMIT 1"));
+            if(Objects.isNull(appUser)){
+                appUser = new TAppUser();
+                appUser.setPhone(userInfo.getMobile());
+            }
+        }
+        appUser.setAvatar(userInfo.getAvatar());
+        appUser.setCity(userInfo.getCity());
+        appUser.setName(userInfo.getNickName());
+        appUser.setProvince(userInfo.getProvince());
+        appUser.setAliOpenid(response.getOpenId());
+        this.saveOrUpdate(appUser);
+        return this.getUserInfo(appUser);
+    }
+
+    @Override
+    public Map<String, Object> getUserInfo(TAppUser appUser) {
         LoginUserApplet loginUserApplet = new LoginUserApplet();
         if(ObjectUtils.isNotNull(appUser)){
             loginUserApplet.setUserId(appUser.getId());
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/JsonUtils.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/JsonUtils.java
deleted file mode 100644
index 0b9fe63..0000000
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/JsonUtils.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.ruoyi.account.wx.tools;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
-import com.hotel.config.JacksonConfig;
-import com.hotel.exception.ServiceException;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.IOException;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-
-/**
- * Json转换工具类
- * 参考:https://blog.csdn.net/weixin_38413579/article/details/82562634
- * @author madman
- */
-@Slf4j
-public final class JsonUtils {
-
-    private static final ObjectMapper OM = new ObjectMapper();
-    private static final JavaTimeModule timeModule = new JavaTimeModule();
-
-    /**
-     * 转换LocalDateTime
-     */
-    static class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
-        @Override
-        public void serialize(LocalDateTime localDateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
-            jsonGenerator.writeString(localDateTime.format(DateTimeFormatter.ofPattern(JacksonConfig.dateTimeFormat)));
-        }
-    }
-
-    /**
-     * 转换LocalDate
-     */
-    static class LocalDateSerializer extends JsonSerializer<LocalDate> {
-        @Override
-        public void serialize(LocalDate localDate, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
-            jsonGenerator.writeString(localDate.format(DateTimeFormatter.ofPattern(JacksonConfig.dateFormat)));
-        }
-    }
-
-    /**
-     * 设置 ObjectMapper
-     *
-     * @return
-     */
-    private static ObjectMapper getObjectMapper() {
-        // 序列化
-        timeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
-        timeModule.addSerializer(LocalDate.class, new LocalDateSerializer());
-        // 反序列化
-        timeModule.addDeserializer(LocalDateTime.class,
-                new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(JacksonConfig.dateTimeFormat)));
-        timeModule.addDeserializer(LocalDate.class,
-                new LocalDateDeserializer(DateTimeFormatter.ofPattern(JacksonConfig.dateFormat)));
-        // 允许对象忽略json中不存在的属性
-        OM.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-        OM.registerModule(timeModule);
-        return OM;
-    }
-
-    /**
-     * 将对象序列化
-     */
-    public static <T> String toJsonString(T obj) {
-        try {
-            ObjectMapper om = getObjectMapper();
-            return om.writeValueAsString(obj);
-        } catch (JsonProcessingException e) {
-            log.error("转json字符串失败:{}", obj);
-            return null;
-        }
-    }
-
-    /**
-     * 反序列化对象字符串
-     */
-    public static <T> T parseObject(String json, Class<T> clazz) {
-        try {
-            ObjectMapper om = getObjectMapper();
-            return om.readValue(json, clazz);
-        } catch (JsonProcessingException e) {
-            throw new ServiceException("反序列化对象字符串失败");
-        }
-    }
-
-    /**
-     * 反序列化字符串成为对象
-     */
-    public static <T> T parseObject(String json, TypeReference<T> valueTypeRef) {
-        try {
-            ObjectMapper om = getObjectMapper();
-            return om.readValue(json, valueTypeRef);
-        } catch (JsonProcessingException e) {
-            throw new ServiceException("反序列化字符串成为对象失败");
-        }
-    }
-
-}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java
index 01feebf..2dd2f67 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java
@@ -58,12 +58,6 @@
     private RestTemplate wxRestTemplate;
     private WxCacheTemplate<String> wxCacheTemplate;
 
-    public WxAppletTools(RestTemplate wxRestTemplate, WeixinProperties wxConfig, WxCaffineCache wxCacheTemplate) {
-        this.wxRestTemplate = wxRestTemplate;
-        this.wxCacheTemplate = wxCacheTemplate;
-        this.wxConfig = wxConfig;
-    }
-
     public WxAppletTools(RestTemplate wxRestTemplate, WeixinProperties wxConfig) {
         this.wxRestTemplate = wxRestTemplate;
         this.wxConfig = wxConfig;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxCaffineCache.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxCaffineCache.java
deleted file mode 100644
index 5c40a14..0000000
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxCaffineCache.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package com.ruoyi.account.wx.tools;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.util.StringUtils;
-
-import java.util.Objects;
-import java.util.concurrent.TimeUnit;
-
-/**
- * @author xiaochen
- * @ClassName AbstractCaffineCache
- * @Description
- * @date 2021-01-11 11:27
- */
-@Slf4j
-class WxCaffineCache<T>  implements WxCacheTemplate<T> {
-    /**
-     * 缓存环境
-     */
-    private String env = "wx";
-
-    /**
-     * 本地缓存实例
-     */
-    private LoadingCache<String, Object> loadingCache;
-
-    /**
-     * 构造函数
-     *
-     */
-    public WxCaffineCache() {
-        WxCache cache = WxCache.options().setTimeUnit(TimeUnit.SECONDS).build();
-        // 构建本地缓存实例
-        this.loadingCache = caffineCacheManage(cache);
-    }
-
-
-    @Override
-    public boolean setKey(String key, T value) {
-        if (Objects.isNull(this.loadingCache)) {
-            return Boolean.FALSE;
-        }
-        if (StringUtils.hasLength(this.env)) {
-            this.loadingCache.put(this.env + ":" + key, value);
-        } else {
-            this.loadingCache.put(key, value);
-        }
-        return Boolean.TRUE;
-    }
-
-    @Override
-    public T getKey(String key) {
-        if (Objects.isNull(this.loadingCache)) {
-            return null;
-        }
-        try {
-            if (StringUtils.hasLength(this.env)) {
-                return (T) this.loadingCache.get(this.env + ":" + key);
-            } else {
-                return (T) this.loadingCache.get(key);
-            }
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-    @Override
-    public boolean delKey(String key) {
-        if (Objects.isNull(this.loadingCache)) {
-            return Boolean.FALSE;
-        }
-        if (StringUtils.hasLength(this.env)) {
-            this.loadingCache.invalidate(this.env + ":" + key);
-        } else {
-            this.loadingCache.invalidate(key);
-        }
-        return Boolean.TRUE;
-    }
-
-    /**
-     * 缓存管理
-     *
-     * @param cache
-     * @param <T>
-     * @return
-     */
-    private static <T> LoadingCache<String, T> caffineCacheManage(WxCache cache) {
-        log.info("初始化缓存的实体数据:{}", cache);
-        if (Objects.isNull(cache)) {
-            throw new NullPointerException("请实例化一个Cache对象!");
-        }
-        LoadingCache<String, T> localcache =
-                // 构建本地缓存,调用链的方式
-                // ,1000是设置缓存的初始化容量,maximumSize是设置缓存最大容量,当超过了最大容量,guava将使用LRU算法(最少使用算法),来移除缓存项
-                // expireAfterAccess(12,TimeUnit.HOURS)设置缓存有效期为12个小时
-                Caffeine.newBuilder().initialCapacity(cache.getInitialCapacity()).maximumSize(cache.getMaximumSize())
-                        // 设置写缓存后n秒钟过期
-                        // .expireAfterWrite(30, TimeUnit.SECONDS)
-                        .expireAfterWrite(cache.getDuration(), cache.getTimeunit())
-                        // 设置读写缓存后n秒钟过期,实际很少用到,类似于expireAfterWrite
-                        //.expireAfterAccess(googleCache.getDuration(), googleCache.getTimeunit())
-                        // 只阻塞当前数据加载线程,其他线程返回旧值
-                        //.refreshAfterWrite(10, TimeUnit.SECONDS)
-                        // 设置缓存的移除通知//用户手动移除EXPLICIT,
-                        // //用户手动替换REPLACED,//被垃圾回收COLLECTED,//超时过期EXPIRED,//SIZE由于缓存大小限制
-                        .removalListener(new RemovalListener<String, T>() {
-                            @Override
-                            public void onRemoval(String key, Object value, RemovalCause cause) {
-                                log.info(key + ":" + value + ":" + cause.name());
-                            }
-                        })
-                        // build里面要实现一个匿名抽象类
-                        .build(new CacheLoader<String, T>() {
-                            // 这个方法是默认的数据加载实现,get的时候,如果key没有对应的值,就调用这个方法进行加载。此处是没有默认值则返回null
-                            @Override
-                            public T load(String key) throws Exception {
-                                return null;
-                            }
-                        });
-        return localcache;
-    }
-}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
index 78f3e47..cb53cae 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
@@ -30,8 +30,9 @@
         FROM t_accounting_strategy
         <where>
             <if test="query.name != null and query.name != ''">
-                AND  `name` LIKE concat('%',#{query.name}, '%')
+                AND `name` LIKE concat('%',#{query.name}, '%')
             </if>
+            AND site_id IS NULL
             AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
         </where>
         ORDER BY create_time DESC
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java
index ab3b9ba..7ae05e6 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java
@@ -82,7 +82,7 @@
 				name = goods.getName();
 				imgUrl = goods.getCoverPicture();
 			}else{
-				TCoupon coupon = couponClient.getCouponById(tExchangeOrder.getGoodsId()).getData();
+				TCoupon coupon = couponClient.getCouponById1(tExchangeOrder.getGoodsId()).getData();
 				name = coupon.getName();
 				imgUrl = coupon.getCoverPicture();
 			}
@@ -118,7 +118,7 @@
 			name = goods.getName();
 			imgUrl = goods.getCoverPicture();
 		}else{
-			TCoupon coupon = couponClient.getCouponById(exchangeOrder.getGoodsId()).getData();
+			TCoupon coupon = couponClient.getCouponById1(exchangeOrder.getGoodsId()).getData();
 			info.setCouponType(coupon.getType());
 			info.setDays(coupon.getDays());
 			info.setEndTime(coupon.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
index e47ce7e..eede80e 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -137,8 +137,8 @@
      * @param id
      * @return
      */
-    @PostMapping(value = "/getCouponById/{id}")
-    public R<TCoupon> getCouponById(@PathVariable Integer id){
+    @PostMapping(value = "/getCouponById1/{id}")
+    public R<TCoupon> getCouponById1(@PathVariable(value = "id") Integer id){
         TCoupon coupon = tCouponService.getById(id);
         return R.ok(coupon);
     }

--
Gitblit v1.7.1