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 ); - } -}