ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
File was deleted ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserClientFallbackFactory.java
New file @@ -0,0 +1,29 @@ package com.ruoyi.account.api.factory; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.AppUser; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; /** * @author zhibing.pu * @Date 2024/11/21 9:52 */ @Slf4j public class AppUserClientFallbackFactory implements FallbackFactory<AppUserClient> { @Override public AppUserClient create(Throwable cause) { return new AppUserClient() { @Override public AppUser getAppUserById(Long id) { log.error("根据id获取用户失败:" + cause.getMessage()); throw new RuntimeException("根据id获取用户失败"); } }; } } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
New file @@ -0,0 +1,25 @@ package com.ruoyi.account.api.feignClient; import com.ruoyi.account.api.factory.AppUserClientFallbackFactory; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.common.core.constant.ServiceNameConstants; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; /** * @author zhibing.pu * @Date 2024/11/21 9:50 */ @FeignClient(contextId = "AppUserClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserClientFallbackFactory.class) public interface AppUserClient { /** * 根据id获取用户 * @param id * @return */ @PostMapping("/appUser/getAppUserById") AppUser getAppUserById(@RequestParam("id") Long id); } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
New file @@ -0,0 +1,115 @@ package com.ruoyi.account.api.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; /** * 用户 * @author zhibing.pu * @Date 2024/11/21 9:25 */ @Data @TableName("t_app_user") public class AppUser { /** * 主键 */ @TableId(value = "id", type = IdType.NONE) private Long id; /** * 用户名 */ @TableField("name") private String name; /** * 手机号 */ @TableField("phone") private String phone; /** * 头像 */ @TableField("avatar") private String avatar; /** * 会员id */ @TableField("vip_id") private Integer vipId; /** * 微信openid */ @TableField("wx_openid") private String wxOpenid; /** * 状态(1=正常,2=冻结,3=注销) */ @TableField("status") private Integer status; /** * 添加时间 */ @TableField("create_time") private LocalDateTime createTime; /** * 删除(0=否,1=是) */ @TableField("del_flag") private Integer delFlag; /** * 0否1是第一次添加 */ @TableField("first_add") private Integer firstAdd; /** * 最后一次登录时间 */ @TableField("last_login_time") private LocalDateTime lastLoginTime; /** * 推广人id */ @TableField("invite_user_id") private Long inviteUserId; /** * 拥有门店id */ @TableField("shop_id") private Integer shopId; /** * 合伙人积分数 */ @TableField("part_point") private Integer partPoint; /** * 合伙人培育积分数 */ @TableField("part_grow_point") private Integer partGrowPoint; /** * 消费积分数 */ @TableField("shop_point") private Integer shopPoint; /** * 返佣积分数 */ @TableField("share_point") private Integer sharePoint; /** * 消费总金额 */ @TableField("shop_amount") private BigDecimal shopAmount; /** * 最后消费时间 */ @TableField("last_shop_time") private LocalDateTime lastShopTime; } ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@ com.ruoyi.account.api.factory.AppUserClientFallbackFactory ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -3,12 +3,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.ruoyi.chargingPile.api.feignClient.PartnerClient; import com.ruoyi.chargingPile.api.model.Partner; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import io.seata.spring.annotation.GlobalTransactional; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; @@ -42,15 +39,11 @@ @Resource private SysUserClient userClient; @Resource private PartnerClient partnerClient; @PostMapping("login") @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 public R<?> login(@RequestBody LoginBody form, HttpServletRequest request) { // 用户登录 LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(), request); @@ -63,10 +56,6 @@ map.put("roleName",roles.get(0).getRoleName()); map.put("info", userInfo); if(userInfo.getSysUser().getRoleType() == 2){ Partner partner = partnerClient.getPartnerById(userInfo.getSysUser().getObjectId()).getData(); map.put("partnerName", partner.getName()); } // 修改用户最后登录时间 SysUser sysUser = new SysUser(); sysUser.setUserId(userInfo.getSysUser().getUserId()); ruoyi-auth/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,160 @@ server: port: 9100 tomcat: basedir: /data/tomcat # Spring spring: profiles: # 环境配置 active: dev # active: prod application: # 应用名称 name: ruoyi-auth main: allow-bean-definition-overriding: true allow-circular-references: true --- spring: config: activate: on-profile: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- seata: enabled: true application-id: ${spring.application.name} tx-service-group: seata_tx_group #此处配置自定义的seata事务分组名称 enable-auto-data-source-proxy: false #关闭数据库代理 service: vgroup-mapping: seata_tx_group: default data-source-proxy-mode: AT config: type: nacos nacos: # 开发环境 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP data-id: seata-server.properties username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # data-id: seata-server.properties # username: nacos # password: nacos registry: type: nacos nacos: application: seata-server # 开发环境 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # username: nacos # password: nacos cloud: nacos: discovery: # 开发环境 server-addr: 192.168.110.169:8848 # nacos注册中心地址 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # application: seata-server #Nacos 中 Seata 名称 # username: nacos # password: nacos sentinel: transport: dashboard: 127.0.0.1:8080 # Sentinel控制台地址 eager: true --- spring: config: activate: on-profile: prod cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- spring: config: activate: on-profile: test cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java
@@ -22,9 +22,6 @@ */ public static final String FILE_SERVICE = "ruoyi-file"; public static final String ACCOUNT_SERVICE = "ruoyi-account"; public static final String CHARGINGPILE_SERVICE = "ruoyi-chargingPile"; public static final String OTHER_SERVICE = "ruoyi-other"; public static final String ORDER_SERVICE = "ruoyi-order"; public static final String INTEGRATION_SERVICE = "ruoyi-integration"; public static final String PAYMENT_SERVICE = "ruoyi-payment"; } ruoyi-gateway/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,145 @@ server: port: 9000 tomcat: basedir: /data/tomcat max-swallow-size: 100MB # Spring spring: application: # 应用名称 name: ruoyi-gateway main: allow-bean-definition-overriding: true profiles: # 环境配置 active: dev # active: prod --- spring: config: activate: on-profile: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} sentinel: # 取消控制台懒加载 eager: true transport: # 控制台地址 dashboard: 192.168.110.169:8718 # nacos配置持久化 datasource: ds1: nacos: server-addr: 192.168.110.169:8848 dataId: sentinel-ruoyi-gateway groupId: DEFAULT_GROUP username: nacos password: nacos data-type: json rule-type: gw-flow --- spring: config: activate: on-profile: prod cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} sentinel: # 取消控制台懒加载 eager: true transport: # 控制台地址 dashboard: 192.168.0.137:8718 # nacos配置持久化 datasource: ds1: nacos: server-addr: 192.168.0.137:8848,192.168.0.123:8848 dataId: sentinel-ruoyi-gateway groupId: DEFAULT_GROUP username: nacos password: nacos data-type: json rule-type: gw-flow --- spring: config: activate: on-profile: test cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} sentinel: # 取消控制台懒加载 eager: true transport: # 控制台地址 dashboard: 139.9.236.40:8718 # nacos配置持久化 datasource: ds1: nacos: server-addr: 127.0.0.1:8848 dataId: sentinel-ruoyi-gateway groupId: DEFAULT_GROUP data-type: json rule-type: gw-flow ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,35 @@ # Tomcat server: port: 9300 # Spring spring: application: # 应用名称 name: ruoyi-file profiles: # 环境配置 active: dev --- spring: config: activate: on-profile: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 3b151778-d32e-4bf1-8e94-1efefabc777e config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: 3b151778-d32e-4bf1-8e94-1efefabc777e group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,36 @@ # Tomcat server: port: 9202 # Spring spring: application: # 应用名称 name: ruoyi-gen profiles: # 环境配置 active: dev --- spring: config: activate: on-profile: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.110.64:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 8ebd2324-30b4-477b-af79-b46e717c4fbe config: # 配置中心地址 server-addr: 192.168.110.64:8848 namespace: 8ebd2324-30b4-477b-af79-b46e717c4fbe group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,25 @@ # Tomcat server: port: 9203 # Spring spring: application: # 应用名称 name: ruoyi-job profiles: # 环境配置 active: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 config: # 配置中心地址 server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java
@@ -2,17 +2,15 @@ import com.alibaba.fastjson.JSON; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.common.core.constant.TokenConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import com.ruoyi.system.service.ISysUserService; import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -70,8 +68,8 @@ } //小程序用户 if ("applet".equals(userType)) { TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData(); if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){ AppUser appUser = appUserClient.getAppUserById(Long.valueOf(userid)); if(null == appUser || 1 == appUser.getDelFlag() || 3 == appUser.getStatus()){ log.error("[账户异常处理]请求账户id:{}", userid); unauthorizedResponse(response,"无效的账户"); return; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -10,12 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.service.TokenService; 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; @@ -78,15 +74,6 @@ @Resource private ISysUserRoleService sysUserRoleService; @Resource private RoleSiteClient roleSiteClient; @Resource private UserSiteClient userSiteClient; @Resource private SiteClient siteClient; @Resource private ISysRoleService sysRoleService; @@ -528,35 +515,6 @@ @Override public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, GetSysUserList getSysUserList) { List<SysUser> list = this.baseMapper.getList(pageInfo, getSysUserList); for (SysUser sysUser : list) { List<SysUserRole> list1 = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, sysUser.getUserId())); List<Integer> data1 = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); if (null == data1) { data1 = new ArrayList<>(); } for (SysUserRole sysUserRole : list1) { List<Integer> data = roleSiteClient.getSiteIds(sysUserRole.getRoleId()).getData(); if (null == data) { continue; } data1.addAll(data); } Set<Integer> siteIds = new HashSet<>(data1); List<Site> data = siteClient.getSiteByIds(siteIds.stream().collect(Collectors.toList())).getData(); if (null != data) { List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList()); sysUser.setSiteNames(siteNames); sysUser.setSiteIds(data.stream().map(Site::getId).collect(Collectors.toList())); } List<String> roleNames = new ArrayList<>(); for (SysUserRole sysUserRole : list1) { SysRole sysRole = sysRoleService.selectRoleById(sysUserRole.getRoleId()); roleNames.add(sysRole.getRoleName()); } Long[] roleIds = new Long[]{}; sysUser.setRoleIds(list1.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()).toArray(roleIds)); sysUser.setRoleNames(roleNames); } return pageInfo.setRecords(list); } ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,159 @@ server: port: 9800 tomcat: basedir: /data/tomcat # Spring spring: application: # 应用名称 name: ruoyi-system main: allow-bean-definition-overriding: true profiles: # 环境配置 active: dev # active: prod --- spring: config: activate: on-profile: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP username: nacos password: nacos name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- seata: enabled: true application-id: ${spring.application.name} tx-service-group: seata_tx_group #此处配置自定义的seata事务分组名称 enable-auto-data-source-proxy: false service: vgroup-mapping: seata_tx_group: default data-source-proxy-mode: AT config: type: nacos nacos: # 开发环境 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP data-id: seata-server.properties username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # data-id: seata-server.properties # username: nacos # password: nacos registry: type: nacos nacos: application: seata-server # 开发环境 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # username: nacos # password: nacos cloud: nacos: discovery: # 开发环境 server-addr: 192.168.110.169:8848 # nacos注册中心地址 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # application: seata-server #Nacos 中 Seata 名称 # username: nacos # password: nacos sentinel: transport: dashboard: 127.0.0.1:8080 # Sentinel控制台地址 eager: true --- spring: config: activate: on-profile: prod cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- spring: config: activate: on-profile: test cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
New file @@ -0,0 +1,34 @@ package com.ruoyi.account.controller; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.service.IAppUserService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /** * @author zhibing.pu * @Date 2024/11/21 9:47 */ @RestController @RequestMapping("/appUser") public class AppUserController { @Resource private IAppUserService appUserService; /** * 根据id获取用户信息 * @param id * @return */ @PostMapping("/getAppUserById") public AppUser getAppUserById(@RequestParam("id") Long id){ return appUserService.getById(id); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
@@ -1,8 +1,8 @@ package com.ruoyi.account.filter; import com.alibaba.fastjson.JSON; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.service.TAppUserService; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.service.IAppUserService; import com.ruoyi.common.core.constant.TokenConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; @@ -11,7 +11,6 @@ import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -36,7 +35,7 @@ @Lazy @Resource // private TAppUserService appUserService; private IAppUserService appUserService; @Lazy @Resource @@ -74,8 +73,8 @@ } //小程序用户 if ("applet".equals(userType)) { TAppUser appUser = appUserService.getById(userid); if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){ AppUser appUser = appUserService.getById(userid); if(null == appUser || appUser.getDelFlag() == 1 || 3 == appUser.getStatus()){ log.error("[账户异常处理]请求账户id:{}", userid); unauthorizedResponse(response,"无效的账户"); return; ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java
New file @@ -0,0 +1,11 @@ package com.ruoyi.account.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.account.api.model.AppUser; /** * @author zhibing.pu * @Date 2024/11/21 9:46 */ public interface AppUserMapper extends BaseMapper<AppUser> { } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/IAppUserService.java
New file @@ -0,0 +1,11 @@ package com.ruoyi.account.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.account.api.model.AppUser; /** * @author zhibing.pu * @Date 2024/11/21 9:46 */ public interface IAppUserService extends IService<AppUser> { } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
New file @@ -0,0 +1,15 @@ package com.ruoyi.account.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.mapper.AppUserMapper; import com.ruoyi.account.service.IAppUserService; import org.springframework.stereotype.Service; /** * @author zhibing.pu * @Date 2024/11/21 9:46 */ @Service public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> implements IAppUserService { } ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,96 @@ server: port: 9200 tomcat: basedir: /data/tomcat # Spring spring: application: # 应用名称 name: ruoyi-account main: allow-bean-definition-overriding: true allow-circular-references: true profiles: # 环境配置 active: dev # active: prod --- spring: config: activate: on-profile: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP name: ${spring.application.name} username: nacos password: nacos # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- spring: config: activate: on-profile: prod cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- spring: config: activate: on-profile: test cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java
@@ -2,7 +2,7 @@ import com.alibaba.fastjson.JSON; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.common.core.constant.TokenConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; @@ -11,7 +11,6 @@ import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -69,8 +68,8 @@ } //小程序用户 if ("applet".equals(userType)) { TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData(); if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){ AppUser appUser = appUserClient.getAppUserById(Long.valueOf(userid)); if(null == appUser || appUser.getDelFlag() == 1 || 3 == appUser.getStatus()){ log.error("[账户异常处理]请求账户id:{}", userid); unauthorizedResponse(response,"无效的账户"); return; ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ChargingOrderListInfoVO.java
@@ -1,8 +1,6 @@ package com.ruoyi.order.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -81,8 +79,4 @@ private BigDecimal sharingAmount; @ApiModelProperty(value = "费用明细-手续费") private BigDecimal commissionAmount; @ApiModelProperty(value = "充电信息") List<UploadRealTimeMonitoringData> list; @ApiModelProperty(value = "费用明细-费用列表") List<TChargingOrderAccountingStrategy> list1; } ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,160 @@ server: port: 9400 tomcat: basedir: /data/tomcat # Spring spring: application: # 应用名称 name: ruoyi-order main: allow-bean-definition-overriding: true allow-circular-references: true profiles: # 环境配置 active: dev # active: prod --- spring: config: activate: on-profile: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP name: ${spring.application.name} username: nacos password: nacos # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- seata: enabled: true application-id: ${spring.application.name} tx-service-group: seata_tx_group #此处配置自定义的seata事务分组名称 enable-auto-data-source-proxy: false #关闭数据库代理 service: vgroup-mapping: seata_tx_group: default data-source-proxy-mode: AT config: type: nacos nacos: # 开发环境 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP data-id: seata-server.properties username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # data-id: seata-server.properties # username: nacos # password: nacos registry: type: nacos nacos: application: seata-server # 开发环境 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # username: nacos # password: nacos cloud: nacos: discovery: # 开发环境 server-addr: 192.168.110.169:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # application: seata-server #Nacos 中 Seata 名称 # username: nacos # password: nacos sentinel: transport: dashboard: 127.0.0.1:8080 # Sentinel控制台地址 eager: true --- spring: config: activate: on-profile: prod cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- spring: config: activate: on-profile: test cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/RuoYiOrderApplicationTests.java
@@ -1,146 +1,12 @@ package com.ruoyi.order; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.account.api.feignClient.*; import com.ruoyi.account.api.model.TAppUserCar; import com.ruoyi.chargingPile.api.feignClient.*; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.integration.api.feignClient.*; import com.ruoyi.integration.api.model.ChargingHandshake; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.feignClient.AccountingStrategyDetailOrderClient; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; import com.ruoyi.order.api.vo.AccountingStrategyDetailOrderVo; import com.ruoyi.order.api.vo.ChargingOrderInfoVO; import com.ruoyi.order.api.vo.TransactionRecordMessageVO; import com.ruoyi.order.dto.ChargingDetails; import com.ruoyi.order.dto.MyChargingOrderInfo; import com.ruoyi.order.mapper.TSettlementConfirmMapper; import com.ruoyi.order.service.*; import com.ruoyi.order.vo.EndOfChargePageInfo; import com.ruoyi.other.api.feignClient.IntegralRuleClient; import com.ruoyi.other.api.feignClient.UserTagClient; import com.ruoyi.other.api.feignClient.VipClient; import com.ruoyi.payment.api.feignClient.AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import javax.annotation.Resource; import java.io.PrintWriter; import java.math.BigDecimal; import java.util.*; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = RuoYiOrderApplication.class) public class RuoYiOrderApplicationTests { @Resource private TChargingOrderService chargingOrderService; @Resource private ChargingGunClient chargingGunClient; @Resource private TSettlementConfirmMapper tSettlementConfirmMapper; @Resource private SiteClient siteClient; @Resource private AppUserCarClient appUserCarClient; @Resource private AppUserClient appUserClient; @Resource private ChargingPileClient chargingPileClient; @Resource private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService; @Resource private TokenService tokenService; @Resource private WxPaymentClient wxPaymentClient; @Resource private AliPaymentClient aliPaymentClient; @Resource private AppCouponClient appCouponClient; @Resource private AppUserVipDetailClient appUserVipDetailClient; @Resource private RedisService redisService; @Resource private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; @Resource private ChargingHandshakeClient chargingHandshakeClient; @Resource private SendMessageClient sendMessageClient; @Resource private TOrderEvaluateService orderEvaluateService; @Resource private AccountingStrategyDetailClient accountingStrategyDetailClient; @Resource private AccountingStrategyDetailOrderClient accountingStrategyDetailOrderClient; @Resource private AccountingStrategyClient accountingStrategyClient; @Resource private PlatformStartChargingReplyClient platformStartChargingReplyClient; @Resource private TChargingOrderRefundService chargingOrderRefundService; @Resource private PlatformStopChargingReplyClient platformStopChargingReplyClient; @Resource private AccountingStrategyOrderService accountingStrategyOrderService; @Resource private AccountingStrategyDetailOrderService accountingStrategyDetailOrderService; @Resource private InviteUserClient inviteUserClient; @Resource private AppUserIntegralChangeClient appUserIntegralChangeClient; @Resource private IntegralRuleClient integralRuleClient; @Resource private VipClient vipClient; @Resource private UserTagClient userTagClient; @Resource private AppUserTagClient appUserTagClient; @Resource private SecurityDetectionClient securityDetectionClient; @Test public void test(){ MyChargingOrderInfo myChargingOrderInfo = chargingOrderService.getMyChargingOrderInfo("1852288949187297282"); } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/RuoYiOtherApplication.java
@@ -3,7 +3,6 @@ import com.ruoyi.common.security.annotation.EnableCustomConfig; import com.ruoyi.common.security.annotation.EnableRyFeignClients; import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2; import com.ruoyi.other.webSocket.NettyServer; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,7 +25,6 @@ public class RuoYiOtherApplication { public static void main(String[] args) { SpringApplication.run(RuoYiOtherApplication.class, args); new NettyServer().bind(); System.out.println("(♥◠‿◠)ノ゙ 基础模块启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + " | _ _ \\ \\ \\ / / \n" + ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java
@@ -2,7 +2,7 @@ import com.alibaba.fastjson.JSON; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.common.core.constant.TokenConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; @@ -11,10 +11,8 @@ import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; @@ -70,8 +68,8 @@ } //小程序用户 if ("applet".equals(userType)) { TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData(); if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){ AppUser appUser = appUserClient.getAppUserById(Long.valueOf(userid)); if(null == appUser || 1 == appUser.getDelFlag() || 3 == appUser.getStatus()){ log.error("[账户异常处理]请求账户id:{}", userid); unauthorizedResponse(response,"无效的账户"); return; ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
New file @@ -0,0 +1,160 @@ server: port: 9600 tomcat: basedir: /data/tomcat # Spring spring: application: # 应用名称 name: ruoyi-other main: allow-bean-definition-overriding: true allow-circular-references: true profiles: # 环境配置 active: dev # active: prod --- spring: config: activate: on-profile: dev cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP name: ${spring.application.name} username: nacos password: nacos # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- seata: enabled: true application-id: ${spring.application.name} tx-service-group: seata_tx_group #此处配置自定义的seata事务分组名称 enable-auto-data-source-proxy: false #关闭数据库代理 service: vgroup-mapping: seata_tx_group: default data-source-proxy-mode: AT config: type: nacos nacos: # 开发环境 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP data-id: seata-server.properties username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # data-id: seata-server.properties # username: nacos # password: nacos registry: type: nacos nacos: application: seata-server # 开发环境 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # username: nacos # password: nacos cloud: nacos: discovery: # 开发环境 server-addr: 127.0.0.1:8848 # nacos注册中心地址 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 username: nacos password: nacos # 生产环境 # server-addr: 192.168.0.137:8848,192.168.0.123:8848 # namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a # group: DEFAULT_GROUP # application: seata-server #Nacos 中 Seata 名称 # username: nacos # password: nacos sentinel: transport: dashboard: 127.0.0.1:8080 # Sentinel控制台地址 eager: true --- spring: config: activate: on-profile: prod cloud: nacos: discovery: # 服务注册地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos config: # 配置中心地址 server-addr: 192.168.0.137:8848,192.168.0.123:8848 namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a username: nacos password: nacos group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} --- spring: config: activate: on-profile: test cloud: nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}