diff --git a/api/src/main/resources/application.yaml b/api/src/main/resources/application.yaml
index 85671400..4a08b360 100644
--- a/api/src/main/resources/application.yaml
+++ b/api/src/main/resources/application.yaml
@@ -53,6 +53,12 @@ spring:
- Path=/api/dou-api/**
filters:
- StripPrefix=2
+ - id: pdd_api_route
+ uri: lb://pdd-api
+ predicates:
+ - Path=/api/pdd-api/**
+ filters:
+ - StripPrefix=2
# - TokenFilter
# default-filters:
# - TokenFilter
diff --git a/pdd-api/libs/pop-sdk-1.11.8-all-sources.jar b/pdd-api/libs/pop-sdk-1.11.8-all-sources.jar
new file mode 100644
index 00000000..f82f9d12
Binary files /dev/null and b/pdd-api/libs/pop-sdk-1.11.8-all-sources.jar differ
diff --git a/pdd-api/libs/pop-sdk-all-1.11.8.jar b/pdd-api/libs/pop-sdk-all-1.11.8.jar
new file mode 100644
index 00000000..00316367
Binary files /dev/null and b/pdd-api/libs/pop-sdk-all-1.11.8.jar differ
diff --git a/pdd-api/pom.xml b/pdd-api/pom.xml
index ec5e93b7..ed70aead 100644
--- a/pdd-api/pom.xml
+++ b/pdd-api/pom.xml
@@ -1,13 +1,18 @@
4.0.0
+
+
+
+
+
- com.qihang
- qihang-oms
- 1.0-SNAPSHOT
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.0.2
+
-
- com.qihang.jd
+ com.qihang.pdd
pdd-api
jar
@@ -15,15 +20,87 @@
http://maven.apache.org
+ 17
UTF-8
+ UTF-8
+ 3.0.2
+ 2022.0.0.0
+ 0.11.5
- junit
- junit
- 3.8.1
- test
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-undertow
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ com.qihang
+ security
+ 1.0-SNAPSHOT
+
+
+ mysql
+ mysql-connector-java
+ 8.0.33
+
+
+ com.baomidou
+ mybatis-plus-spring-boot3-starter
+ 3.5.5
+
+
+ pdd
+ pop-sdk-all
+ 1.11.8
+ system
+ ${project.basedir}/libs/pop-sdk-all-1.11.8.jar
+
+
+ org.projectlombok
+ lombok
+ 1.18.30
+ provided
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-dependencies
+ ${spring-cloud-alibaba.version}
+ pom
+ import
+
+
+
diff --git a/pdd-api/src/main/java/com/qihang/jd/App.java b/pdd-api/src/main/java/com/qihang/jd/App.java
deleted file mode 100644
index a9db2bb9..00000000
--- a/pdd-api/src/main/java/com/qihang/jd/App.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.qihang.jd;
-
-/**
- * Hello world!
- *
- */
-public class App
-{
- public static void main( String[] args )
- {
- System.out.println( "Hello World!" );
- }
-}
diff --git a/pdd-api/src/main/java/com/qihang/pdd/PddApi.java b/pdd-api/src/main/java/com/qihang/pdd/PddApi.java
new file mode 100644
index 00000000..865f64ee
--- /dev/null
+++ b/pdd-api/src/main/java/com/qihang/pdd/PddApi.java
@@ -0,0 +1,15 @@
+package com.qihang.pdd;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+@ComponentScan(basePackages={"com.qihang"})
+@SpringBootApplication
+public class PddApi {
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello pdd-api!" );
+ SpringApplication.run(PddApi.class, args);
+ }
+}
diff --git a/pdd-api/src/main/java/com/qihang/pdd/controller/HomeController.java b/pdd-api/src/main/java/com/qihang/pdd/controller/HomeController.java
new file mode 100644
index 00000000..26918a08
--- /dev/null
+++ b/pdd-api/src/main/java/com/qihang/pdd/controller/HomeController.java
@@ -0,0 +1,16 @@
+package com.qihang.pdd.controller;
+
+
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@AllArgsConstructor
+@RestController
+public class HomeController {
+ @GetMapping("/")
+ public String home(){
+
+ return "{'code':0,'msg':'pdd-api请通过api访问'}";
+ }
+}
diff --git a/pdd-api/src/main/java/com/qihang/pdd/mapper/SysUserMapper.java b/pdd-api/src/main/java/com/qihang/pdd/mapper/SysUserMapper.java
new file mode 100644
index 00000000..2b0f5096
--- /dev/null
+++ b/pdd-api/src/main/java/com/qihang/pdd/mapper/SysUserMapper.java
@@ -0,0 +1,130 @@
+package com.qihang.pdd.mapper;
+
+import com.qihang.security.entity.SysUser;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 用户表 数据层
+ *
+ * @author qihang
+ */
+@Mapper
+public interface SysUserMapper
+{
+ /**
+ * 根据条件分页查询用户列表
+ *
+ * @param sysUser 用户信息
+ * @return 用户信息集合信息
+ */
+ public List selectUserList(SysUser sysUser);
+
+ /**
+ * 根据条件分页查询已配用户角色列表
+ *
+ * @param user 用户信息
+ * @return 用户信息集合信息
+ */
+ public List selectAllocatedList(SysUser user);
+
+ /**
+ * 根据条件分页查询未分配用户角色列表
+ *
+ * @param user 用户信息
+ * @return 用户信息集合信息
+ */
+ public List selectUnallocatedList(SysUser user);
+
+ /**
+ * 通过用户名查询用户
+ *
+ * @param userName 用户名
+ * @return 用户对象信息
+ */
+ public SysUser selectUserByUserName(String userName);
+
+ /**
+ * 通过用户ID查询用户
+ *
+ * @param userId 用户ID
+ * @return 用户对象信息
+ */
+ public SysUser selectUserById(Long userId);
+
+ /**
+ * 新增用户信息
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ public int insertUser(SysUser user);
+
+ /**
+ * 修改用户信息
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ public int updateUser(SysUser user);
+
+ /**
+ * 修改用户头像
+ *
+ * @param userName 用户名
+ * @param avatar 头像地址
+ * @return 结果
+ */
+ public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar);
+
+ /**
+ * 重置用户密码
+ *
+ * @param userName 用户名
+ * @param password 密码
+ * @return 结果
+ */
+ public int resetUserPwd(@Param("userName") String userName, @Param("password") String password);
+
+ /**
+ * 通过用户ID删除用户
+ *
+ * @param userId 用户ID
+ * @return 结果
+ */
+ public int deleteUserById(Long userId);
+
+ /**
+ * 批量删除用户信息
+ *
+ * @param userIds 需要删除的用户ID
+ * @return 结果
+ */
+ public int deleteUserByIds(Long[] userIds);
+
+ /**
+ * 校验用户名称是否唯一
+ *
+ * @param userName 用户名称
+ * @return 结果
+ */
+ public SysUser checkUserNameUnique(String userName);
+
+ /**
+ * 校验手机号码是否唯一
+ *
+ * @param phonenumber 手机号码
+ * @return 结果
+ */
+ public SysUser checkPhoneUnique(String phonenumber);
+
+ /**
+ * 校验email是否唯一
+ *
+ * @param email 用户邮箱
+ * @return 结果
+ */
+ public SysUser checkEmailUnique(String email);
+}
diff --git a/pdd-api/src/main/java/com/qihang/pdd/service/a.java b/pdd-api/src/main/java/com/qihang/pdd/service/a.java
new file mode 100644
index 00000000..bd940146
--- /dev/null
+++ b/pdd-api/src/main/java/com/qihang/pdd/service/a.java
@@ -0,0 +1,4 @@
+package com.qihang.pdd.service;
+
+public class a {
+}
diff --git a/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysUserServiceImpl.java b/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysUserServiceImpl.java
new file mode 100644
index 00000000..0af46640
--- /dev/null
+++ b/pdd-api/src/main/java/com/qihang/pdd/service/impl/SysUserServiceImpl.java
@@ -0,0 +1,293 @@
+package com.qihang.pdd.service.impl;
+
+import com.qihang.common.common.ServiceException;
+import com.qihang.common.constant.UserConstants;
+import com.qihang.common.utils.StringUtils;
+import com.qihang.pdd.mapper.SysUserMapper;
+import com.qihang.security.entity.SysUser;
+import com.qihang.security.service.ISysUserService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 用户 业务层处理
+ *
+ * @author qihang
+ */
+@Service
+public class SysUserServiceImpl implements ISysUserService
+{
+ private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
+
+ @Autowired
+ private SysUserMapper userMapper;
+
+ /**
+ * 根据条件分页查询用户列表
+ *
+ * @param user 用户信息
+ * @return 用户信息集合信息
+ */
+ @Override
+ public List selectUserList(SysUser user)
+ {
+ return userMapper.selectUserList(user);
+ }
+
+ /**
+ * 根据条件分页查询已分配用户角色列表
+ *
+ * @param user 用户信息
+ * @return 用户信息集合信息
+ */
+ @Override
+ public List selectAllocatedList(SysUser user)
+ {
+ return userMapper.selectAllocatedList(user);
+ }
+
+ /**
+ * 根据条件分页查询未分配用户角色列表
+ *
+ * @param user 用户信息
+ * @return 用户信息集合信息
+ */
+ @Override
+ public List selectUnallocatedList(SysUser user)
+ {
+ return userMapper.selectUnallocatedList(user);
+ }
+
+ /**
+ * 通过用户名查询用户
+ *
+ * @param userName 用户名
+ * @return 用户对象信息
+ */
+ @Override
+ public SysUser selectUserByUserName(String userName)
+ {
+ return userMapper.selectUserByUserName(userName);
+ }
+
+ /**
+ * 通过用户ID查询用户
+ *
+ * @param userId 用户ID
+ * @return 用户对象信息
+ */
+ @Override
+ public SysUser selectUserById(Long userId)
+ {
+ return userMapper.selectUserById(userId);
+ }
+
+ /**
+ * 校验用户名称是否唯一
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ @Override
+ public boolean checkUserNameUnique(SysUser user)
+ {
+ Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
+ SysUser info = userMapper.checkUserNameUnique(user.getUserName());
+ if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
+ {
+ return UserConstants.NOT_UNIQUE;
+ }
+ return UserConstants.UNIQUE;
+ }
+
+ /**
+ * 校验手机号码是否唯一
+ *
+ * @param user 用户信息
+ * @return
+ */
+ @Override
+ public boolean checkPhoneUnique(SysUser user)
+ {
+ Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
+ SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
+ if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
+ {
+ return UserConstants.NOT_UNIQUE;
+ }
+ return UserConstants.UNIQUE;
+ }
+
+ /**
+ * 校验email是否唯一
+ *
+ * @param user 用户信息
+ * @return
+ */
+ @Override
+ public boolean checkEmailUnique(SysUser user)
+ {
+ Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
+ SysUser info = userMapper.checkEmailUnique(user.getEmail());
+ if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
+ {
+ return UserConstants.NOT_UNIQUE;
+ }
+ return UserConstants.UNIQUE;
+ }
+
+ /**
+ * 校验用户是否允许操作
+ *
+ * @param user 用户信息
+ */
+ @Override
+ public void checkUserAllowed(SysUser user)
+ {
+ if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin())
+ {
+ throw new ServiceException("不允许操作超级管理员用户");
+ }
+ }
+
+ /**
+ * 新增保存用户信息
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ @Override
+ @Transactional
+ public int insertUser(SysUser user)
+ {
+ // 新增用户信息
+ int rows = userMapper.insertUser(user);
+// // 新增用户岗位关联
+// insertUserPost(user);
+// // 新增用户与角色管理
+// insertUserRole(user);
+ return rows;
+ }
+
+ /**
+ * 注册用户信息
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ @Override
+ public boolean registerUser(SysUser user)
+ {
+ return userMapper.insertUser(user) > 0;
+ }
+
+ /**
+ * 修改保存用户信息
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ @Override
+ @Transactional
+ public int updateUser(SysUser user)
+ {
+ Long userId = user.getUserId();
+// // 删除用户与角色关联
+// userRoleMapper.deleteUserRoleByUserId(userId);
+// // 新增用户与角色管理
+// insertUserRole(user);
+// // 删除用户与岗位关联
+// userPostMapper.deleteUserPostByUserId(userId);
+ // 新增用户与岗位管理
+// insertUserPost(user);
+ return userMapper.updateUser(user);
+ }
+
+
+ /**
+ * 修改用户状态
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ @Override
+ public int updateUserStatus(SysUser user)
+ {
+ return userMapper.updateUser(user);
+ }
+
+ /**
+ * 修改用户基本信息
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ @Override
+ public int updateUserProfile(SysUser user)
+ {
+ return userMapper.updateUser(user);
+ }
+
+ /**
+ * 修改用户头像
+ *
+ * @param userName 用户名
+ * @param avatar 头像地址
+ * @return 结果
+ */
+ @Override
+ public boolean updateUserAvatar(String userName, String avatar)
+ {
+ return userMapper.updateUserAvatar(userName, avatar) > 0;
+ }
+
+ /**
+ * 重置用户密码
+ *
+ * @param user 用户信息
+ * @return 结果
+ */
+ @Override
+ public int resetPwd(SysUser user)
+ {
+ return userMapper.updateUser(user);
+ }
+
+ /**
+ * 重置用户密码
+ *
+ * @param userName 用户名
+ * @param password 密码
+ * @return 结果
+ */
+ @Override
+ public int resetUserPwd(String userName, String password)
+ {
+ return userMapper.resetUserPwd(userName, password);
+ }
+
+
+
+ /**
+ * 通过用户ID删除用户
+ *
+ * @param userId 用户ID
+ * @return 结果
+ */
+ @Override
+ @Transactional
+ public int deleteUserById(Long userId)
+ {
+// // 删除用户与角色关联
+// userRoleMapper.deleteUserRoleByUserId(userId);
+// // 删除用户与岗位表
+// userPostMapper.deleteUserPostByUserId(userId);
+ return userMapper.deleteUserById(userId);
+ }
+
+}
diff --git a/pdd-api/src/main/resources/application.yml b/pdd-api/src/main/resources/application.yml
new file mode 100644
index 00000000..744e0bbd
--- /dev/null
+++ b/pdd-api/src/main/resources/application.yml
@@ -0,0 +1,21 @@
+spring:
+ cloud:
+ nacos:
+ serverAddr: 127.0.0.1:8848
+ discovery:
+ server-addr: 127.0.0.1:8848
+ config:
+ import:
+ - nacos:qihang-oms.yaml?refresh=true
+ application:
+ name: pdd-api
+
+server:
+ port: 8086
+
+
+mybatis-plus:
+ mapper-locations: classpath*:mapper/**/*Mapper.xml
+ type-aliases-package: com.qihang.pdd.domain;com.qihang.security.entity;
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开启sql日志
\ No newline at end of file
diff --git a/pdd-api/src/main/resources/mapper/SysUserMapper.xml b/pdd-api/src/main/resources/mapper/SysUserMapper.xml
new file mode 100644
index 00000000..bd8a270f
--- /dev/null
+++ b/pdd-api/src/main/resources/mapper/SysUserMapper.xml
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
+
+ from sys_user u
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into sys_user(
+ user_id,
+ dept_id,
+ user_name,
+ nick_name,
+ email,
+ avatar,
+ phonenumber,
+ sex,
+ password,
+ status,
+ create_by,
+ remark,
+ create_time
+ )values(
+ #{userId},
+ #{deptId},
+ #{userName},
+ #{nickName},
+ #{email},
+ #{avatar},
+ #{phonenumber},
+ #{sex},
+ #{password},
+ #{status},
+ #{createBy},
+ #{remark},
+ current_timestamp()
+ )
+
+
+
+ update sys_user
+
+ dept_id = #{deptId},
+ user_name = #{userName},
+ nick_name = #{nickName},
+ email = #{email},
+ phonenumber = #{phonenumber},
+ sex = #{sex},
+ avatar = #{avatar},
+ password = #{password},
+ status = #{status},
+ login_ip = #{loginIp},
+ login_date = #{loginDate},
+ update_by = #{updateBy},
+ remark = #{remark},
+ update_time = current_timestamp()
+
+ where user_id = #{userId}
+
+
+
+ update sys_user set status = #{status} where user_id = #{userId}
+
+
+
+ update sys_user set avatar = #{avatar} where user_name = #{userName}
+
+
+
+ update sys_user set password = #{password} where user_name = #{userName}
+
+
+
+ update sys_user set del_flag = '2' where user_id = #{userId}
+
+
+
+ update sys_user set del_flag = '2' where user_id in
+
+ #{userId}
+
+
+
+
\ No newline at end of file
diff --git a/pdd-api/src/test/java/com/qihang/jd/AppTest.java b/pdd-api/src/test/java/com/qihang/jd/AppTest.java
deleted file mode 100644
index c74a8214..00000000
--- a/pdd-api/src/test/java/com/qihang/jd/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.qihang.jd;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}