wuxw7
2018-04-13 3de85d01308c5efa0bc77d4a02fdc9a16d5aa9fb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.java110.core.base.bmo;
 
import com.java110.common.log.LoggerEngine;
import com.java110.core.base.AppBase;
 
/**
 * 业务类基类
 *
 * 公用代码实现
 * Created by wuxw on 2017/3/16.
 */
public class BaseBMO extends AppBase {
 
    /**
     * 根据User_id 查询用户信息
     * @param userId
     * @param iUserServiceSMO
     * @return
 
    protected User getUser(String userId, IUserServiceSMO iUserServiceSMO,IQueryServiceSMO iQueryServiceSMO){
 
            User newUser = null;
            try {
                //从缓存中获取数据
                newUser = JSONObject.parseObject(CacheUtil.get(NameSpaceHandler.getNameSpaceHandler(NameSpaceHandler.USER_DOMAIN),
                        CacheUtil.KEY_USER_PREFIX + userId,String.class),User.class);
                if (UserUtil.isBlank(newUser)) {
                    User tmpUser = new User();
                    tmpUser.setUser_id(userId);
                    String requestParam = ProtocolUtil.createRequestJsonString(ProtocolUtil.SERVICE_CODE_USER_QUERY, tmpUser);
                    logger.debug("------[BaseBMO.getUser]------ 请求参数:" + requestParam);
                    String responseParam = iUserServiceSMO.getUserInfo(requestParam);
                    TcpCont tcpCont = ProtocolUtil.getTcpCont(responseParam);
 
                    logger.debug("------[BaseBMO.getUser]------ 返回参数:" + responseParam);
 
                    if (tcpCont != null && ProtocolUtil.RETURN_MSG_SUCCESS.equals(tcpCont.getResultCode())) {
                        newUser = ProtocolUtil.getObject(responseParam, User.class);
                        //如果用户信息为空
                        if (UserUtil.isBlank(newUser)) {
                            throw new RuntimeException("用户[user_id = "+userId+",未绑定号码]");
                        }
                        assertUser(iUserServiceSMO,iQueryServiceSMO, newUser);
                    }
                    String offerExpirtTime = CustomizedPropertyPlaceholderConfigurer.getContextPropertyString("offers.cache.alive.time");
                    //保存数据至 缓存中
                    CacheUtil.set(NameSpaceHandler.getNameSpaceHandler(NameSpaceHandler.USER_DOMAIN),CacheUtil.KEY_USER_PREFIX + userId,
                            JSONObject.toJSONString(newUser),
                            StringUtils.isEmpty(offerExpirtTime) || !NumberUtils.isNumber(offerExpirtTime)
                                    ? 0 : CommonUtil.multiplicativeStringToInteger(offerExpirtTime));
                }
            }catch (Exception e){
                logger.error("获取不到用户信息[userId = "+userId+"]",e);
                return null;
            }
            return newUser;
    }*/
 
    /**
     * 判断用户是否为空,如果为空直接跑出异常
     * 如果用户不为空时,保存数据至数据库
     * @param iQueryServiceSMO
     * @param newUser 及时入参也是出参
     * @throws RuntimeException
     */
   /* private void assertUser(IUserServiceSMO iUserServiceSMO,IQueryServiceSMO iQueryServiceSMO, User newUser) throws RuntimeException {
        *//**
         * 说明绑定用户的时候从crm拉去用户资料失败,这里重新拉去一遍
         *//*
        if(UserUtil.isBlank(newUser)){
            User tUser = new User();
            tUser.setAcc_nbr(newUser.getAcc_nbr());
            String requestP = ProtocolUtil.createRequestJsonString(ProtocolUtil.SERVICE_CODE_USER_QUERY,tUser);
            //从crm 查询数据
            String responseP = iQueryServiceSMO.queryCrmUserInfo(requestP);
 
            TcpCont tmpTcpCont = ProtocolUtil.getTcpCont(responseP);
 
            if(tmpTcpCont == null || !ProtocolUtil.RETURN_MSG_SUCCESS.equals(tmpTcpCont.getResultCode())
                    || UserUtil.isBlank(ProtocolUtil.getObject(responseP,User.class))) {
                logger.debug("--------------------[BaseBMO.assertUser]---------------------crm返回用户信息:"+responseP);
                throw  new RuntimeException("号码[acc_nbr="+newUser.getAcc_nbr()+"]在crm中为查到数据");
            }
 
            newUser.pullAll(ProtocolUtil.getObject(responseP,User.class));
 
            //保存或修改数据
            String requestParam = ProtocolUtil.createRequestJsonString(ProtocolUtil.SERVICE_CODE_USER_SAVE, newUser);
            logger.debug("------[UserBMOImpl.addUserInfo]------ 请求参数:" + requestParam);
            String responseParam = iUserServiceSMO.addUserInfo(requestParam);
            logger.debug("------[UserBMOImpl.addUserInfo]------ 返回参数:" + responseParam);
        }
    }*/
}