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