Bläddra i källkod

用户信息开发

wuxw7 9 år sedan
förälder
incheckning
67095fd3cb

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 179 - 631
.idea/workspace.xml


+ 15 - 7
UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java

@@ -1,5 +1,12 @@
 package com.java110.user.dao;
 
+import com.java110.entity.user.BoCust;
+import com.java110.entity.user.BoCustAttr;
+import com.java110.entity.user.Cust;
+import com.java110.entity.user.CustAttr;
+
+import java.util.List;
+
 /**
  * 用户组件内部之间使用,没有给外围系统提供服务能力
  * 用户服务接口类,要求全部以字符串传输,方便微服务化
@@ -14,7 +21,7 @@ public interface IUserServiceDao {
      * @param boCust 用户基本信息
      * @return
      */
-    public String saveDataToBoCust(String boCust) throws RuntimeException;
+    public int saveDataToBoCust(BoCust boCust) throws RuntimeException;
 
     /**
      * 保存用户属性(过程表)
@@ -22,7 +29,7 @@ public interface IUserServiceDao {
      * @return
      * @throws RuntimeException
      */
-    public String saveDataToBoCustAttr(String boCustAttr) throws RuntimeException;
+    public int saveDataToBoCustAttr(BoCustAttr boCustAttr) throws RuntimeException ;
 
     /**
      *  同事保存用户基本信息和属性(过程表)
@@ -38,7 +45,7 @@ public interface IUserServiceDao {
      * @return
      * @throws RuntimeException
      */
-    public String saveDataToCust(String cust) throws RuntimeException;
+    public int saveDataToCust(Cust cust) throws RuntimeException;
 
     /**
      *  保存用户属性
@@ -46,7 +53,7 @@ public interface IUserServiceDao {
      * @return
      * @throws RuntimeException
      */
-    public String saveDataToCustAttr(String custAttr) throws RuntimeException;
+    public int saveDataToCustAttr(CustAttr custAttr) throws RuntimeException;
 
     /**
      * 同事保存用户基本信息和属性
@@ -83,14 +90,15 @@ public interface IUserServiceDao {
 
 
 
-
     /**
      * 查询用户基本信息(一般没用,就算有用)
      * @param cust
      * @return
      * @throws RuntimeException
      */
-    public String queryDataToCust(String cust) throws RuntimeException;
+    public Cust queryDataToCust(Cust cust) throws RuntimeException ;
+
+
 
     /**
      *  查询用户属性
@@ -98,7 +106,7 @@ public interface IUserServiceDao {
      * @return
      * @throws RuntimeException
      */
-    public String queryDataToCustAttr(String custAttr) throws RuntimeException;
+    public List<CustAttr> queryDataToCustAttr(CustAttr custAttr) throws RuntimeException;
 
     /**
      * 查询保存用户基本信息和属性

+ 89 - 65
UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java

@@ -1,6 +1,10 @@
 package com.java110.user.dao.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.java110.entity.user.BoCust;
+import com.java110.entity.user.BoCustAttr;
+import com.java110.entity.user.Cust;
+import com.java110.entity.user.CustAttr;
 import com.java110.user.dao.IUserServiceDao;
 import com.java110.common.log.LoggerEngine;
 import com.java110.common.constant.CommonConstant;
@@ -31,107 +35,110 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
     /**
      * 保存用户基本信息
      * 功能只用与保存用户处理
-     * @param userInfo 用户基本信息
+     * @param boCust 用户基本信息
      * @return
      */
     @Override
-    public String saveDataToBoCust(String userInfo) {
+    public int saveDataToBoCust(BoCust boCust) throws RuntimeException{
 
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCust】保存数据入参 : " + userInfo);
-        Map<String,Object> userMap = null;
-        String returnInfo = null;
+        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCust】保存数据入参 : " + boCust);
+        int saveFlag = 0;
         try {
-            userMap = this.simpleValidateJSONReturnMap(userInfo);
 
-            int saveFlag = sqlSessionTemplate.insert("UserServiceDAOImpl.saveDataToBoCust",userMap);
+            saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveDataToBoCust",boCust);
 
-            if(saveFlag > 0){
-                returnInfo = ProtocolUtil.createResultMsg(ResponseConstant.RESULT_CODE_SUCCESS,"成功",null);
-            }else{
-                returnInfo = ProtocolUtil.createResultMsg(ResponseConstant.RESULT_CODE_ERROR,"失败",null);
-            }
         }catch(RuntimeException e){
             LoggerEngine.error("----【UserServiceDAOImpl.saveDataToBoCust】保存数据异常 : " ,e);
-            return e.getMessage();
+            return saveFlag;
+        }finally {
+            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCust】保存数据出参 : saveFlag:" + saveFlag);
+            return saveFlag;
         }
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCust】保存数据出参 : " + returnInfo);
-        return returnInfo;
+
     }
 
     /**
      * 保存用户属性(过程表)
-     * 批量保存传入参数必须一个JSONArray to string
+     *
      * @param boCustAttr 用户属性
      * @return
      * @throws RuntimeException
      */
     @Override
-    public String saveDataToBoCustAttr(String boCustAttr) throws RuntimeException {
+    public int saveDataToBoCustAttr(BoCustAttr boCustAttr) throws RuntimeException {
 
         LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据入参 : " + boCustAttr);
-        List<Map> reqList = null;
-        String returnInfo = null;
-        try{
-            reqList = this.simpleValidateJSONArrayReturnList(boCustAttr);
-        }catch (RuntimeException e){
-            return e.getMessage();
-        }
         //为了保险起见,再测检测reqList 是否有值
-        if(reqList == null || reqList.size() == 0){
-            returnInfo = ProtocolUtil.createResultMsg(ResponseConstant.RESULT_CODE_PARAM_ERROR,"入参错误",null);
-            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据出错 : " + returnInfo);
-            return returnInfo;
+        if(boCustAttr == null){
+            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据出错 : " + boCustAttr);
+            return 0;
         }
-        Map boCustAttrMap = null;
         int saveFlag = 0;
-        for(int attrIndex = 0 ; attrIndex < reqList.size();attrIndex++){
-            boCustAttrMap = reqList.get(attrIndex);
-            saveFlag = sqlSessionTemplate.insert("UserServiceDAOImpl.saveDataToBoCustAttr",boCustAttrMap);
-            if(saveFlag < 1){ //只要一个保存失败,抛异常回退
-                LoggerEngine.error("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据异常 : " + boCustAttrMap.toString());
-                throw new RuntimeException(CommonConstant.SAVE_DATA_ERROR+"保存数据失败:"+boCustAttrMap.toString());
-            }
-        }
-        returnInfo = ProtocolUtil.createResultMsg(ResponseConstant.RESULT_CODE_SUCCESS,"成功",null);
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据出参 : " + returnInfo);
-        return returnInfo;
+
+        saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveDataToBoCustAttr",boCustAttr);
+        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据出参 :saveFlag " + saveFlag);
+
+        return saveFlag;
+
     }
 
     /**
-     * 同时保存客户基本信息和客户属性
-     * @param boCustInfo 用户信息
+     * 保存实例数据 客户信息至Cust表中
+     * @param cust
      * @return
      * @throws RuntimeException
      */
     @Override
-    public String saveDataToBoCustAndBoCustAttr(String boCustInfo) throws RuntimeException {
-
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAndBoCustAttr】保存数据入参"+boCustInfo);
-        JSONObject reqJson = null ;
-        String returnInfo = null;
-        //报文校验是否符合要求
-        try{
-            reqJson = this.simpleValidateJSON(boCustInfo);
-        }catch (RuntimeException e){
-            return e.getMessage();
-        }
-        //保存用户基本信息
-        if(reqJson!= null && reqJson.containsKey("boCust")){
-            String boCustJSON = reqJson.getJSONObject("boCust").toJSONString();
-            returnInfo = this.saveDataToBoCust(boCustJSON);
-            //解析返回内容
+    public int saveDataToCust(Cust cust) throws RuntimeException {
+        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据入参 : " + cust);
+        //为了保险起见,再测检测reqList 是否有值
+        if(cust == null){
+            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据出错 : " + cust);
+            throw new IllegalArgumentException("请求参数错误,cust : " + cust);
         }
+        int saveFlag = 0;
 
-        return null;
+        saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveDataToCust",cust);
+        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据出参 :saveFlag " + saveFlag);
+
+        return saveFlag;
     }
 
+    /**
+     * 保存实例数据 客户属性信息至CustAttr表中
+     * @param custAttr
+     * @return
+     * @throws RuntimeException
+     */
     @Override
-    public String saveDataToCust(String cust) throws RuntimeException {
-        return null;
+    public int saveDataToCustAttr(CustAttr custAttr) throws RuntimeException {
+        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据入参 : " + custAttr);
+        //为了保险起见,再测检测reqList 是否有值
+        if(custAttr == null){
+            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据出错 : " + custAttr);
+            throw new IllegalArgumentException("请求参数错误,custAttr : " + custAttr);
+        }
+        int saveFlag = 0;
+
+        saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveDataToCustAttr",custAttr);
+        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据出参 :saveFlag " + saveFlag);
+
+        return saveFlag;
     }
 
+    /**
+     * 同时保存客户基本信息和客户属性
+     * 入参为:
+     *
+     * @param boCustInfo 用户信息
+     * @return
+     * @throws RuntimeException
+     */
     @Override
-    public String saveDataToCustAttr(String custAttr) throws RuntimeException {
+    public String saveDataToBoCustAndBoCustAttr(String boCustInfo) throws RuntimeException {
+
+        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAndBoCustAttr】保存数据入参"+boCustInfo);
+
         return null;
     }
 
@@ -155,13 +162,30 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
         return null;
     }
 
+    /**
+     * 根据客户ID查询客户信息,包括基本信息和属性信息
+     * @param cust
+     * @return
+     * @throws RuntimeException
+     */
     @Override
-    public String queryDataToCust(String cust) throws RuntimeException {
-        return null;
+    public Cust queryDataToCust(Cust cust) throws RuntimeException {
+        LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCust】保存数据入参 : " + cust);
+        //为了保险起见,再测检测reqList 是否有值
+        if(cust == null){
+            LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCust】保存数据出错 : " + cust);
+            throw new IllegalArgumentException("请求参数错误,cust : " + cust);
+        }
+
+        Cust newCust  = sqlSessionTemplate.selectOne("userServiceDAOImpl.queryDataToCust",cust);
+
+        LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCust】保存数据出参 :newCust " + newCust);
+
+        return newCust;
     }
 
     @Override
-    public String queryDataToCustAttr(String custAttr) throws RuntimeException {
+    public List<CustAttr> queryDataToCustAttr(CustAttr custAttr) throws RuntimeException {
         return null;
     }
 

+ 45 - 2
UserService/src/main/java/com/java110/user/smo/impl/UserServiceSMOImpl.java

@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.common.log.LoggerEngine;
 import com.java110.common.util.ProtocolUtil;
 import com.java110.entity.user.BoCust;
+import com.java110.entity.user.BoCustAttr;
 import com.java110.feign.base.IPrimaryKeyService;
+import com.java110.user.dao.IUserServiceDao;
 import com.java110.user.smo.IUserServiceSMO;
 import com.java110.core.base.smo.BaseServiceSMO;
 import org.apache.commons.lang.math.NumberUtils;
@@ -24,6 +26,9 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
     @Autowired
     IPrimaryKeyService iPrimaryKeyService;
 
+    @Autowired
+    IUserServiceDao iUserServiceDao;
+
     //新增用户
     private final static String USER_ACTION_ADD = "ADD";
 
@@ -120,7 +125,7 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
             if(custId < 0 ){
                 JSONObject data = new JSONObject();
                 data.put("type","CUST_ID");
-                //{"RESULT_CODE":"0000","RESULT_INFO":{"user_id":"7020170411000041"},"RESULT_MSG":"成功"}
+                //要求接口返回 {"RESULT_CODE":"0000","RESULT_INFO":{"user_id":"7020170411000041"},"RESULT_MSG":"成功"}
                 String custIdJSONStr = iPrimaryKeyService.queryPrimaryKey(data.toJSONString());
                 JSONObject custIdJSONTmp = JSONObject.parseObject(custIdJSONStr);
                 if(custIdJSONTmp.containsKey("RESULT_CODE")
@@ -132,11 +137,22 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
             }
 
             boCust.setCustId(custId+"");
+
+            //保存数据至 bo_cust 表中
+            int saveBoCustFlag = iUserServiceDao.saveDataToBoCust(boCust);
+
+            if(saveBoCustFlag > 0){
+                //建档 处理
+            }
+
         }
         return "";
     }
 
     /**
+     * 注意在调用这个接口时,相应的客户信息必须存在
+     *
+     *
      * 客户信息属性处理
      * 协议:
      *{
@@ -148,7 +164,26 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
      */
     @Override
     public String soBoCustAttr(String boCustAttrs) throws Exception {
-        return null;
+
+        //这里可以加入基本客户信息是否存在的校验,暂时没有必要实现
+
+        // 将 jsonArray 转为list<BoCust> 对象
+        JSONObject jsonObject = JSONObject.parseObject(boCustAttrs);
+
+        List<BoCustAttr> boCustAttrList = JSONObject.parseArray(jsonObject.getJSONArray("boCustAttr").toJSONString(), BoCustAttr.class);
+
+        //保存数据
+
+        for(BoCustAttr boCustAttr : boCustAttrList) {
+
+            //保存数据至 bo_cust_attr 表中
+            int saveBoCustFlag = iUserServiceDao.saveDataToBoCustAttr(boCustAttr);
+
+            if (saveBoCustFlag > 0) {
+                //建档 处理
+            }
+        }
+            return "";
     }
 
     public IPrimaryKeyService getiPrimaryKeyService() {
@@ -158,4 +193,12 @@ public class UserServiceSMOImpl extends BaseServiceSMO implements IUserServiceSM
     public void setiPrimaryKeyService(IPrimaryKeyService iPrimaryKeyService) {
         this.iPrimaryKeyService = iPrimaryKeyService;
     }
+
+    public IUserServiceDao getiUserServiceDao() {
+        return iUserServiceDao;
+    }
+
+    public void setiUserServiceDao(IUserServiceDao iUserServiceDao) {
+        this.iUserServiceDao = iUserServiceDao;
+    }
 }

+ 12 - 0
bean/src/main/java/com/java110/entity/user/Cust.java

@@ -1,5 +1,7 @@
 package com.java110.entity.user;
 
+import java.util.Set;
+
 /**
  * 客户信息实体
  * Created by wuxw on 2016/12/27.
@@ -30,6 +32,8 @@ public class Cust {
 
     private String status_cd;
 
+    private Set<CustAttr> custAttrs;
+
 
     public String getCustId() {
         return custId;
@@ -126,4 +130,12 @@ public class Cust {
     public void setStatus_cd(String status_cd) {
         this.status_cd = status_cd;
     }
+
+    public Set<CustAttr> getCustAttrs() {
+        return custAttrs;
+    }
+
+    public void setCustAttrs(Set<CustAttr> custAttrs) {
+        this.custAttrs = custAttrs;
+    }
 }

+ 92 - 0
config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="userServiceDAOImpl">
+
+    <resultMap type="com.java110.entity.user.Cust" id="custMap">
+        <id column="custId" jdbcType="VARCHAR" property="custId"/>
+        <result column="name" jdbcType="VARCHAR" property="name"/>
+        <result column="email" jdbcType="VARCHAR" property="email"/>
+        <result column="cellphone" jdbcType="VARCHAR" property="cellphone"/>
+        <result column="realName" jdbcType="VARCHAR" property="realName"/>
+        <result column="sex" jdbcType="VARCHAR" property="sex"/>
+        <result column="password" jdbcType="VARCHAR" property="password"/>
+        <result column="lanId" jdbcType="VARCHAR" property="lanId"/>
+        <result column="custAdress" jdbcType="VARCHAR" property="custAdress"/>
+        <result column="custType" jdbcType="VARCHAR" property="custType"/>
+        <result column="openId" jdbcType="VARCHAR" property="openId"/>
+        <!-- 一对多关系 -->
+        <!-- <collection property="stus" resultMap="Student.StudentResult"></collection>  -->
+        <collection property="custAttrs" javaType="com.java110.entity.user.CustAttr">
+            <id property="custId" column="custId"/>
+            <result property="attrCd" column="attrCd"/>
+            <result property="value" column="value"/>
+        </collection>
+    </resultMap>
+
+    <!--根据用户Id查询用户角色
+    <select id="findRolesByUserId" resultType="SysRole">
+        SELECT
+        r.*
+        FROM
+        t_role r,
+        t_user_role ur
+        WHERE ur.uid = #{userId}
+        AND ur.roleId = r.roleId
+        AND ur.status_cd = '1'
+    </select>
+-->
+    <!--保存数据至过程表 bo_cust 中 -->
+    <insert id="saveDataToBoCust" parameterType="com.java110.entity.user.BoCust">
+        <![CDATA[
+            insert into bo_cust(boId,custId,name,email,cellphone,realName,sex,password,lanId,custAdress,custType,openId,state)
+            values(#{boId},#{custId},#{name},#{email},#{cellphone},#{realName},#{sex},#{password},#{lanId},#{custAdress},#{custType},#{openId},#{state})
+        ]]>
+    </insert>
+    <!-- 保存数据至过程表bo_cust_attr 中-->
+    <insert id="saveDataToBoCustAttr" parameterType="com.java110.entity.user.BoCustAttr">
+        <![CDATA[
+            insert into bo_cust_attr(boId,custId,attrCd,value,state)
+            values(#{boId},#{custId},#{attrCd},#{value},#{state})
+        ]]>
+    </insert>
+    <!-- 保存 实例客户信息 cust -->
+    <insert id="saveDataToCust" parameterType="com.java110.entity.user.Cust">
+        <![CDATA[
+            insert into cust(custId,name,email,cellphone,realName,sex,password,lanId,custAdress,custType,openId,status_cd)
+            values(#{custId},#{name},#{email},#{cellphone},#{realName},#{sex},#{password},#{lanId},#{custAdress},#{custType},#{openId},#{status_cd})
+        ]]>
+    </insert>
+    <!-- 删除实例客户信息 cust -->
+    <insert id="deleteDataToCust" parameterType="com.java110.entity.user.Cust">
+        <![CDATA[
+           delete * from cust c where c.custId = #{custId}
+        ]]>
+    </insert>
+
+    <!-- 保存 实例客户属性信息 cust_attr -->
+    <insert id="saveDataToCust" parameterType="com.java110.entity.user.CustAttr">
+        <![CDATA[
+            insert into cust_attr(custId,attrCd,value,status_cd)
+            values(#{custId},#{attrCd},#{value},#{status_cd})
+        ]]>
+    </insert>
+    <!-- 删除实例客户信息 cust -->
+    <insert id="deleteDataToCust" parameterType="com.java110.entity.user.CustAttr">
+        <![CDATA[
+           delete * from cust_attr ct where ct.custId = #{custId} and ct.attrCd = #{attrCd}
+        ]]>
+    </insert>
+    <!--根据客户ID 查询客户信息,其中包括 cust 和custAttr 数据-->
+    <select id="queryDataToCust" parameterType="com.java110.entity.user.Cust" resultMap="custMap">
+        <![CDATA[
+            select c.custId,c.name,c.email,c.cellphone,c.realName,c.sex,c.password,c.lanId,c.custAdress,c.custType,c.openId,
+            ca.custId,ca.attrCd,ca.value
+             from cust c, cust_attr ca where c.custId= ca.custId
+            and c.custId = #{custId}
+            and c.status_cd = '0'
+        ]]>
+    </select>
+
+</mapper>

+ 0 - 19
config/src/main/resources/mapper/user/UserServiceMapper.xml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="userServiceImpl">
-
-    <!--根据用户Id查询用户角色
-    <select id="findRolesByUserId" resultType="SysRole">
-        SELECT
-        r.*
-        FROM
-        t_role r,
-        t_user_role ur
-        WHERE ur.uid = #{userId}
-        AND ur.roleId = r.roleId
-        AND ur.status_cd = '1'
-    </select>
--->
-</mapper>