zj
2025-06-30 414555cfbb72c02ebc07ca164a7ff0d0f592de13
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
package project.c2c.internal;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import kernel.util.StringUtils;
import kernel.web.Page;
import kernel.web.PagedQueryDao;
import project.c2c.AdminC2cUserService;
import project.c2c.C2cUser;
import project.c2c.C2cUserService;
import project.syspara.Syspara;
import project.syspara.SysparaService;
 
public class AdminC2cUserServiceImpl implements AdminC2cUserService {
 
    private PagedQueryDao pagedDao;
    private SysparaService sysparaService;
    private C2cUserService c2cUserService;
 
    public Page pagedQuery(int pageNo, int pageSize, String c2c_user_id, Integer c2c_user_type_int, String c2c_user_party_id, String c2c_manager_name_para, String loginPartyId) {
 
        StringBuffer queryString = new StringBuffer();
        
        queryString.append(" SELECT ");
        queryString.append(" cu.UUID id, cu.NICK_NAME nick_name, cu.HEAD_IMG head_img, cu.DEPOSIT deposit, cu.DEPOSIT_OPEN deposit_open, cu.DEPOSIT_GIFT_RATE deposit_gift_rate, ");
        queryString.append(" cu.C2C_USER_TYPE c2c_user_type, cu.C2C_USER_CODE c2c_user_code, cu.C2C_USER_PARTY_ID c2c_user_party_id, ");
        queryString.append(" cu.THIRTY_DAYS_ORDER thirty_days_order, cu.THIRTY_DAYS_ORDER_RATIO thirty_days_order_ratio, cu.THIRTY_DAYS_PASS_AVERAGE_TIME thirty_days_pass_average_time, cu.THIRTY_DAYS_PAY_AVERAGE_TIME thirty_days_pay_average_time, ");
        queryString.append(" cu.THIRTY_DAYS_AMOUNT thirty_days_amount, cu.BUY_AMOUNT buy_amount, cu.SELL_AMOUNT sell_amount, cu.TOTAL_AMOUNT total_amount, cu.ACCOUNT_CREATE_DAYS account_create_days, cu.FIRST_EXCHANGE_DAYS first_exchange_days, cu.EXCHANGE_USERS exchange_users, ");
        queryString.append(" cu.BUY_SUCCESS_ORDERS buy_success_orders, cu.SELL_SUCCESS_ORDERS sell_success_orders, cu.TOTAL_SUCCESS_ORDERS total_success_orders, ");
        queryString.append(" cu.APPRAISE_GOOD appraise_good, cu.APPRAISE_BAD appraise_bad, ");
        queryString.append(" cu.ORDER_MAIL_NOTICE_OPEN order_mail_notice_open, cu.ORDER_SMS_NOTICE_OPEN order_sms_notice_open, cu.ORDER_APP_NOTICE_OPEN order_app_notice_open, ");
        queryString.append(" cu.APPEAL_MAIL_NOTICE_OPEN appeal_mail_notice_open, cu.APPEAL_SMS_NOTICE_OPEN appeal_sms_notice_open, cu.APPEAL_APP_NOTICE_OPEN appeal_app_notice_open, cu.CHAT_APP_NOTICE_OPEN chat_app_notice_open, ");
        queryString.append(" cu.SECURITY_MAIL_NOTICE_OPEN security_mail_notice_open, cu.SECURITY_SMS_NOTICE_OPEN security_sms_notice_open, cu.SECURITY_APP_NOTICE_OPEN security_app_notice_open, ");
        queryString.append(" cu.REMARK remark, cu.CREATE_TIME create_time, cu.UPDATE_TIME update_time, ");
        queryString.append(" manager.UUID manager_id, manager.USERNAME manager_name, party.USERNAME user_name, party.USERCODE user_code, party.PHONE_AUTHORITY phone_authority, party.EMAIL_AUTHORITY email_authority, party.KYC_AUTHORITY kyc_authority, party.KYC_HIGHLEVEL_AUTHORITY kyc_highlevel_authority ");
 
        queryString.append(" FROM T_C2C_USER cu ");
        queryString.append(" LEFT JOIN PAT_PARTY party ON cu.C2C_USER_PARTY_ID = party.UUID ");
        queryString.append(" LEFT JOIN SCT_USER manager ON cu.C2C_MANAGER_PARTY_ID = manager.UUID ");
        queryString.append(" WHERE 1=1 ");
 
        Map<String, Object> parameters = new HashMap<String, Object>();
 
        if (!StringUtils.isNullOrEmpty(loginPartyId)) {
            queryString.append(" AND cu.C2C_MANAGER_PARTY_ID = :loginPartyId ");
            parameters.put("loginPartyId", loginPartyId);
        }
 
        if (!StringUtils.isNullOrEmpty(c2c_manager_name_para)) {
            queryString.append(" AND manager.USERNAME like :c2c_manager_name_para ");
            parameters.put("c2c_manager_name_para", "%" + c2c_manager_name_para + "%");
        }
 
        if (StringUtils.isNotEmpty(c2c_user_id)) {
            queryString.append(" AND (cu.NICK_NAME like :c2c_user_id OR cu.C2C_USER_CODE like :c2c_user_id ) ");
            parameters.put("c2c_user_id", "%" + c2c_user_id + "%");
        }
        
        if (StringUtils.isNotEmpty(c2c_user_party_id)) {
            queryString.append(" AND (party.USERNAME like :c2c_user_party_id OR party.USERCODE like :c2c_user_party_id ) ");
            parameters.put("c2c_user_party_id", "%" + c2c_user_party_id + "%");
        }
 
        if (c2c_user_type_int != null) {
            queryString.append(" AND cu.C2C_USER_TYPE = :c2c_user_type_int ");
            parameters.put("c2c_user_type_int", c2c_user_type_int);
        }
 
        queryString.append(" order by cu.CREATE_TIME desc ");
 
        Page page = this.pagedDao.pagedQuerySQL(pageNo, pageSize, queryString.toString(), parameters);
        
        return page;
    }
    
    public void save(C2cUser c2cUser) {
        c2cUser.setC2cUserCode(this.getUsercode());    
        this.c2cUserService.save(c2cUser);
    }
    
    public void update(C2cUser c2cUser) {
        this.c2cUserService.update(c2cUser);
    }
 
    public void delete(String id) {
        this.c2cUserService.delete(id);
    }
 
    public C2cUser findById(Serializable id) {
        return this.c2cUserService.get(id.toString());
    }
    
    private String getUsercode() {
        Syspara syspara = this.sysparaService.find("c2c_user_uid_sequence");
        int random = (int) (Math.random() * 3 + 1);
        int user_uid_sequence = syspara.getInteger() + random;
        syspara.setValue(user_uid_sequence);
        this.sysparaService.update(syspara);
        String usercode = String.valueOf(user_uid_sequence);
        return usercode;
    }
    
    /*
     * 获取C2C管理员下级承兑商
     */
    public List<Map<String, Object>> getC2cManagerC2cUser(String manager_id) {
        
        StringBuffer queryString = new StringBuffer();
        Map<String, Object> parameters = new HashMap<String, Object>();
        parameters.put("manager_id", manager_id);
        
        queryString.append(" SELECT c2c_user.UUID id, c2c_user.NICK_NAME nick_name, c2c_user.C2C_USER_CODE c2c_user_code, "
                + "c2c_user.C2C_USER_TYPE c2c_user_type, c2c_user.DEPOSIT_OPEN deposit_open, c2c_user.DEPOSIT deposit "
                + "FROM T_C2C_USER c2c_user WHERE c2c_user.C2C_MANAGER_PARTY_ID = :manager_id ");
        Page page = this.pagedDao.pagedQuerySQL(1, 1000000, queryString.toString(), parameters);
 
        if (null == page) {
            return new ArrayList<Map<String,Object>>();
        } else {
            return (List<Map<String, Object>>) page.getElements();
        }
    }
    
    /*
     * 获取所有C2C管理员
     */
    public Map<String, Object> getAllC2cManager() {
        
        StringBuffer queryString = new StringBuffer();        
        Map<String, Object> parameters = new HashMap<String, Object>();
        parameters.put("role_uuid", "SECURITY_ROLE_C2C");
        
        queryString.append(" SELECT user.UUID id, user.USERNAME user_name FROM SCT_USER user LEFT JOIN SCT_USER_ROLE user_role ON user_role.USER_UUID = user.UUID WHERE user_role.ROLE_UUID = :role_uuid ");
        Page page = this.pagedDao.pagedQuerySQL(1, 1000000, queryString.toString(), parameters);
 
        Map<String, Object> mapRet = new HashMap<String, Object>();
        for (Map<String, Object> data : (List<Map<String, Object>>) page.getElements()) {
            mapRet.put(data.get("id").toString(), data.get("user_name"));
        }    
        return mapRet;
    }
    
    public void setPagedDao(PagedQueryDao pagedDao) {
        this.pagedDao = pagedDao;
    }
 
    public void setSysparaService(SysparaService sysparaService) {
        this.sysparaService = sysparaService;
    }
 
    public void setC2cUserService(C2cUserService c2cUserService) {
        this.c2cUserService = c2cUserService;
    }
 
}