package project.monitor.internal; import java.text.MessageFormat; import java.util.List; import kernel.exception.BusinessException; import kernel.util.StringUtils; import kernel.web.ApplicationUtil; import project.Constants; import project.log.LogService; import project.monitor.AdminDAppUserService; import project.party.PartyService; import project.party.model.Party; import project.party.model.UserRecom; import project.party.recom.UserRecomService; import project.syspara.Syspara; import project.syspara.SysparaService; import project.user.User; import project.wallet.Wallet; import project.wallet.WalletService; import security.Role; import security.RoleService; import security.SecUser; import security.internal.SecUserService; public class AdminDAppUserServiceImpl implements AdminDAppUserService { private LogService logService; private RoleService roleService; private PartyService partyService; private WalletService walletService; private SysparaService sysparaService; private SecUserService secUserService; private UserRecomService userRecomService; @Override public void save(String address, boolean login_authority, boolean withdraw_authority, boolean enabled,String remarks, String code, String operator, String ip) { address = address.trim(); //统一转换成小写 address = address.toLowerCase(); //操作人为代理商时,默认添加代理商的usercode SecUser sec = this.secUserService.findUserByLoginName(operator); if(!StringUtils.isEmptyString(sec.getPartyId())) { Party party = this.partyService.cachePartyBy(sec.getPartyId(), false); for (Role role : sec.getRoles()) { if (Constants.SECURITY_ROLE_AGENT.equals(role.getRoleName())||Constants.SECURITY_ROLE_AGENTLOW.equals(role.getRoleName())) { code=party.getUsercode(); } } } if (partyService.findPartyByUsername(address) != null) { throw new BusinessException("地址已存在"); } /** * 用户code */ String usercode = getUsercode(); Party party_reco = null; if (!StringUtils.isNullOrEmpty(code)) { party_reco = this.partyService.findPartyByUsercode(code); if (party_reco == null) { throw new BusinessException("上级UID推荐码不正确"); } } int ever_user_level_num = this.sysparaService.find("ever_user_level_num").getInteger(); int ever_user_level_num_custom = this.sysparaService.find("ever_user_level_num_custom").getInteger(); /** * party */ Party party = new Party(); party.setUsername(address); party.setLogin_authority(login_authority); party.setWithdraw_authority(withdraw_authority); party.setEnabled(enabled); party.setRemarks(remarks); party.setUsercode(usercode); party.setUser_level(ever_user_level_num_custom * 10 + ever_user_level_num); party.setRolename(Constants.SECURITY_ROLE_GUEST); party = partyService.save(party); User user = new User(); user.setPartyId(party.getId()); ApplicationUtil.executeInsert(user); if (party_reco != null) { UserRecom userRecom = new UserRecom(); userRecom.setPartyId(party.getId()); userRecom.setReco_id(party_reco.getId());// 父类partyId this.userRecomService.save(userRecom); } /** * SecUser */ Role role = this.roleService.findRoleByName(Constants.SECURITY_ROLE_GUEST); SecUser secUser = new SecUser(); secUser.setPartyId(String.valueOf(party.getId())); secUser.getRoles().add(role); secUser.setUsername(address); secUser.setEnabled(login_authority); this.secUserService.saveUser(secUser); /** * usdt账户 */ Wallet wallet = new Wallet(); wallet.setPartyId(party.getId().toString()); this.walletService.save(wallet); /** * 加入节点操作,未完成 */ project.log.Log log = new project.log.Log(); log.setCategory(Constants.LOG_CATEGORY_OPERATION); log.setUsername(party.getUsername()); log.setOperator(operator); log.setLog("ip:" + ip + ",管理员手动新增了演示用户:" + address); logService.saveSync(log); } @Override public void update(String partyId, boolean login_authority, boolean enabled, boolean withdraw_authority, Integer user_level_custom, String balance_income_config,String remarks, String operatorUsername, String ip) { SecUser sec = this.secUserService.findUserByLoginName(operatorUsername); Party party = this.partyService.cachePartyBy(partyId, false); // for (Role role : sec.getRoles()) { // //代理商只能修改演示账户 // if (Constants.SECURITY_ROLE_AGENT.equals(role.getRoleName())||Constants.SECURITY_ROLE_AGENTLOW.equals(role.getRoleName())) { // // &&party!=null&&!Constants.SECURITY_ROLE_GUEST.equals(party.getRolename())) { // if(party!=null&&!Constants.SECURITY_ROLE_GUEST.equals(party.getRolename())) { // throw new BusinessException("只能修改演示账户"); // } // List children = userRecomService.findChildren(sec.getPartyId()); // if(!children.contains(partyId)) { // throw new BusinessException("只能修改自己线下的用户演示账户"); // } // } // } String logtxt = MessageFormat.format( "ip:" + ip + ",管理员手动修改了用户信息,用户名:{0},原登录权限:{1},原是否业务锁定:{2},原提现权限:{3},原备注:{4}", party.getUsername(), party.getLogin_authority(), party.getEnabled(), party.getWithdraw_authority(), party.getRemarks()); party.setRemarks(remarks); party.setLogin_authority(login_authority); party.setEnabled(enabled); party.setWithdraw_authority(withdraw_authority); party.setBalance_income_config(balance_income_config); if (null != user_level_custom) { // 十进制个位表示系统级别:1/新注册;2/邮箱谷歌手机其中有一个已验证;3/用户实名认证;4/用户高级认证; // 十进制十位表示自定义级别:对应在前端显示为如VIP1 VIP2等级、黄金 白银等级; // 如:级别11表示:新注册的前端显示为VIP1; int userLevel = party.getUser_level(); party.setUser_level(user_level_custom.intValue() * 10 + (int) (userLevel % 10)); } this.partyService.update(party); logtxt += MessageFormat.format(",新登录权限:{0},新是否业务锁定:{1},新提现权限:{2},新备注:{3}", party.getLogin_authority(), party.getEnabled(), party.getWithdraw_authority(), party.getRemarks()); SecUser secUser = secUserService.findUserByPartyId(partyId); secUser.setEnabled(login_authority); this.secUserService.update(secUser); project.log.Log log = new project.log.Log(); log.setCategory(Constants.LOG_CATEGORY_OPERATION); log.setUsername(party.getUsername()); log.setOperator(operatorUsername); log.setLog(logtxt); logService.saveSync(log); } private String getUsercode() { Syspara syspara = sysparaService.find("user_uid_sequence"); int random = (int) (Math.random() * 3 + 1); int user_uid_sequence = syspara.getInteger() + random; syspara.setValue(user_uid_sequence); sysparaService.update(syspara); String usercode = String.valueOf(user_uid_sequence); return usercode; } public void setPartyService(PartyService partyService) { this.partyService = partyService; } public void setSysparaService(SysparaService sysparaService) { this.sysparaService = sysparaService; } public void setUserRecomService(UserRecomService userRecomService) { this.userRecomService = userRecomService; } public void setWalletService(WalletService walletService) { this.walletService = walletService; } public void setLogService(LogService logService) { this.logService = logService; } public void setSecUserService(SecUserService secUserService) { this.secUserService = secUserService; } public void setRoleService(RoleService roleService) { this.roleService = roleService; } }