From 2e846b93a25896611d08b0d23b4d50bef38d12f4 Mon Sep 17 00:00:00 2001
From: wyb <1977763549@qq.com>
Date: Sun, 26 Feb 2023 00:08:09 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E5=BE=B7=E4=BA=BA=E5=8C=BB=E7=94=A8?=
=?UTF-8?q?=E6=88=B7=E6=8E=A5=E6=94=B6=EF=BC=8Cwebservice?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 +-
src/main/java/com/docus/server/CxfConfig.java | 6 +-
.../collection/config/UserSyncConfig.java | 16 ++
.../docus/server/collection/dto/UserDto.java | 66 ++++++-
.../collection/dto/UserModifyParam.java | 53 +++++
.../server/collection/entity/PowerUser.java | 85 ++++++++
.../collection/mapper/PowerUserMapper.java | 44 +++++
.../collection/service/IPowerUserService.java | 24 +++
.../service/impl/PowerUserServiceImpl.java | 54 ++++++
.../docus/server/collection/util/IdUtil.java | 22 +++
.../collection/webservice/IUserServer.java | 9 +-
.../webservice/impl/UserServerImpl.java | 183 +++++++++++++++++-
src/main/resources/bootstrap.yml | 4 +-
src/main/resources/mapper/PowerUserMapper.xml | 38 ++++
.../webservice/impl/UserServerImplTest.java | 141 ++++++++++++++
15 files changed, 732 insertions(+), 19 deletions(-)
create mode 100644 src/main/java/com/docus/server/collection/config/UserSyncConfig.java
create mode 100644 src/main/java/com/docus/server/collection/dto/UserModifyParam.java
create mode 100644 src/main/java/com/docus/server/collection/entity/PowerUser.java
create mode 100644 src/main/java/com/docus/server/collection/mapper/PowerUserMapper.java
create mode 100644 src/main/java/com/docus/server/collection/service/IPowerUserService.java
create mode 100644 src/main/java/com/docus/server/collection/service/impl/PowerUserServiceImpl.java
create mode 100644 src/main/java/com/docus/server/collection/util/IdUtil.java
create mode 100644 src/main/resources/mapper/PowerUserMapper.xml
create mode 100644 src/test/java/com/docus/server/collection/webservice/impl/UserServerImplTest.java
diff --git a/pom.xml b/pom.xml
index 5b74b44..c752338 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,7 +157,11 @@
org.springframework.cloud
spring-cloud-starter-openfeign
-
+
+ junit
+ junit
+ test
+
diff --git a/src/main/java/com/docus/server/CxfConfig.java b/src/main/java/com/docus/server/CxfConfig.java
index 386e616..b2b4da3 100644
--- a/src/main/java/com/docus/server/CxfConfig.java
+++ b/src/main/java/com/docus/server/CxfConfig.java
@@ -4,6 +4,7 @@ import com.docus.server.collection.webservice.IUserServer;
import com.docus.server.collection.webservice.TBasicService;
import org.apache.cxf.jaxws.EndpointImpl;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -35,9 +36,10 @@ public class CxfConfig {
}
@Bean
- public Endpoint endpoint1() {
+ @Qualifier("userEndPoint")
+ public Endpoint userEndPoint() {
EndpointImpl endpoint = new EndpointImpl(springBus(), userServer);
- endpoint.publish("/api");
+ endpoint.publish("/api/user");
return endpoint;
}
diff --git a/src/main/java/com/docus/server/collection/config/UserSyncConfig.java b/src/main/java/com/docus/server/collection/config/UserSyncConfig.java
new file mode 100644
index 0000000..a839af9
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/config/UserSyncConfig.java
@@ -0,0 +1,16 @@
+package com.docus.server.collection.config;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户同步配置
+ * @author wyb
+ */
+@Data
+@Component
+public class UserSyncConfig {
+ @Value("${docus.user.defpwd:}")
+ private String password;
+}
diff --git a/src/main/java/com/docus/server/collection/dto/UserDto.java b/src/main/java/com/docus/server/collection/dto/UserDto.java
index c998a2f..ef127af 100644
--- a/src/main/java/com/docus/server/collection/dto/UserDto.java
+++ b/src/main/java/com/docus/server/collection/dto/UserDto.java
@@ -8,10 +8,68 @@ import lombok.Data;
* @date 2022-11-14 19:02
*/
@Data
-@Builder
public class UserDto {
- private Long id;
+ /**
+ * id-消息流水号 返回消息体需要
+ */
+ private String messageId;
+ /**
+ * 接收方
+ */
+ private String receiver;
+
+ /**
+ * 用户操作 operateType有三种值:C 代表新增、U 代表修改、D 代表删除
+ */
+ private String operateType;
+
+ /**
+ * 用户姓名
+ */
private String name;
- private Integer age;
- private String address;
+ /**
+ * 用户工号
+ */
+ private String userName;
+ /**
+ * 所属科室编号
+ */
+ private String deptId;
+ /**
+ * 到时同步完让实施找下不重复的导入到角色表,程序再判断职位对应角色表存角色id(roleId),初始roleId=0
+ */
+ private String position;
+ /**
+ * 角色Id 初始 0
+ */
+ private Long roleId;
+
+ /**
+ * 操作人名称
+ */
+ private String authorName;
+
+
+ /**
+ * 操作人ID
+ */
+ private String authorId;
+
+
+ /**
+ * 转换用户修改对象
+ *
+ * @return 用户修改对象
+ */
+ public UserModifyParam transUserAddParam() {
+ UserModifyParam userModifyParam = new UserModifyParam();
+ userModifyParam.setUserName(this.userName);
+ userModifyParam.setName(this.name);
+ userModifyParam.setPosition(this.position);
+ userModifyParam.setRoleId(this.roleId);
+ userModifyParam.setDeptId(this.deptId);
+ userModifyParam.setAuthorName(this.authorName);
+ userModifyParam.setAuthorId(this.authorId);
+ return userModifyParam;
+ }
}
diff --git a/src/main/java/com/docus/server/collection/dto/UserModifyParam.java b/src/main/java/com/docus/server/collection/dto/UserModifyParam.java
new file mode 100644
index 0000000..33e244f
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/dto/UserModifyParam.java
@@ -0,0 +1,53 @@
+package com.docus.server.collection.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author Fang Ruichuan
+ * @date 2022-11-14 19:02
+ */
+@Data
+public class UserModifyParam {
+ /**
+ * 用户id
+ */
+ private Long userId;
+ /**
+ * 用户姓名
+ */
+ private String name;
+ /**
+ * 用户工号
+ */
+ private String userName;
+ /**
+ * 所属科室编号
+ */
+ private String deptId;
+ /**
+ * 到时同步完让实施找下不重复的导入到角色表,程序再判断职位对应角色表存角色id(roleId),初始roleId=0
+ */
+ private String position;
+ /**
+ * 角色Id 初始 0
+ */
+ private Long roleId;
+ /**
+ * 用户密码
+ */
+ private String userPwd;
+
+ /**
+ * 操作人名称
+ */
+ private String authorName;
+
+
+ /**
+ * 操作人ID
+ */
+ private String authorId;
+}
diff --git a/src/main/java/com/docus/server/collection/entity/PowerUser.java b/src/main/java/com/docus/server/collection/entity/PowerUser.java
new file mode 100644
index 0000000..12b6647
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/entity/PowerUser.java
@@ -0,0 +1,85 @@
+package com.docus.server.collection.entity;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="PowerUser对象", description="用户表")
+public class PowerUser implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "用户id")
+ private Long userId;
+
+ @ApiModelProperty(value = "登陆名")
+ private String userName;
+
+ @ApiModelProperty(value = "用户密码")
+ private String userPwd;
+
+ @ApiModelProperty(value = "性别 0 男 1 女")
+ private Integer userSex;
+
+ @ApiModelProperty(value = "年龄")
+ private Integer userAge;
+
+ @ApiModelProperty(value = "电话")
+ private String userTel;
+
+ @ApiModelProperty(value = "邮箱")
+ private String userEmail;
+
+ @ApiModelProperty(value = "微信信息")
+ private String wxBank;
+
+ @ApiModelProperty(value = "职位")
+ private String userPosition;
+
+ @ApiModelProperty(value = "角色")
+ private Long roleId;
+
+ @ApiModelProperty(value = "部门id")
+ private String deptId;
+
+ @ApiModelProperty(value = "是否有效")
+ private Integer effective;
+
+ @ApiModelProperty(value = "创建时间")
+ private Date createDate;
+
+ @ApiModelProperty(value = "创建人")
+ private String creater;
+
+ @ApiModelProperty(value = "更新时间")
+ private Date updateDate;
+
+ @ApiModelProperty(value = "更新人")
+ private String updater;
+
+ @ApiModelProperty(value = "备注")
+ private String remark;
+
+ @ApiModelProperty(value = "登录标志 默认为0为未登录 1登录")
+ private Integer loginFlag;
+
+ @ApiModelProperty(value = "用户名称")
+ private String name;
+
+ @ApiModelProperty(value = "所属科室代码 多个以,分隔")
+ private String deptCode;
+
+ @ApiModelProperty(value = "权限科室 拥有对科室查阅权限")
+ private String powerDept;
+
+ @ApiModelProperty(value = "权限 拥有对主管医生查阅权限")
+ private String powerAttending;
+
+}
diff --git a/src/main/java/com/docus/server/collection/mapper/PowerUserMapper.java b/src/main/java/com/docus/server/collection/mapper/PowerUserMapper.java
new file mode 100644
index 0000000..d716658
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/mapper/PowerUserMapper.java
@@ -0,0 +1,44 @@
+package com.docus.server.collection.mapper;
+
+import com.docus.server.collection.dto.UserModifyParam;
+import com.docus.server.collection.entity.PowerUser;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ *
+ * 用户表 mapper
+ *
+ *
+ * @author wen yongbin
+ * @since 2023年2月25日22:28:58
+ */
+public interface PowerUserMapper {
+
+ /**
+ * 根据用户工号查询用户信息
+ * @param userName 用户工号
+ * @return 用户信息
+ */
+ PowerUser getUserByUserName(@Param("userName") String userName);
+
+ /**
+ * 更新用户信息
+ * @param userModifyParam 用户操作参数
+ * @return 数据库更新信息
+ */
+ int updateUser(@Param("user") UserModifyParam userModifyParam);
+
+ /**
+ * 添加新用户
+ * @param userModifyParam 用户操作参数
+ * @return 数据库添加信息
+ */
+ int addUser(@Param("user") UserModifyParam userModifyParam);
+
+ /**
+ * 根据用户工号删除用户信息
+ * @param userName 用户工号
+ * @return 数据库删除信息
+ */
+ int delUserByUserName(@Param("userName") String userName);
+}
diff --git a/src/main/java/com/docus/server/collection/service/IPowerUserService.java b/src/main/java/com/docus/server/collection/service/IPowerUserService.java
new file mode 100644
index 0000000..f42964d
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/service/IPowerUserService.java
@@ -0,0 +1,24 @@
+package com.docus.server.collection.service;
+
+import com.docus.server.collection.dto.UserDto;
+
+/**
+ * 用户服务
+ */
+public interface IPowerUserService {
+ /**
+ * 用户注册
+ *
+ * @param userDto 用户注册参数
+ * @return 处理结果
+ */
+ boolean register(UserDto userDto);
+
+ /**
+ * 根据用户工号删除用户
+ *
+ * @param userName 用户工号
+ * @return 删除结果
+ */
+ boolean delUserByUserName(String userName);
+}
diff --git a/src/main/java/com/docus/server/collection/service/impl/PowerUserServiceImpl.java b/src/main/java/com/docus/server/collection/service/impl/PowerUserServiceImpl.java
new file mode 100644
index 0000000..55a3076
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/service/impl/PowerUserServiceImpl.java
@@ -0,0 +1,54 @@
+package com.docus.server.collection.service.impl;
+
+import com.docus.core.util.Func;
+import com.docus.infrastructure.redis.service.IdService;
+import com.docus.server.collection.config.UserSyncConfig;
+import com.docus.server.collection.dto.UserDto;
+import com.docus.server.collection.dto.UserModifyParam;
+import com.docus.server.collection.entity.PowerUser;
+import com.docus.server.collection.mapper.PowerUserMapper;
+import com.docus.server.collection.service.IPowerUserService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 用户服务实现
+ *
+ * @author wyb
+ */
+@Service
+public class PowerUserServiceImpl implements IPowerUserService {
+ @Resource
+ private PowerUserMapper powerUserMapper;
+ @Resource
+ private IdService idService;
+ @Resource
+ private UserSyncConfig syncConfig;
+
+ @Override
+ public boolean register(UserDto userDto) {
+ PowerUser powerUser = powerUserMapper.getUserByUserName(userDto.getUserName());
+ UserModifyParam userModifyParam = userDto.transUserAddParam();
+ if (Func.isEmpty(powerUser)) {
+ long userId = idService.getDateSeq();
+ userModifyParam.setUserId(userId);
+ userModifyParam.setUserPwd(syncConfig.getPassword());
+ powerUserMapper.addUser(userModifyParam);
+ return true;
+ }
+ userModifyParam.setUserId(powerUser.getUserId());
+ powerUserMapper.updateUser(userModifyParam);
+ return true;
+ }
+
+ @Override
+ public boolean delUserByUserName(String userName) {
+ PowerUser powerUser = powerUserMapper.getUserByUserName(userName);
+ if (Func.isEmpty(powerUser)) {
+ return true;
+ }
+ powerUserMapper.delUserByUserName(userName);
+ return true;
+ }
+}
diff --git a/src/main/java/com/docus/server/collection/util/IdUtil.java b/src/main/java/com/docus/server/collection/util/IdUtil.java
new file mode 100644
index 0000000..b69bed1
--- /dev/null
+++ b/src/main/java/com/docus/server/collection/util/IdUtil.java
@@ -0,0 +1,22 @@
+package com.docus.server.collection.util;
+
+import com.docus.infrastructure.redis.service.IdService;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
+
+@Data
+public class IdUtil {
+ /**
+ * 得到一个标准的 8-4-4-4-12 UUID
+ * @return 标准的 8-4-4-4-12 UUID
+ */
+ public static String standardUUID(){
+ ThreadLocalRandom random = ThreadLocalRandom.current();
+ return (new UUID(random.nextLong(), random.nextLong())).toString();
+ }
+
+}
diff --git a/src/main/java/com/docus/server/collection/webservice/IUserServer.java b/src/main/java/com/docus/server/collection/webservice/IUserServer.java
index 9408aeb..23a75af 100644
--- a/src/main/java/com/docus/server/collection/webservice/IUserServer.java
+++ b/src/main/java/com/docus/server/collection/webservice/IUserServer.java
@@ -7,7 +7,10 @@ import com.docus.server.collection.dto.UserDto;
* @date 2022-11-14 19:03
*/
public interface IUserServer {
- default UserDto getUser(Long str) {
- throw new RuntimeException("程序员正在马不停蹄地开发新功能");
- }
+ /**
+ * 用户信息接收,进行操作
+ * @param receiveUser 接收到的用户参数
+ * @return 返回结果
+ */
+ String userModify(String receiveUser);
}
diff --git a/src/main/java/com/docus/server/collection/webservice/impl/UserServerImpl.java b/src/main/java/com/docus/server/collection/webservice/impl/UserServerImpl.java
index ea29186..b5df2ad 100644
--- a/src/main/java/com/docus/server/collection/webservice/impl/UserServerImpl.java
+++ b/src/main/java/com/docus/server/collection/webservice/impl/UserServerImpl.java
@@ -1,26 +1,193 @@
package com.docus.server.collection.webservice.impl;
+import com.docus.core.util.DateUtil;
+import com.docus.core.util.Func;
+import com.docus.infrastructure.core.exception.BaseException;
+import com.docus.server.collection.service.IPowerUserService;
+import com.docus.server.collection.util.IdUtil;
+import com.docus.server.collection.util.XmlUtil;
import com.docus.server.collection.webservice.IUserServer;
import com.docus.server.collection.dto.UserDto;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.w3c.dom.Node;
+import javax.annotation.Resource;
import javax.jws.WebService;
+import java.util.Date;
/**
- * @author Fang Ruichuan
- * @date 2022-11-14 19:08
+ * @author wen yongbin
+ * @date 2023年2月25日21:56:33
*/
@Service
@WebService
+@Slf4j
public class UserServerImpl implements IUserServer {
+ @Resource
+ IPowerUserService iPowerUserService;
+
@Override
- public UserDto getUser(Long id) {
- return UserDto.builder()
- .id(id)
- .address("上海市浦东新区")
- .age(25)
- .name("laJi").build();
+ public String userModify(String receiveUser) {
+ log.info("新增/修改用户数据:{}", receiveUser);
+ boolean registerResult = false;
+ UserDto userDto;
+ String msgId = "";
+ String receiver = "";
+ try {
+ userDto = strToUserDto(receiveUser);
+ msgId = userDto.getMessageId();
+ receiver = userDto.getReceiver();
+ } catch (BaseException e) {
+ e.printStackTrace();
+ log.error(e.getMessage(), e);
+ return failedMessage(e.getMessage(), msgId, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.error(e.getMessage(), e);
+ return failedMessage("消息解析失败!", msgId, receiver);
+ }
+ try {
+ String operateType = userDto.getOperateType();
+ String delType = "D";
+ // 判断操作类型
+ if (Func.isNotEmpty(operateType) && operateType.contains(delType)) {
+ registerResult = iPowerUserService.delUserByUserName(userDto.getUserName());
+ } else {
+ registerResult = iPowerUserService.register(userDto);
+ }
+ } catch (BaseException e) {
+ e.printStackTrace();
+ log.error(e.getMessage(), e);
+ return failedMessage(e.getMessage(), msgId, receiver);
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.error(e.getMessage(), e);
+ }
+
+ if (registerResult) {
+ return successMessage("操作成功!", msgId, receiver);
+ }
+ return failedMessage("系统出错啦!", msgId, receiver);
+ }
+
+
+ /**
+ * 接收用户参数解析 UserDto参数
+ *
+ * @param receiveUser 接收到的用户参数
+ * @return UserDto
+ */
+ public UserDto strToUserDto(String receiveUser) {
+ UserDto userDto = new UserDto();
+ XmlUtil xmlParseUtil = XmlUtil.of(receiveUser);
+ Node msgIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/id/@extension");
+ userDto.setMessageId(msgIdNode.getNodeValue());
+ Node receiverNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/receiver/device/id/item/@extension");
+ userDto.setReceiver(receiverNode.getNodeValue());
+ Node operateTypeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/@operateType");
+ userDto.setOperateType(operateTypeNode.getNodeValue());
+ Node employeeCodeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/EMPL_CODE/@value");
+ userDto.setUserName(employeeCodeNode.getNodeValue());
+ Node employeeNameNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/EMPL_NAME/@value");
+ userDto.setName(employeeNameNode.getNodeValue());
+ Node deptCodeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/DEPT_CODE/@value");
+ userDto.setDeptId(deptCodeNode.getNodeValue());
+ Node positionNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/POSI_NAME/@value");
+ userDto.setPosition(positionNode.getNodeValue());
+ Node authorIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/author/assignedEntity/id/item/@extension");
+ userDto.setAuthorId(authorIdNode.getNodeValue());
+ Node authorNameNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/author/assignedEntity/assignedPerson/name/item/part/@value");
+ userDto.setAuthorName(authorNameNode.getNodeValue());
+ userDto.setRoleId(0L);
+ return userDto;
}
+
+ /**
+ * @param message 成功消息提示
+ * @param msgId 消息id
+ * @param receiver 接收方
+ * @return 成功消息
+ */
+ private String successMessage(String message, String msgId, String receiver) {
+ String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI);
+ return "\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\t\t- \n" +
+ "\t\t\t
\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\t\t \n" +
+ "\t\t\t\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "";
+ }
+
+ /**
+ * @param message 失败消息提示
+ * @param msgId 消息id
+ * @param receiver 接收方
+ * @return 失败消息
+ */
+ private String failedMessage(String message, String msgId, String receiver) {
+ String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI);
+ return "\n" +
+ "\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\t\t- \n" +
+ "\t\t\t
\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\t\t \n" +
+ "\t\t\t\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "\n";
+ }
+
}
diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml
index 8a85abf..88a69f5 100644
--- a/src/main/resources/bootstrap.yml
+++ b/src/main/resources/bootstrap.yml
@@ -44,7 +44,9 @@ spring:
docus:
dbtype: mysql
-
+ user:
+ # 用户默认密码
+ defpwd: fd29cd53ec12616e5f36b77d4afffbff
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
diff --git a/src/main/resources/mapper/PowerUserMapper.xml b/src/main/resources/mapper/PowerUserMapper.xml
new file mode 100644
index 0000000..d63a165
--- /dev/null
+++ b/src/main/resources/mapper/PowerUserMapper.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ INSERT INTO `docus_system`.`power_user`(`user_id`,
+ `user_name`,
+ `name`,
+ `user_pwd`,
+ `user_position`,
+ `role_id`,
+ `dept_id`,
+ `create_date`,
+ `creater`,
+ `update_date`,
+ `updater`)
+ VALUES (#{user.userId},#{user.userName},#{user.name},#{user.userPwd},#{user.position},#{user.roleId}
+ ,#{user.deptId},now(),#{user.authorName},now(),#{user.authorName})
+
+
+ update `docus_system`.`power_user` set
+ `updater`=#{user.authorName},
+ `dept_id`=#{user.deptId},
+ `user_position`=#{user.position},
+ `name`=#{user.name},
+ `update_date`=now()
+ where `user_id`=#{user.userId}
+
+
+ delete from `docus_system`.`power_user` where `user_name` = #{userName}
+
+
+
+
diff --git a/src/test/java/com/docus/server/collection/webservice/impl/UserServerImplTest.java b/src/test/java/com/docus/server/collection/webservice/impl/UserServerImplTest.java
new file mode 100644
index 0000000..e4dd99c
--- /dev/null
+++ b/src/test/java/com/docus/server/collection/webservice/impl/UserServerImplTest.java
@@ -0,0 +1,141 @@
+package com.docus.server.collection.webservice.impl;
+
+import com.docus.server.collection.dto.UserDto;
+import com.docus.server.collection.dto.UserModifyParam;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
+import org.junit.Test;
+
+import javax.xml.namespace.QName;
+
+public class UserServerImplTest {
+ String xml = "\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\t- \n" +
+ "\t\t\t
\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\t- \n" +
+ "\t\t\t
\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "\t\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t
\n" +
+ "\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t- \n" +
+ "\t\t\t\t\t\t
\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\t- \n" +
+ "\t\t\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\t\t
\n" +
+ "\t\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\t\n" +
+ "\t\t\t\t\t\n" +
+ "\t\t\t\t\n" +
+ "\t\t\t\n" +
+ "\t\t\n" +
+ "\t\n" +
+ "\n";
+ @Test
+ public void parseUserDtoTest() {
+ UserServerImpl userServer = new UserServerImpl();
+ UserDto userDto = userServer.strToUserDto(xml);
+ UserModifyParam addParam = userDto.transUserAddParam();
+ System.out.println(userServer);
+ System.out.println(addParam);
+ assert userDto.getUserName().equals(addParam.getUserName());
+ assert userDto.getName().equals(addParam.getName());
+ assert userDto.getAuthorId().equals(addParam.getAuthorId());
+ assert userDto.getAuthorName().equals(addParam.getAuthorName());
+ assert userDto.getDeptId().equals(addParam.getDeptId());
+ assert userDto.getPosition().equals(addParam.getPosition());
+ assert userDto.getRoleId().equals(addParam.getRoleId());
+ }
+
+ @Test
+ public void modifyWebserviceTest() throws Exception{
+ JaxWsDynamicClientFactory jaxWsDynamicClientFactory = JaxWsDynamicClientFactory.newInstance();
+ Client client = jaxWsDynamicClientFactory.createClient("http://localhost:9111/webservice/api/user?wsdl");
+ Object[] invoke = client.invoke("userModify", xml);
+ System.out.println(invoke[0].toString());
+ }
+}