Просмотр исходного кода

Merge branch 'userWxResponse-25917' of http://git.dgtis.com/qxp/suishenbang-oneportal into uat

njs 2 месяцев назад
Родитель
Сommit
c9997c944a

+ 1 - 1
suishenbang-api/src/main/resources/application-prod.yml

@@ -79,7 +79,7 @@ spring:
     APiKey: VOw81LBuXDSSRx4v #aUK5WZTmWjzn1foC
     shopStoneLikePaint: http://esbgateway.nipponpaint.com.cn/NPeportal/api/diydt/v3/texturewall/staff/list #http://esbgateway-test.nipponpaint.com.cn/NPeportal/api/diydt/v3/texturewall/staff/list
     goldShopUser: http://esbgateway.nipponpaint.com.cn/NPeportal/api/diydt/v3/goldshop/staff/list
-
+    esbShopStoneLikePaintUser: http://esb.nipponpaint.com.cn/esb/get/comm/api/body
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 1 - 1
suishenbang-api/src/main/resources/application-uat.yml

@@ -81,7 +81,7 @@ spring:
     APiKey: VOw81LBuXDSSRx4v #aUK5WZTmWjzn1foC
     shopStoneLikePaint: http://esbgateway.nipponpaint.com.cn/NPeportal/api/diydt/v3/texturewall/staff/list #http://esbgateway-test.nipponpaint.com.cn/NPeportal/api/diydt/v3/texturewall/staff/list
     goldShopUser: http://esbgateway.nipponpaint.com.cn/NPeportal/api/diydt/v3/goldshop/staff/list
-
+    esbShopStoneLikePaintUser: http://esb-test.nipponpaint.com.cn/esb/get/comm/api/body
   mail:
     #邮件服务器地址
     host: mail.dgtis.com

+ 95 - 25
suishenbang-common/src/main/java/com/dgtly/common/utils/http/HttpUtils.java

@@ -281,32 +281,32 @@ public class HttpUtils
             StringBuilder paramBuilder = new StringBuilder();
             if (params != null && !params.isEmpty()) {
                 for (Map.Entry<String, Object> entry : params.entrySet()) {
-                   if(entry.getValue() != null){
-                    if (paramBuilder.length() != 0) {
-                        paramBuilder.append("&");
+                    if(entry.getValue() != null){
+                        if (paramBuilder.length() != 0) {
+                            paramBuilder.append("&");
+                        }
+                        String key = entry.getKey();
+                        String value = String.valueOf(entry.getValue());
+
+
+                        try {
+                            // 对键进行编码(键通常不需要预先编码)
+                            String encodedKey = URLEncoder.encode(key, StandardCharsets.UTF_8.name());
+
+                            // 检查值是否已经URL编码过
+                            if (isUrlEncoded(value)) {
+                                // 如果已经编码过,直接使用
+                                paramBuilder.append(encodedKey).append("=").append(value);
+                            } else {
+                                // 如果未编码,进行编码
+                                String encodedValue = URLEncoder.encode(value, StandardCharsets.UTF_8.name());
+                                paramBuilder.append(encodedKey).append("=").append(encodedValue);
+                            }
+                        } catch (UnsupportedEncodingException e) {
+                            throw new RuntimeException("UTF-8 encoding not supported", e);
+                        }
+
                     }
-                       String key = entry.getKey();
-                       String value = String.valueOf(entry.getValue());
-
-
-                       try {
-                           // 对键进行编码(键通常不需要预先编码)
-                           String encodedKey = URLEncoder.encode(key, StandardCharsets.UTF_8.name());
-
-                           // 检查值是否已经URL编码过
-                           if (isUrlEncoded(value)) {
-                               // 如果已经编码过,直接使用
-                               paramBuilder.append(encodedKey).append("=").append(value);
-                           } else {
-                               // 如果未编码,进行编码
-                               String encodedValue = URLEncoder.encode(value, StandardCharsets.UTF_8.name());
-                               paramBuilder.append(encodedKey).append("=").append(encodedValue);
-                           }
-                       } catch (UnsupportedEncodingException e) {
-                           throw new RuntimeException("UTF-8 encoding not supported", e);
-                       }
-
-                   }
                 }
             }
             String urlNameString = url + "?" + paramBuilder.toString();
@@ -688,6 +688,76 @@ public class HttpUtils
         return result.toString();
     }
 
+    /**
+     * @description: 指定 URL 发送POST方法的请求(支持自定义请求头和JSON参数)
+     * @param: [url, headers, param]
+     * @return: java.lang.String
+     * @author: njs
+     * @date: 2025/9/18 15:28
+     */
+    public static String sendJsonPostWithHeaders(String url, Map<String, String> headers, Object param) {
+        String json = JSONObject.toJSONString(param);
+        PrintWriter out = null;
+        BufferedReader in = null;
+        StringBuilder result = new StringBuilder();
+        try {
+            log.info("sendJsonPostWithHeaders - url: {}, headers: {}, param: {}", url, headers, json);
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+
+            // 设置默认请求头
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            conn.setRequestProperty("Accept-Charset", "utf-8");
+            conn.setRequestProperty("Content-Type", "application/json");
+            conn.setRequestProperty("contentType", "utf-8");
+
+            // 设置自定义请求头
+            if (headers != null && !headers.isEmpty()) {
+                for (Map.Entry<String, String> entry : headers.entrySet()) {
+                    conn.setRequestProperty(entry.getKey(), entry.getValue());
+                }
+            }
+
+            conn.setUseCaches(false);
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            out = new PrintWriter(conn.getOutputStream());
+            out.write(json);
+            out.flush();
+            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result.append(line);
+            }
+            log.info("recv - {}", result);
+        } catch (ConnectException e) {
+            log.error("调用HttpUtils.sendJsonPostWithHeaders ConnectException, url=" + url + ",param=" + json, e);
+            throw new BusinessException("调用HttpUtils.sendJsonPostWithHeaders ConnectException, url=" + url + ",param=" + json);
+        } catch (SocketTimeoutException e) {
+            log.error("调用HttpUtils.sendJsonPostWithHeaders SocketTimeoutException, url=" + url + ",param=" + json, e);
+            throw new BusinessException("调用HttpUtils.sendJsonPostWithHeaders SocketTimeoutException, url=" + url + ",param=" + json);
+        } catch (IOException e) {
+            log.error("调用HttpUtils.sendJsonPostWithHeaders IOException, url=" + url + ",param=" + json, e);
+            throw new BusinessException("调用HttpUtils.sendJsonPostWithHeaders IOException, url=" + url + ",param=" + json);
+        } catch (Exception e) {
+            log.error("调用HttpUtils.sendJsonPostWithHeaders Exception, url=" + url + ",param=" + json, e);
+            throw new BusinessException("调用HttpUtils.sendJsonPostWithHeaders Exception, url=" + url + ",param=" + json);
+        } finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                log.error("调用in.close Exception, url=" + url + ",param=" + json, ex);
+            }
+        }
+        return result.toString();
+    }
 
 
 }

+ 170 - 125
suishenbang-system/src/main/java/com/dgtly/system/service/impl/SysUserServiceImpl.java

@@ -6,12 +6,14 @@ import java.util.stream.Collectors;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.dgtly.common.utils.ShiroSaltUtil;
+import com.dgtly.common.utils.http.HttpUtils;
 import com.dgtly.common.utils.security.EncryptPassWordClass;
 import com.dgtly.system.domain.*;
 import com.dgtly.system.mapper.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import com.dgtly.common.annotation.DataScope;
@@ -67,6 +69,10 @@ public class SysUserServiceImpl implements ISysUserService
     @Autowired
     private SysUserServiceImpl sysUserService;
 
+    @Value(value = "${spring.esb.esbShopStoneLikePaintUser}")
+    private String esbShopStoneLikePaintUserUrl;
+
+
 
     /**
      * 根据条件分页查询用户列表
@@ -329,18 +335,18 @@ public class SysUserServiceImpl implements ISysUserService
     public void insertShopUserRole(SysUser user)
     {
 
-            // 新增用户与角色管理
-            List<SysUserRole> list = new ArrayList<SysUserRole>();
-            SysUserRole ur = new SysUserRole();
-            ur.setUserId(user.getUserId());
-            ur.setRoleId(user.getRoleId());
-            if(user.getShopType() != null){
-                ur.setShopType(user.getShopType());
-            }
-            list.add(ur);
-            if (list.size() > 0) {
-                userRoleMapper.batchUserRole(list);
-            }
+        // 新增用户与角色管理
+        List<SysUserRole> list = new ArrayList<SysUserRole>();
+        SysUserRole ur = new SysUserRole();
+        ur.setUserId(user.getUserId());
+        ur.setRoleId(user.getRoleId());
+        if(user.getShopType() != null){
+            ur.setShopType(user.getShopType());
+        }
+        list.add(ur);
+        if (list.size() > 0) {
+            userRoleMapper.batchUserRole(list);
+        }
 
     }
 
@@ -462,7 +468,7 @@ public class SysUserServiceImpl implements ISysUserService
 //            List<SysRole> roles =  user.getRoles();
 //            for(SysRole role:roles){
 //                if(role.getRoleKey().equals("admin")){
-                    throw new BusinessException("不允许操作超级管理员用户");
+            throw new BusinessException("不允许操作超级管理员用户");
 //                }
 //            }
 
@@ -717,88 +723,155 @@ public class SysUserServiceImpl implements ISysUserService
         Long roleId = roleMapper.selectRoleIdByRoleKey("shopStoneLikePaint");
         //0TUC仿石漆服务商人员
         Boolean i = buildShopUser(json,"0",roleId);
+
         return  i;
     }
 
     public Boolean buildShopUser(JSONObject jsonObject, String usertype, Long roleId){
-            JSONObject jo =jsonObject;
-            Set<String> loginNameSet = sysUserService.selectAllUserLoginName();
-            loginNameSet = loginNameSet.stream().map(String::toUpperCase).collect(Collectors.toSet());
-            try {
-                String userName = jo.getString("staff_name");
-                String userPhone = jo.getString("staff_mobile");
-                //是否同步企业微信
-                Boolean isSync = jo.getBoolean("is_synced_to_wecom");
-                //是否有效用户
-                Boolean isActive = jo.getBoolean("is_active");
-                String subOfficeCode = jo.getString("office_code");
-                String subOfficeName = jo.getString("office_name");
-                String shopCode = jo.getString("organization_code");
-                String shopName = jo.getString("organization_name");
-                String dataUpdateTime = jo.getString("update_datetime");
-                String dataUserId = jo.getString("id");
-                /*人员信息是否有效,true有效,false无效。是否同步到企微 */
-                String loginName ="";
-                if(isActive && isSync){
-                    loginName = jo.getString("wecom_userid");
-                }else{
-                    //先判断该用户是否存在在处理离职和去掉角色,否则直接跳出循环不处理
-                    //离职掉该门店和用户关联关系
-                    if(!isActive){
-                        //用户无效后接口获取不到企微id,需从关联表查询
-                        loginName = userShopExtMapper.selectLoginNameByUserId(dataUserId,shopCode,usertype);
-                        if(loginName !=null && !loginName.isEmpty()){
-                            //查询用户信息
-                            SysUser user = sysUserMapper.selectUserByLoginName(loginName);
-                            userShopExtMapper.deleteUserShopExt(user.getUserId().toString(),loginName,shopCode,usertype);
-                            //去掉该用户和角色的关联关系
-                            userRoleMapper.deleteUserRoleByUserIdAndExt(user.getUserId(),roleId,usertype);
-                            //离职处理以及用户主信息是否有门店账号处理需要添加
-                            //查询门店用户表是否存在用户和其他门店的关联关系,如果存在就不离职,不存在查询是否有经销商的关联关系,如果存在就不离职,不存在就离职
-                            SysUserShopExt shop = new SysUserShopExt();
-                            shop.setUserId(user.getUserId().toString());
-                            shop.setDelFlag("0");
-                            List<SysUserShopExt>  shopExtList = userShopExtMapper.selectSysUserShopExtList(shop);
-                            if(shopExtList == null || shopExtList.size() == 0){
-                                //在查用户经销商扩展信息
-                                SysUserExt userCustomerExt = sysUserExtMapper.selectSysUserExtById(user.getUserId());
-                                user.setIsShopAccount("0");
-                                if(userCustomerExt == null){
-                                    //离职处理2
-                                    user.setQuit("2");
-                                }
-                                //修改用户信息
-                                sysUserMapper.updateUser(user);
-
+        JSONObject jo =jsonObject;
+        Set<String> loginNameSet = sysUserService.selectAllUserLoginName();
+        loginNameSet = loginNameSet.stream().map(String::toUpperCase).collect(Collectors.toSet());
+        try {
+            String userName = jo.getString("staff_name");
+            String userPhone = jo.getString("staff_mobile");
+            //是否同步企业微信
+            Boolean isSync = jo.getBoolean("is_synced_to_wecom");
+            //是否有效用户
+            Boolean isActive = jo.getBoolean("is_active");
+            String subOfficeCode = jo.getString("office_code");
+            String subOfficeName = jo.getString("office_name");
+            String shopCode = jo.getString("organization_code");
+            String shopName = jo.getString("organization_name");
+            String dataUpdateTime = jo.getString("update_datetime");
+            String dataUserId = jo.getString("id");
+            String customerCode = jo.getString("distributor_code");
+            String customerName = jo.getString("distributor_name");
+            /*人员信息是否有效,true有效,false无效。是否同步到企微 */
+            String loginName ="";
+            if(isActive && isSync){
+                loginName = jo.getString("wecom_userid");
+            }else{
+                //先判断该用户是否存在在处理离职和去掉角色,否则直接跳出循环不处理
+                //离职掉该门店和用户关联关系
+                if(!isActive){
+                    //用户无效后接口获取不到企微id,需从关联表查询
+                    loginName = userShopExtMapper.selectLoginNameByUserId(dataUserId,shopCode,usertype);
+                    if(loginName !=null && !loginName.isEmpty()){
+                        //查询用户信息
+                        SysUser user = sysUserMapper.selectUserByLoginName(loginName);
+                        userShopExtMapper.deleteUserShopExt(user.getUserId().toString(),loginName,shopCode,usertype);
+                        //去掉该用户和角色的关联关系
+                        userRoleMapper.deleteUserRoleByUserIdAndExt(user.getUserId(),roleId,usertype);
+                        //离职处理以及用户主信息是否有门店账号处理需要添加
+                        //查询门店用户表是否存在用户和其他门店的关联关系,如果存在就不离职,不存在查询是否有经销商的关联关系,如果存在就不离职,不存在就离职
+                        SysUserShopExt shop = new SysUserShopExt();
+                        shop.setUserId(user.getUserId().toString());
+                        shop.setDelFlag("0");
+                        List<SysUserShopExt>  shopExtList = userShopExtMapper.selectSysUserShopExtList(shop);
+                        if(shopExtList == null || shopExtList.size() == 0){
+                            //在查用户经销商扩展信息
+                            SysUserExt userCustomerExt = sysUserExtMapper.selectSysUserExtById(user.getUserId());
+                            user.setIsShopAccount("0");
+                            if(userCustomerExt == null){
+                                //离职处理2
+                                user.setQuit("2");
                             }
+                            //修改用户信息
+                            sysUserMapper.updateUser(user);
+
                         }
                     }
-                    return true;
                 }
+                return true;
+            }
+            //先建店
+            Map<String, Object> params = new HashMap<>();
+            Map<String,Object> bodyMap = new HashMap<>();
+            bodyMap.put("MainCustomerCode",customerCode);
+            bodyMap.put("MainCustomerName",customerName);
+            bodyMap.put("OfficeCode",subOfficeCode);
+            bodyMap.put("OfficeName",subOfficeName);
+            bodyMap.put("ShopCode_Pre",shopCode);
+            bodyMap.put("ShopCode",shopCode);
+            bodyMap.put("ShopLinkman",userName);
+            bodyMap.put("ShopName",shopName);
+            bodyMap.put("ShopPhone",userPhone);
+            bodyMap.put("ShopTypeName","FSQ");
+            params.put("body", bodyMap);
+            Map<String, String> headers = new HashMap<String, String>(2);
+            String uuidStr = UUID.randomUUID().toString();
+            headers.put("Content-Type","application/json");
+            headers.put("requestId",uuidStr);
+            headers.put("trackId",uuidStr);
+            headers.put("sourceSystem","SSB");
+            try{
+                if (subOfficeName != null && subOfficeName.startsWith("BMD")) {
+                    // subOfficeName 以 "BMD" 开头的处理逻辑
+                    //bmd
+                    headers.put("serviceName","S_XXX_BMDOMS_BMDNewStore_S");
+                    HttpUtils.sendJsonPostWithHeaders(esbShopStoneLikePaintUserUrl,headers,params);
+                }else{
+                    //非bmd
+                    headers.put("serviceName","S_XXX_BMDOMS_DORDERNewStore_S");
+                    HttpUtils.sendJsonPostWithHeaders(esbShopStoneLikePaintUserUrl,headers,params);
+                }
+            }catch (Exception e){
+                log.error("服务商调用建店异常"+jsonObject,e);
+            }
 
 
-                if (!loginNameSet.contains(loginName.toUpperCase().trim())) {
-
-                    /** =============用户基本信息构建 start===============*/
-                    SysUser user = new SysUser();
-                    user.setLoginName(loginName);
-                    log.info("门店新用户"+loginName +"门店类型身份"+usertype);
-                    user.setUserName(userName);
+            if (!loginNameSet.contains(loginName.toUpperCase().trim())) {
+
+                /** =============用户基本信息构建 start===============*/
+                SysUser user = new SysUser();
+                user.setLoginName(loginName);
+                log.info("门店新用户"+loginName +"门店类型身份"+usertype);
+                user.setUserName(userName);
+                user.setPhonenumber(userPhone);
+                user.setPassword(loginName);
+                user.setSalt(ShiroSaltUtil.randomSalt());
+                user.setPassword(EncryptPassWordClass.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
+                user.setIsShopAccount("1");
+                user.setRoleId(roleId);
+                /** =============用户基本信息构建 end===============*/
+                insertUserAndExt(user);
+                //查询用户信息
+                SysUser userVoExt = sysUserMapper.selectUserByLoginName(loginName);
+                // 新增用户与角色管理
+                user.setUserId(userVoExt.getUserId());
+                user.setShopType(usertype);
+                sysUserService.insertShopUserRole(user);
+                /**======== 构建门店用户扩展信息表 start===============*/
+                SysUserShopExt shopExt = new SysUserShopExt();
+                shopExt.setLoginName(loginName);
+                shopExt.setShopCode(shopCode);
+                shopExt.setShopName(shopName);
+                shopExt.setSubofficeCode(subOfficeCode);
+                shopExt.setSubofficeName(subOfficeName);
+                shopExt.setIsShopType(usertype);
+                shopExt.setUserUpdateTime(dataUpdateTime);
+                shopExt.setDelFlag("0");
+                shopExt.setConstraintUserId(dataUserId);
+                //用户id
+                shopExt.setUserId(userVoExt.getUserId().toString());
+                userShopExtMapper.insertSysUserShopExt(shopExt);
+                loginNameSet.add(loginName);
+                return true;
+            } else {
+                /*已经存在的,需增加用户标识,然后增加门店用户扩展信息*/
+                SysUser user = sysUserMapper.selectUserByLoginName(loginName);
+                user.setPhonenumber(userPhone);
+                //允许同步自动用户
+                if (("0").equals(user.getIsSync())) {
+                    //查询该用户是否存在该接口返回中
                     user.setPhonenumber(userPhone);
-                    user.setPassword(loginName);
-                    user.setSalt(ShiroSaltUtil.randomSalt());
-                    user.setPassword(EncryptPassWordClass.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
+                    user.setUserName(userName);
                     user.setIsShopAccount("1");
-                    user.setRoleId(roleId);
-                    /** =============用户基本信息构建 end===============*/
-                    insertUserAndExt(user);
-                    //查询用户信息
-                    SysUser userVoExt = sysUserMapper.selectUserByLoginName(loginName);
-                    // 新增用户与角色管理
-                    user.setUserId(userVoExt.getUserId());
-                    user.setShopType(usertype);
-                    sysUserService.insertShopUserRole(user);
+                    sysUserService.updateUserInfo(user);
+
                     /**======== 构建门店用户扩展信息表 start===============*/
+                    //先删除用户门店扩展表,再插入
+                    userShopExtMapper.deletePhysicsUserShopExt(user.getUserId().toString(),loginName,shopCode,usertype);
                     SysUserShopExt shopExt = new SysUserShopExt();
                     shopExt.setLoginName(loginName);
                     shopExt.setShopCode(shopCode);
@@ -810,56 +883,28 @@ public class SysUserServiceImpl implements ISysUserService
                     shopExt.setDelFlag("0");
                     shopExt.setConstraintUserId(dataUserId);
                     //用户id
-                    shopExt.setUserId(userVoExt.getUserId().toString());
+                    shopExt.setUserId(user.getUserId().toString());
                     userShopExtMapper.insertSysUserShopExt(shopExt);
-                    loginNameSet.add(loginName);
-                    return true;
-                } else {
-                    /*已经存在的,需增加用户标识,然后增加门店用户扩展信息*/
-                    SysUser user = sysUserMapper.selectUserByLoginName(loginName);
-                    user.setPhonenumber(userPhone);
-                    //允许同步自动用户
-                    if (("0").equals(user.getIsSync())) {
-                        //查询该用户是否存在该接口返回中
-                        user.setPhonenumber(userPhone);
-                        user.setUserName(userName);
-                        user.setIsShopAccount("1");
-                        sysUserService.updateUserInfo(user);
-
-                        /**======== 构建门店用户扩展信息表 start===============*/
-                        //先删除用户门店扩展表,再插入
-                        userShopExtMapper.deletePhysicsUserShopExt(user.getUserId().toString(),loginName,shopCode,usertype);
-                        SysUserShopExt shopExt = new SysUserShopExt();
-                        shopExt.setLoginName(loginName);
-                        shopExt.setShopCode(shopCode);
-                        shopExt.setShopName(shopName);
-                        shopExt.setSubofficeCode(subOfficeCode);
-                        shopExt.setSubofficeName(subOfficeName);
-                        shopExt.setIsShopType(usertype);
-                        shopExt.setUserUpdateTime(dataUpdateTime);
-                        shopExt.setDelFlag("0");
-                        shopExt.setConstraintUserId(dataUserId);
-                        //用户id
-                        shopExt.setUserId(user.getUserId().toString());
-                        userShopExtMapper.insertSysUserShopExt(shopExt);
-                        //去掉该用户和角色的关联关系
-                        userRoleMapper.deleteUserRoleByUserIdAndExt(user.getUserId(),roleId,usertype);
-                        user.setRoleId(roleId);
-                        user.setUserId(user.getUserId());
-                        user.setShopType(usertype);
-                        sysUserService.insertShopUserRole(user);
+                    //去掉该用户和角色的关联关系
+                    userRoleMapper.deleteUserRoleByUserIdAndExt(user.getUserId(),roleId,usertype);
+                    user.setRoleId(roleId);
+                    user.setUserId(user.getUserId());
+                    user.setShopType(usertype);
+                    sysUserService.insertShopUserRole(user);
 
-                    }
-                    return true;
                 }
-            }catch (Exception e){
-                log.error("门店用户数据分析异常"+e.getMessage());
-
+                return true;
             }
+        }catch (Exception e){
+            log.error("门店用户数据分析异常"+e.getMessage());
+
+        }
 
-            return false;
+        return false;
     }
 
+
+
     @Transactional(rollbackFor = Exception.class)
     public Integer insertUserAndExt(SysUser user) {
         // 新增用户信息