Browse Source

Merge branch 'master' of http://8.152.4.3:3000/yp_other/pet-system

steelwei 1 month ago
parent
commit
d6f7a4deed
35 changed files with 549 additions and 37 deletions
  1. 1 0
      pom.xml
  2. 5 1
      ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java
  3. 1 1
      ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PasswordAuthStrategy.java
  4. 1 0
      ruoyi-modules/pom.xml
  5. 1 1
      ruoyi-modules/ruoyi-gen/src/main/resources/application.yml
  6. 1 1
      ruoyi-modules/ruoyi-job/src/main/resources/application.yml
  7. 1 1
      ruoyi-modules/ruoyi-resource/src/main/resources/application.yml
  8. 9 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysStoreController.java
  9. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java
  10. 27 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysStoreListOnOrderVo.java
  11. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java
  12. 3 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysStoreService.java
  13. 25 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysStoreServiceImpl.java
  14. 14 10
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  15. 1 1
      ruoyi-modules/ruoyi-system/src/main/resources/application.yml
  16. 1 1
      ruoyi-modules/ruoyi-workflow/src/main/resources/application.yml
  17. 1 1
      ruoyi-modules/yingpaipay-archieves/src/main/resources/application.yml
  18. 1 1
      ruoyi-modules/yingpaipay-fulfiller/src/main/resources/application.yml
  19. 135 0
      ruoyi-modules/yingpaipay-order/pom.xml
  20. 25 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/controller/OrderStatusController.java
  21. 20 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/domain/vo/OrderStatusVo.java
  22. 30 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/enums/OrderStatusEnum.java
  23. 19 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/YingpaipayOrderApplication.java
  24. 9 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/service/IOrderStatusService.java
  25. 26 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/service/impl/IOrderStatusServiceImpl.java
  26. 35 0
      ruoyi-modules/yingpaipay-order/src/main/resources/application.yml
  27. 8 0
      ruoyi-modules/yingpaipay-order/src/main/resources/banner.txt
  28. 28 0
      ruoyi-modules/yingpaipay-order/src/main/resources/logback-plus.xml
  29. 6 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/controller/SysServiceController.java
  30. 22 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/vo/SysServiceOnOrderVo.java
  31. 3 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/service/ISysServiceService.java
  32. 13 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/service/impl/SysServiceServiceImpl.java
  33. 1 1
      ruoyi-modules/yingpaipay-service/src/main/resources/application.yml
  34. 1 1
      ruoyi-visual/ruoyi-nacos/src/main/resources/application.properties
  35. 73 2
      script/sql/business/create.sql

+ 1 - 0
pom.xml

@@ -76,6 +76,7 @@
                 <nacos.password>nacos</nacos.password>
                 <logstash.address>127.0.0.1:4560</logstash.address>
                 <discovery.ip>192.168.1.118</discovery.ip>
+                <nacos.ip>192.168.1.118</nacos.ip>
             </properties>
             <activation>
                 <!-- 默认环境 -->

+ 5 - 1
ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java

@@ -81,6 +81,10 @@ public class TokenController {
      * @param body 登录信息
      * @return 结果
      */
+    /**
+     * FIXME 修改不通过租户进行隔离
+     * @Author: Huanyi
+     */
     @ApiEncrypt
     @PostMapping("/login")
     public R<LoginVo> login(@RequestBody String body) {
@@ -105,7 +109,7 @@ public class TokenController {
 
         Long userId = LoginHelper.getUserId();
         scheduledExecutorService.schedule(() -> {
-            remoteMessageService.publishMessage(List.of(userId), DateUtils.getTodayHour(new Date()) + "好,欢迎登录 RuoYi-Cloud-Plus 后台管理系统");
+            remoteMessageService.publishMessage(List.of(userId), DateUtils.getTodayHour(new Date()) + "好,欢迎登录 一站护萌 后台管理系统");
         }, 5, TimeUnit.SECONDS);
         return R.ok(loginVo);
     }

+ 1 - 1
ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PasswordAuthStrategy.java

@@ -62,7 +62,7 @@ public class PasswordAuthStrategy implements IAuthStrategy {
         }
         LoginUser loginUser = TenantHelper.dynamic(tenantId, () -> {
             LoginUser user = remoteUserService.getUserInfo(username, tenantId, platformId);
-            loginService.checkLogin(LoginType.PASSWORD, tenantId, username, () -> !BCrypt.checkpw(password, user.getPassword()));
+            loginService.checkLogin(LoginType.PASSWORD, user.getTenantId(), username, () -> !BCrypt.checkpw(password, user.getPassword()));
             return user;
         });
         loginUser.setClientKey(client.getClientKey());

+ 1 - 0
ruoyi-modules/pom.xml

@@ -17,6 +17,7 @@
         <module>yingpaipay-service</module>
         <module>yingpaipay-fulfiller</module>
         <module>yingpaipay-archieves</module>
+        <module>yingpaipay-order</module>
     </modules>
 
     <artifactId>ruoyi-modules</artifactId>

+ 1 - 1
ruoyi-modules/ruoyi-gen/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9211
+  port: 9213
 
 # Spring
 spring:

+ 1 - 1
ruoyi-modules/ruoyi-job/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9203
+  port: 9214
 
 # Spring
 spring:

+ 1 - 1
ruoyi-modules/ruoyi-resource/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9204
+  port: 9212
 
 # Spring
 spring:

+ 9 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysStoreController.java

@@ -7,9 +7,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import org.dromara.system.domain.bo.SysStorePageBo;
-import org.dromara.system.domain.vo.SysStoreListOnMerchantAccountInfoVo;
-import org.dromara.system.domain.vo.SysStoreListOnMerchantStoreInfoVo;
-import org.dromara.system.domain.vo.SysStoreStatusVo;
+import org.dromara.system.domain.vo.*;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -21,7 +19,6 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.system.domain.vo.SysStoreVo;
 import org.dromara.system.domain.bo.SysStoreBo;
 import org.dromara.system.service.ISysStoreService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -129,4 +126,12 @@ public class SysStoreController extends BaseController {
         return R.ok(sysStoreService.listAll());
     }
 
+    @GetMapping("/listOnOrder")
+    public TableDataInfo<SysStoreListOnOrderVo> listOnOrder(
+        @RequestParam(name = "name", required = false) String name,
+        @RequestParam(name = "site", required = false) Long site,
+        PageQuery pageQuery) {
+        return sysStoreService.listOnOrder(name, site,  pageQuery);
+    }
+
 }

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java

@@ -177,7 +177,7 @@ public class SysUserController extends BaseController {
         }
         if (TenantHelper.isEnable()) {
             if (!tenantService.checkAccountBalance(TenantHelper.getTenantId())) {
-                return R.fail("当前租户下用户名额不足,请联系管理员");
+                return R.fail("当前品牌下用户名额不足,请联系管理员");
             }
         }
         user.setPassword(BCrypt.hashpw(user.getPassword()));

+ 27 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysStoreListOnOrderVo.java

@@ -0,0 +1,27 @@
+package org.dromara.system.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class SysStoreListOnOrderVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    private String name;
+
+    private List<Long> services;
+
+    private Long site;
+
+    private String areaCode;
+
+    private String address;
+
+}

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java

@@ -69,7 +69,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
      */
     @Override
     public LoginUser getUserInfo(String username, String tenantId, Integer platformId) throws UserException {
-        return TenantHelper.dynamic(tenantId, () -> {
+        return TenantHelper.ignore(() -> {
             // 用户进行平台隔离 @author: Huanyi
             SysUserVo sysUser = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, username).eq(SysUser::getPlatformId, platformId));
             if (ObjectUtil.isNull(sysUser)) {

+ 3 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysStoreService.java

@@ -2,10 +2,7 @@ package org.dromara.system.service;
 
 import org.dromara.system.domain.SysStore;
 import org.dromara.system.domain.bo.SysStorePageBo;
-import org.dromara.system.domain.vo.SysStoreListOnMerchantAccountInfoVo;
-import org.dromara.system.domain.vo.SysStoreListOnMerchantStoreInfoVo;
-import org.dromara.system.domain.vo.SysStoreStatusVo;
-import org.dromara.system.domain.vo.SysStoreVo;
+import org.dromara.system.domain.vo.*;
 import org.dromara.system.domain.bo.SysStoreBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -78,4 +75,6 @@ public interface ISysStoreService {
     List<SysStoreListOnMerchantAccountInfoVo> listAll();
 
     List<Long> selectStoreIds(Long userId);
+
+    TableDataInfo<SysStoreListOnOrderVo> listOnOrder(String name, Long site, PageQuery pageQuery);
 }

+ 25 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysStoreServiceImpl.java

@@ -19,16 +19,13 @@ import org.dromara.system.constants.StoreConstants;
 import org.dromara.system.domain.SysAreaStation;
 import org.dromara.system.domain.SysUserStore;
 import org.dromara.system.domain.bo.SysStorePageBo;
-import org.dromara.system.domain.vo.SysStoreListOnMerchantAccountInfoVo;
-import org.dromara.system.domain.vo.SysStoreListOnMerchantStoreInfoVo;
-import org.dromara.system.domain.vo.SysStoreStatusVo;
+import org.dromara.system.domain.vo.*;
 import org.dromara.system.enums.AreaStationStatusEnum;
 import org.dromara.system.enums.SysStoreStatusEnum;
 import org.dromara.system.mapper.SysAreaStationMapper;
 import org.dromara.system.mapper.SysUserStoreMapper;
 import org.springframework.stereotype.Service;
 import org.dromara.system.domain.bo.SysStoreBo;
-import org.dromara.system.domain.vo.SysStoreVo;
 import org.dromara.system.domain.SysStore;
 import org.dromara.system.mapper.SysStoreMapper;
 import org.dromara.system.service.ISysStoreService;
@@ -262,4 +259,28 @@ public class SysStoreServiceImpl implements ISysStoreService {
                 .eq(userId != null, SysUserStore::getUserId, userId)
         ).stream().map(SysUserStore::getStoreId).toList();
     }
+
+    @Override
+    public TableDataInfo<SysStoreListOnOrderVo> listOnOrder(String name, Long site, PageQuery pageQuery) {
+
+        Page<SysStore> page = baseMapper.selectPage(
+            pageQuery.build(),
+            Wrappers.lambdaQuery(SysStore.class).like(StringUtils.isNotBlank(name), SysStore::getName, name).eq(site != null, SysStore::getSite, site)
+        );
+
+        List<Long> ids = new ArrayList<>();
+        page.getRecords().forEach(e -> ids.add(e.getId()));
+        Map<Long, List<Long>> map = storeServiceService.getByIds(ids);
+
+        return TableDataInfo.build(page.convert(e -> {
+            SysStoreListOnOrderVo vo = new SysStoreListOnOrderVo();
+            vo.setId(e.getId());
+            vo.setName(e.getName());
+            vo.setServices(map.get(e.getId()));
+            vo.setSite(e.getSite());
+            vo.setAreaCode(e.getAreaCode());
+            vo.setAddress(e.getDetailAddress());
+            return vo;
+        }));
+    }
 }

+ 14 - 10
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -19,9 +19,9 @@ import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.*;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.platform.Platform;
 import org.dromara.common.platform.PlatformUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.system.domain.*;
 import org.dromara.system.domain.bo.SysUserBo;
 import org.dromara.system.domain.vo.SysPostVo;
@@ -37,6 +37,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
 /**
@@ -244,10 +245,11 @@ public class SysUserServiceImpl implements ISysUserService {
      */
     @Override
     public boolean checkUserNameUnique(SysUserBo user) {
-        boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
+        AtomicBoolean exist = new AtomicBoolean(false);
+        TenantHelper.ignore(() -> exist.set(baseMapper.exists(new LambdaQueryWrapper<SysUser>()
             .eq(SysUser::getUserName, user.getUserName())
-            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
-        return !exist;
+            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()))));
+        return !exist.get();
     }
 
     /**
@@ -257,10 +259,11 @@ public class SysUserServiceImpl implements ISysUserService {
      */
     @Override
     public boolean checkPhoneUnique(SysUserBo user) {
-        boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
+        AtomicBoolean exist = new AtomicBoolean(false);
+        TenantHelper.ignore(() -> exist.set(baseMapper.exists(new LambdaQueryWrapper<SysUser>()
             .eq(SysUser::getPhonenumber, user.getPhonenumber())
-            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
-        return !exist;
+            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()))));
+        return !exist.get();
     }
 
     /**
@@ -270,10 +273,11 @@ public class SysUserServiceImpl implements ISysUserService {
      */
     @Override
     public boolean checkEmailUnique(SysUserBo user) {
-        boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
+        AtomicBoolean exist = new AtomicBoolean(false);
+        TenantHelper.ignore(() -> exist.set(baseMapper.exists(new LambdaQueryWrapper<SysUser>()
             .eq(SysUser::getEmail, user.getEmail())
-            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
-        return !exist;
+            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()))));
+        return !exist.get();
     }
 
     /**

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9201
+  port: 9211
 
 # Spring
 spring:

+ 1 - 1
ruoyi-modules/ruoyi-workflow/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9205
+  port: 9215
 
 # Spring
 spring:

+ 1 - 1
ruoyi-modules/yingpaipay-archieves/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9208
+  port: 9216
 
 # Spring
 spring:

+ 1 - 1
ruoyi-modules/yingpaipay-fulfiller/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9207
+  port: 9217
 
 # Spring
 spring:

+ 135 - 0
ruoyi-modules/yingpaipay-order/pom.xml

@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.dromara</groupId>
+        <artifactId>ruoyi-modules</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <artifactId>yingpaipay-order</artifactId>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-nacos</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Log -->
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-log</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-service-impl</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-doc</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-mybatis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-dubbo</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-seata</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-idempotent</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-tenant</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-security</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-translation</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-sensitive</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-encrypt</artifactId>
+        </dependency>
+
+        <!-- RuoYi Api System -->
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-api-system</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-api-resource</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>yingpaipay-api-service</artifactId>
+        </dependency>
+
+        <!-- RuoYi Api System -->
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-api-workflow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk18on</artifactId>
+            <version>1.80</version>
+            <scope>compile</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 25 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/controller/OrderStatusController.java

@@ -0,0 +1,25 @@
+package org.dromara.controller;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.domain.vo.OrderStatusVo;
+import org.dromara.service.IOrderStatusService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/status")
+@RequiredArgsConstructor
+public class OrderStatusController {
+
+    private final IOrderStatusService orderStatusService;
+
+    @GetMapping("/list")
+    public R<List<OrderStatusVo>> list() {
+        return R.ok(orderStatusService.list());
+    }
+
+}

+ 20 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/domain/vo/OrderStatusVo.java

@@ -0,0 +1,20 @@
+package org.dromara.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class OrderStatusVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Integer value;
+
+    private String label;
+
+    private String color;
+
+}

+ 30 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/enums/OrderStatusEnum.java

@@ -0,0 +1,30 @@
+package org.dromara.enums;
+
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.List;
+
+@Getter
+@AllArgsConstructor(access = AccessLevel.PRIVATE)
+public enum OrderStatusEnum {
+
+    PENDING_DISPATCH(0, "待派单", "#f56c6c"),
+    PENDING_ACCEPT(1, "待接单", "#e6a23c"),
+    IN_SERVICE(2, "服务中", "#49a3ff"),
+    PENDING_CONFIRM(3, "待商家确认", "#bf24e8"),
+    COMPLETED(4, "已完成", "#67c23a"),
+    CANCELLED(5, "已取消", "#909399"),
+    ;
+
+    private final Integer value;
+    private final String label;
+    private final String color;
+
+    public static List<OrderStatusEnum> list() {
+        return Arrays.asList(values());
+    }
+
+}

+ 19 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/YingpaipayOrderApplication.java

@@ -0,0 +1,19 @@
+package org.dromara.order;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
+
+@SpringBootApplication
+@Slf4j
+public class YingpaipayOrderApplication {
+
+    public static void main(String[] args) {
+        SpringApplication application = new SpringApplication(YingpaipayOrderApplication.class);
+        application.setApplicationStartup(new BufferingApplicationStartup(2048));
+        application.run(args);
+        log.info("(♥◠‿◠)ノ゙  订单模块启动成功   ლ(´ڡ`ლ)゙  ");
+    }
+
+}

+ 9 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/service/IOrderStatusService.java

@@ -0,0 +1,9 @@
+package org.dromara.service;
+
+import org.dromara.domain.vo.OrderStatusVo;
+
+import java.util.List;
+
+public interface IOrderStatusService {
+    List<OrderStatusVo> list();
+}

+ 26 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/service/impl/IOrderStatusServiceImpl.java

@@ -0,0 +1,26 @@
+package org.dromara.service.impl;
+
+import org.dromara.domain.vo.OrderStatusVo;
+import org.dromara.enums.OrderStatusEnum;
+import org.dromara.service.IOrderStatusService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class IOrderStatusServiceImpl implements IOrderStatusService {
+
+    @Override
+    public List<OrderStatusVo> list() {
+        return OrderStatusEnum.list().stream()
+            .map(e -> {
+                OrderStatusVo vo = new OrderStatusVo();
+                vo.setValue(e.getValue());
+                vo.setLabel(e.getLabel());
+                vo.setColor(e.getColor());
+                return vo;
+            })
+            .toList();
+    }
+
+}

+ 35 - 0
ruoyi-modules/yingpaipay-order/src/main/resources/application.yml

@@ -0,0 +1,35 @@
+# Tomcat
+server:
+  port: 9219
+
+# Spring
+spring:
+  application:
+    # 应用名称
+    name: yingpaipay-order
+  profiles:
+    # 环境配置
+    active: @profiles.active@
+
+--- # nacos 配置
+spring:
+  cloud:
+    nacos:
+      # nacos 服务地址
+      server-addr: @nacos.server@
+      username: @nacos.username@
+      password: @nacos.password@
+      discovery:
+        ip: @discovery.ip@
+        # 注册组
+        group: @nacos.discovery.group@
+        namespace: ${spring.profiles.active}
+      config:
+        # 配置组
+        group: @nacos.config.group@
+        namespace: ${spring.profiles.active}
+  config:
+    import:
+      - optional:nacos:application-common.yml
+      - optional:nacos:datasource.yml
+      - optional:nacos:${spring.application.name}.yml

+ 8 - 0
ruoyi-modules/yingpaipay-order/src/main/resources/banner.txt

@@ -0,0 +1,8 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+        .__                            .__                                              .___
+ ___.__.|__| ____    ____ ___________  |__|__________  ___.__.           ___________  __| _/___________
+<   |  ||  |/    \  / ___\\____ \__  \ |  \____ \__  \<   |  |  ______  /  _ \_  __ \/ __ |/ __ \_  __ \
+ \___  ||  |   |  \/ /_/  >  |_> > __ \|  |  |_> > __ \\___  | /_____/ (  <_> )  | \/ /_/ \  ___/|  | \/
+ / ____||__|___|  /\___  /|   __(____  /__|   __(____  / ____|          \____/|__|  \____ |\___  >__|
+ \/             \//_____/ |__|       \/   |__|       \/\/                                \/    \/

+ 28 - 0
ruoyi-modules/yingpaipay-order/src/main/resources/logback-plus.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/${project.artifactId}" />
+   <!-- 日志输出格式 -->
+    <property name="console.log.pattern"
+              value="%cyan(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
+
+    <!-- 控制台输出 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${console.log.pattern}</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+    </appender>
+
+    <include resource="logback-common.xml" />
+
+    <include resource="logback-logstash.xml" />
+
+    <!-- 开启 skywalking 日志收集 -->
+    <include resource="logback-skylog.xml" />
+
+	<!--系统操作日志-->
+    <root level="info">
+        <appender-ref ref="console" />
+    </root>
+</configuration>

+ 6 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/controller/SysServiceController.java

@@ -7,6 +7,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import org.dromara.service.domain.vo.SysServiceModeVo;
+import org.dromara.service.domain.vo.SysServiceOnOrderVo;
 import org.dromara.service.domain.vo.SysServiceOnStoreVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -111,4 +112,9 @@ public class SysServiceController extends BaseController {
         return R.ok(sysServiceService.listOnStore());
     }
 
+    @GetMapping("/listOnOrder")
+    public R<List<SysServiceOnOrderVo>> listOnOrder() {
+        return R.ok(sysServiceService.listOnOrder());
+    }
+
 }

+ 22 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/vo/SysServiceOnOrderVo.java

@@ -0,0 +1,22 @@
+package org.dromara.service.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class SysServiceOnOrderVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    private String name;
+
+    private String remark;
+
+    private Integer mode;
+
+}

+ 3 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/service/ISysServiceService.java

@@ -1,6 +1,7 @@
 package org.dromara.service.service;
 
 import org.dromara.service.domain.SysService;
+import org.dromara.service.domain.vo.SysServiceOnOrderVo;
 import org.dromara.service.domain.vo.SysServiceOnStoreVo;
 import org.dromara.service.domain.vo.SysServiceVo;
 import org.dromara.service.domain.bo.SysServiceBo;
@@ -69,4 +70,6 @@ public interface ISysServiceService {
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     List<SysServiceOnStoreVo> listOnStore();
+
+    List<SysServiceOnOrderVo> listOnOrder();
 }

+ 13 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/service/impl/SysServiceServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.service.domain.vo.SysServiceOnOrderVo;
 import org.dromara.service.domain.vo.SysServiceOnStoreVo;
 import org.springframework.stereotype.Service;
 import org.dromara.service.domain.bo.SysServiceBo;
@@ -139,4 +140,16 @@ public class SysServiceServiceImpl implements ISysServiceService {
             return vo;
         }).toList();
     }
+
+    @Override
+    public List<SysServiceOnOrderVo> listOnOrder() {
+        return baseMapper.selectList().stream().map(e -> {
+            SysServiceOnOrderVo vo = new SysServiceOnOrderVo();
+            vo.setId(e.getId());
+            vo.setName(e.getName());
+            vo.setRemark(e.getRemark());
+            vo.setMode(e.getMode());
+            return vo;
+        }).toList();
+    }
 }

+ 1 - 1
ruoyi-modules/yingpaipay-service/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9206
+  port: 9218
 
 # Spring
 spring:

+ 1 - 1
ruoyi-visual/ruoyi-nacos/src/main/resources/application.properties

@@ -28,7 +28,7 @@ server.port=8848
 # nacos.inetutils.prefer-hostname-over-ip=false
 
 ### Specify local server's IP:
-nacos.inetutils.ip-address=192.168.1.140
+nacos.inetutils.ip-address=@nacos.ip@
 
 spring.application.name=ruoyi-nacos
 #*************** Config Module Related Configurations ***************#

+ 73 - 2
script/sql/business/create.sql

@@ -108,7 +108,78 @@ CREATE TABLE `pet_system`.`sys_sms_config`
 # 2026/02/28
 CREATE TABLE `pet_system`.`sys_user_store`
 (
-    `user_id`    bigint NOT NULL COMMENT '用户ID',
-    `store_id`   bigint NOT NULL COMMENT '门店ID',
+    `user_id`  bigint NOT NULL COMMENT '用户ID',
+    `store_id` bigint NOT NULL COMMENT '门店ID',
     PRIMARY KEY (`user_id`, `store_id`)
 ) ENGINE = innoDB COMMENT = '用户门店关系表';
+
+# 2026/03/03
+CREATE TABLE `pet_system`.`sys_order`
+(
+    `id`                          bigint PRIMARY KEY NOT NULL COMMENT '序号',
+    `code`                        varchar(255)       NOT NULL COMMENT '订单号',
+
+    # 门店信息
+    `store`                       bigint             NOT NULL COMMENT '所属门店ID',
+    `store_site`                  varchar(128)       NOT NULL COMMENT '所属门店站点',
+
+    # 下单人
+    `order_placer`                bigint             NOT NULL COMMENT '下单人',
+
+    # 客户以及宠物等信息
+    `usr_customer`                bigint             NOT NULL COMMENT '宠物主',
+    `usr_customer_phone_number`   varchar(32)        NOT NULL COMMENT '宠物主电话',
+    `usr_pet`                     bigint             NOT NULL COMMENT '宠物',
+
+    # 其它信息
+    `service`                     bigint             NOT NULL COMMENT '服务项目',
+    `group_purchase_package_name` varchar(64) COMMENT '团购套餐',
+    `remark`                      varchar(512)       NOT NULL COMMENT '备注',
+    `platform_id`                 tinyint            NOT NULL COMMENT '下单平台',
+    `status`                      tinyint DEFAULT 0 COMMENT '状态',
+    `tenant_id`                   varchar(20)        NOT NULL COMMENT '租户编号',
+    `del_flag`                    char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
+    `create_dept`                 bigint(20) COMMENT '创建部门',
+    `create_by`                   bigint(20) COMMENT '创建者',
+    `create_time`                 datetime COMMENT '创建时间',
+    `update_by`                   bigint(20) COMMENT '更新者',
+    `update_time`                 datetime COMMENT '更新时间'
+) ENGINE = innoDB COMMENT = '订单表';
+
+CREATE TABLE `pet_system`.`sys_sub_order`
+(
+    `id`                   bigint PRIMARY KEY NOT NULL COMMENT '序号',
+    `code`                 varchar(255)       NOT NULL COMMENT '订单号',
+    `order_id`             bigint             NOT NULL COMMENT '父订单ID',
+
+    # 接送单信息
+    `mode`                 tinyint COMMENT '接送模式(仅接送单有)',
+    `type`                 tinyint COMMENT '0接/1送(仅接送单有)',
+
+    # 关于联系
+    `contact`              varchar(255)       NOT NULL COMMENT '联系人',
+    `contact_phone_number` varchar(32)        NOT NULL COMMENT '联系电话',
+
+    # 关于时间
+    `service_time`         datetime           NOT NULL COMMENT '起始服务时间(仅服务单有)',
+    `end_service_time`     datetime           NOT NULL COMMENT '结束服务时间',
+
+    # 地址
+    `from_code`            varchar(128)       NOT NULL COMMENT '起点地址编号(仅接送单有)',
+    `from_address`         varchar(255)       NOT NULL COMMENT '起点详细地址(仅接送单有)',
+    `to_code`              varchar(128)       NOT NULL COMMENT '终点地址编号',
+    `to_address`           varchar(255)       NOT NULL COMMENT '终点详细地址',
+
+    `price`                bigint COMMENT '价格(分)',
+
+    `fulfiller`            bigint COMMENT '履约者',
+
+    `status`               tinyint DEFAULT 0  NOT NULL COMMENT '状态',
+    `tenant_id`            varchar(20)        NOT NULL COMMENT '租户编号',
+    `del_flag`             char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
+    `create_dept`          bigint(20) COMMENT '创建部门',
+    `create_by`            bigint(20) COMMENT '创建者',
+    `create_time`          datetime COMMENT '创建时间',
+    `update_by`            bigint(20) COMMENT '更新者',
+    `update_time`          datetime COMMENT '更新时间'
+) ENGINE = innoDB COMMENT = '子订单表';