|
|
@@ -94,7 +94,16 @@ public class UseraccountServiceImpl extends ServiceImpl<IUseraccountMapper, User
|
|
|
private ITaaccountMapper iTaaccountMapper;
|
|
|
@Resource
|
|
|
private IRiskratiotypeMapper iRiskratiotypeMapper;
|
|
|
-
|
|
|
+ @Resource
|
|
|
+ private IUsergroupMapper iUsergroupMapper;
|
|
|
+ @Resource
|
|
|
+ private IUsergroupdetailMapper iUsergroupdetailMapper;
|
|
|
+ @Resource
|
|
|
+ private IUsergrouptradeconfigMapper iUsergrouptradeconfigMapper;
|
|
|
+ @Resource
|
|
|
+ private IAccountriskconfigMapper iAccountriskconfigMapper;
|
|
|
+ @Resource
|
|
|
+ private IEnumdicitemMapper iEnumdicitemMapper;
|
|
|
|
|
|
@Override
|
|
|
public PageResult<DealerQueryResult> queryOrganPage(DealerQueryParam dealerQueryParam, HttpServletRequest request) {
|
|
|
@@ -790,59 +799,745 @@ public class UseraccountServiceImpl extends ServiceImpl<IUseraccountMapper, User
|
|
|
.eq("customertype", customertype)
|
|
|
.eq("riskcontrolmode", 1));
|
|
|
|
|
|
- BigDecimal cNum = new BigDecimal(100);
|
|
|
- if (riskRatioType.getRecovertraderiskratio() != null) {
|
|
|
- riskRatioType.setRecovertraderiskratio(riskRatioType.getRecovertraderiskratio()
|
|
|
- .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ if (Objects.nonNull(riskRatioType)) {
|
|
|
+ BigDecimal cNum = new BigDecimal(100);
|
|
|
+ if (riskRatioType.getRecovertraderiskratio() != null) {
|
|
|
+ riskRatioType.setRecovertraderiskratio(riskRatioType.getRecovertraderiskratio()
|
|
|
+ .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (riskRatioType.getNotemarginriskratio() != null) {
|
|
|
+ riskRatioType.setNotemarginriskratio(riskRatioType.getNotemarginriskratio()
|
|
|
+ .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (riskRatioType.getAddmarginriskratio() != null) {
|
|
|
+ riskRatioType.setAddmarginriskratio(riskRatioType.getAddmarginriskratio()
|
|
|
+ .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (riskRatioType.getCutriskratio() != null) {
|
|
|
+ riskRatioType.setCutriskratio(riskRatioType.getCutriskratio().multiply(cNum)
|
|
|
+ .setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (riskRatioType.getCutbackriskratio() != null) {
|
|
|
+ riskRatioType.setCutbackriskratio(riskRatioType.getCutbackriskratio()
|
|
|
+ .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+
|
|
|
+ //安全度
|
|
|
+ if (riskRatioType.getNotesaferatio() != null) {
|
|
|
+ riskRatioType.setNotesaferatio(riskRatioType.getNotesaferatio().multiply(cNum)
|
|
|
+ .setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (riskRatioType.getAddsaferatio() != null) {
|
|
|
+ riskRatioType.setAddsaferatio(riskRatioType.getAddsaferatio().multiply(cNum)
|
|
|
+ .setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (riskRatioType.getRecoversaferatio() != null) {
|
|
|
+ riskRatioType.setRecoversaferatio(riskRatioType.getRecoversaferatio()
|
|
|
+ .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ if (riskRatioType.getCutsaferatio() != null) {
|
|
|
+ riskRatioType.setCutsaferatio(riskRatioType.getCutsaferatio()
|
|
|
+ .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Market> marketList = iMarketMapper.selectList(new QueryWrapper<Market>().in(StringUtils.isNotBlank(riskRatioType.getCutmarginseq()), "marketid",
|
|
|
+ Arrays.stream(riskRatioType.getCutmarginseq().split(",")).filter(s -> !s.trim().isEmpty()).map(Long::valueOf).collect(Collectors.toList())));
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ for (int i = 0; i < marketList.size(); i++) {
|
|
|
+ if (i == marketList.size() - 1) {
|
|
|
+ stringBuilder.append(marketList.get(i).getMarketname());
|
|
|
+ } else {
|
|
|
+ stringBuilder.append(marketList.get(i).getMarketname()).append(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ riskRatioType.setMarkets(stringBuilder.toString());
|
|
|
+ }
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), riskRatioType);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult addPersonalized(InvestorPersonalizedAddParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ if (param.getAutoid() == null) {
|
|
|
+ if (param.getAreauserid() == null) {
|
|
|
+ param.setAreauserid(systemmanager.getAreauserid());
|
|
|
+ }
|
|
|
+ List<Usergroup> usergroups = iUsergroupMapper.selectList(new QueryWrapper<Usergroup>()
|
|
|
+ .eq("groupname", param.getGroupname())
|
|
|
+ .eq("areauserid", param.getAreauserid()));
|
|
|
+ if (CollectionUtils.isNotEmpty(usergroups)) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_006.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+ Usergroup ug = new Usergroup();
|
|
|
+ BeanUtils.copyProperties(param, ug);
|
|
|
+ ug.setCreatorid(systemmanager.getAutoid());
|
|
|
+ ug.setCreatetime(new Date());
|
|
|
+ iUsergroupMapper.insert(ug);
|
|
|
+ } else {
|
|
|
+ Usergroup ug = iUsergroupMapper.selectOne(new QueryWrapper<Usergroup>().eq("AUTOID", param.getAutoid()));
|
|
|
+ if (!iCommonService.checkUserAccountRole(systemmanager, ug.getAreauserid())) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!param.getGroupname().equals(ug.getGroupname())) {
|
|
|
+ List<Usergroup> usergroups = iUsergroupMapper.selectList(new QueryWrapper<Usergroup>()
|
|
|
+ .eq("groupname", param.getGroupname())
|
|
|
+ .eq("areauserid", param.getAreauserid()));
|
|
|
+ if (CollectionUtils.isNotEmpty(usergroups)) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_006.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ug.setCustomertype(param.getCustomertype());
|
|
|
+ ug.setGroupname(param.getGroupname());
|
|
|
+ iUsergroupMapper.updateById(ug);
|
|
|
+ }
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageResult<InvestorPerDetailQueryResult> queryPersonalizedDetail(InvestorPerDetailQueryParam param, HttpServletRequest request) {
|
|
|
+ if (StringUtils.isNotBlank(param.getCardnum()))
|
|
|
+ param.setCardnum(EncryptionUtils.encryptByAES(param.getCardnum()));
|
|
|
+ if (StringUtils.isNotBlank(param.getMobilephone()))
|
|
|
+ param.setMobilephone(EncryptionUtils.encryptByAES(param.getMobilephone()));
|
|
|
+ IPage<InvestorPerDetailQueryResult> page = new Page<>(param.getPageNum(), param.getPageSize());
|
|
|
+ IPage<InvestorPerDetailQueryResult> modifyPage = iUseraccountMapper.queryPersonalizedDetail(page, param);
|
|
|
+ PageResult<InvestorPerDetailQueryResult> pageResult = new PageResult<>();
|
|
|
+ pageResult.setCode(Constants.Success_Code_Design);
|
|
|
+ pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
|
|
|
+ pageResult.setPages(modifyPage.getPages());
|
|
|
+ pageResult.setCurrent(modifyPage.getCurrent());
|
|
|
+ pageResult.setTotal(modifyPage.getTotal());
|
|
|
+ pageResult.setPageSize(modifyPage.getSize());
|
|
|
+ pageResult.setData(modifyPage.getRecords());
|
|
|
+ return pageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult<Useraccount> queryInvestorForPer(Long usergroupid, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ Long userid;
|
|
|
+ Usergroup ug = iUsergroupMapper.selectOne(new QueryWrapper<Usergroup>().eq("AUTOID", usergroupid));
|
|
|
+ if (systemmanager.getReletype().intValue() == SysConstants.SYS_TYPE_MANAGE) {
|
|
|
+ userid = ug.getAreauserid();
|
|
|
+ } else {
|
|
|
+ userid = systemmanager.getAreauserid();
|
|
|
+ }
|
|
|
+ QueryWrapper<Useraccount> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("usertype", 5);
|
|
|
+ queryWrapper.eq("memberuserid", userid);
|
|
|
+ String notExistsSql = "NOT EXISTS (SELECT 1 FROM usergroupdetail u WHERE u.userid = useraccount.userid)";
|
|
|
+ queryWrapper.apply(notExistsSql);
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), iUseraccountMapper.selectList(queryWrapper));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult addInvestorForPer(InvestorForPerAddParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ if (StringUtils.isEmpty(param.getAdduserids())) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_007.getCode(), request.getHeader("Accept-Language"));
|
|
|
}
|
|
|
- if (riskRatioType.getNotemarginriskratio() != null) {
|
|
|
- riskRatioType.setNotemarginriskratio(riskRatioType.getNotemarginriskratio()
|
|
|
- .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ String[] ids = param.getAdduserids().split(",");
|
|
|
+ for (String id : ids) {
|
|
|
+ if (!iCommonService.checkUserAccountRole(systemmanager, Long.valueOf(id))) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
}
|
|
|
- if (riskRatioType.getAddmarginriskratio() != null) {
|
|
|
- riskRatioType.setAddmarginriskratio(riskRatioType.getAddmarginriskratio()
|
|
|
- .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ //确定勾选的交易商是否分了组
|
|
|
+ List<Usergroupdetail> list = iUsergroupdetailMapper.selectList(new QueryWrapper<Usergroupdetail>()
|
|
|
+ .in("userid", Arrays.stream(ids).filter(s -> !s.trim().isEmpty())
|
|
|
+ .map(Long::valueOf).collect(Collectors.toList())));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ Object[] res = {list.get(0)};
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_008.getCode(), res, request.getHeader("Accept-Language"));
|
|
|
}
|
|
|
- if (riskRatioType.getCutriskratio() != null) {
|
|
|
- riskRatioType.setCutriskratio(riskRatioType.getCutriskratio().multiply(cNum)
|
|
|
- .setScale(2, RoundingMode.HALF_UP));
|
|
|
+
|
|
|
+ for (String id : ids) {
|
|
|
+ Usergroupdetail ug = new Usergroupdetail();
|
|
|
+ ug.setUserid(Long.valueOf(id));
|
|
|
+ ug.setUsergroupid(param.getUsergroupid());
|
|
|
+ ug.setCreatetime(new Date());
|
|
|
+ ug.setCreatorid(systemmanager.getAutoid());
|
|
|
+ iUsergroupdetailMapper.insert(ug);
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(2, 1, Long.valueOf(id), null, null, param.getUsergroupid(), null);
|
|
|
+ }
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult delInvestorForPer(Long userid, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ if (!iCommonService.checkUserAccountRole(systemmanager, userid)) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
|
|
|
}
|
|
|
- if (riskRatioType.getCutbackriskratio() != null) {
|
|
|
- riskRatioType.setCutbackriskratio(riskRatioType.getCutbackriskratio()
|
|
|
- .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ Usergroupdetail us = iUsergroupdetailMapper.selectOne(new QueryWrapper<Usergroupdetail>().eq("userid", userid));
|
|
|
+ iUsergroupdetailMapper.delete(new QueryWrapper<Usergroupdetail>().eq("userid", userid));
|
|
|
+
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(2, 1, userid, null, null, us.getUsergroupid(), null);
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult delInvest(Long autoid, HttpServletRequest request) {
|
|
|
+ Usergroup ug = iUsergroupMapper.selectOne(new QueryWrapper<Usergroup>().eq("AUTOID", autoid));
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ if (!iCommonService.checkUserAccountRole(systemmanager, ug.getAreauserid())) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
|
|
|
}
|
|
|
|
|
|
- //安全度
|
|
|
- if (riskRatioType.getNotesaferatio() != null) {
|
|
|
- riskRatioType.setNotesaferatio(riskRatioType.getNotesaferatio().multiply(cNum)
|
|
|
- .setScale(2, RoundingMode.HALF_UP));
|
|
|
+ List<Usergrouptradeconfig> tc = iUsergrouptradeconfigMapper.selectList(new QueryWrapper<Usergrouptradeconfig>().eq("usergroupid", autoid));
|
|
|
+ if (CollectionUtils.isNotEmpty(tc)) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_010.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+ List<Usergroupdetail> usergroupid = iUsergroupdetailMapper.selectList(new QueryWrapper<Usergroupdetail>().eq("usergroupid", autoid));
|
|
|
+ if (CollectionUtils.isNotEmpty(usergroupid)) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_009.getCode(), request.getHeader("Accept-Language"));
|
|
|
}
|
|
|
- if (riskRatioType.getAddsaferatio() != null) {
|
|
|
- riskRatioType.setAddsaferatio(riskRatioType.getAddsaferatio().multiply(cNum)
|
|
|
- .setScale(2, RoundingMode.HALF_UP));
|
|
|
+
|
|
|
+ iUsergroupMapper.deleteById(ug);
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageResult<AccountRiskConfigResult> queryAccountRiskConfig(AccountRiskConfigParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ if (systemmanager.getReletype().intValue() == SysConstants.SYS_TYPE_CLIENT) {
|
|
|
+ param.setMemberuserid(systemmanager.getAreauserid());
|
|
|
}
|
|
|
- if (riskRatioType.getRecoversaferatio() != null) {
|
|
|
- riskRatioType.setRecoversaferatio(riskRatioType.getRecoversaferatio()
|
|
|
- .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ IPage<AccountRiskConfigResult> page = new Page<>(param.getPageNum(), param.getPageSize());
|
|
|
+ IPage<AccountRiskConfigResult> modifyPage = iUseraccountMapper.queryAccountRiskConfigPage(page, param);
|
|
|
+ PageResult<AccountRiskConfigResult> pageResult = new PageResult<>();
|
|
|
+ pageResult.setCode(Constants.Success_Code_Design);
|
|
|
+ pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
|
|
|
+ pageResult.setPages(modifyPage.getPages());
|
|
|
+ pageResult.setCurrent(modifyPage.getCurrent());
|
|
|
+ pageResult.setTotal(modifyPage.getTotal());
|
|
|
+ pageResult.setPageSize(modifyPage.getSize());
|
|
|
+ pageResult.setData(modifyPage.getRecords());
|
|
|
+ return pageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult getTaaccountList(Long userid, HttpServletRequest request) {
|
|
|
+ QueryWrapper<Taaccount> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("userid", userid);
|
|
|
+ String notExistsSql = "NOT EXISTS (select 1 from AccountRiskConfig a where a.accountid = TAACCOUNT.accountid)";
|
|
|
+ queryWrapper.apply(notExistsSql);
|
|
|
+ List<Taaccount> taaccounts = iTaaccountMapper.selectList(queryWrapper);
|
|
|
+ List<Long> collect = taaccounts.stream().map(Taaccount::getAccountid).collect(Collectors.toList());
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), collect);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult addAccountRiskConfig(AccountRiskConfigAddParam param, HttpServletRequest request) {
|
|
|
+ Accountriskconfig config = iAccountriskconfigMapper.selectOne(new QueryWrapper<Accountriskconfig>()
|
|
|
+ .eq("accountid", param.getAccountid())
|
|
|
+ .eq("userid", param.getUserid()));
|
|
|
+
|
|
|
+ if (Objects.isNull(config)) {
|
|
|
+ Accountriskconfig accountriskconfig = new Accountriskconfig();
|
|
|
+ accountriskconfig.setUserid(param.getUserid());
|
|
|
+ accountriskconfig.setCustomertype(param.getCustomertype());
|
|
|
+ accountriskconfig.setAccountid(param.getAccountid());
|
|
|
+ iAccountriskconfigMapper.insert(accountriskconfig);
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(1, 1, param.getUserid(), param.getAccountid(), null, null, null);
|
|
|
+ } else {
|
|
|
+ config.setCustomertype(param.getCustomertype());
|
|
|
+ iAccountriskconfigMapper.update(config, new QueryWrapper<Accountriskconfig>()
|
|
|
+ .eq("accountid", param.getAccountid())
|
|
|
+ .eq("userid", param.getUserid()));
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(1, 2, param.getUserid(), param.getAccountid(), null, null, null);
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult<Accountriskconfig> view(Long accountid, HttpServletRequest request) {
|
|
|
+ Accountriskconfig config = iAccountriskconfigMapper.selectOne(new QueryWrapper<Accountriskconfig>().eq("accountid", accountid));
|
|
|
+ Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", config.getUserid()));
|
|
|
+ if (ua.getUsertype() == 2) {
|
|
|
+ Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("accountid", config.getAccountid()));
|
|
|
+ config.setIsmarketacc(ta.getIsmarketaccount());
|
|
|
+ }
|
|
|
+ config.setUsertype(ua.getUsertype());
|
|
|
+ config.setAccountname(ua.getAccountname());
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), config);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult deleteConfig(Long accountid, HttpServletRequest request) {
|
|
|
+ Accountriskconfig config = iAccountriskconfigMapper.selectOne(new QueryWrapper<Accountriskconfig>().eq("accountid", accountid));
|
|
|
+ iAccountriskconfigMapper.delete(new QueryWrapper<Accountriskconfig>().eq("accountid", accountid));
|
|
|
+
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(1, 3, config.getUserid(), config.getAccountid(), null, null, null);
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult<UserGroupTreeResult> getTree(HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ List<Usergroup> groupList = iUsergroupMapper.selectList(new QueryWrapper<>());
|
|
|
+ List<UserGroupTradeConfigTreeVo> result = new ArrayList<>();
|
|
|
+ List<Usergrouptradeconfig> list = iUsergrouptradeconfigMapper.selectList(new QueryWrapper<Usergrouptradeconfig>().eq("memberuserid", systemmanager.getAreauserid()));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ Map<Long, List<Usergrouptradeconfig>> group = new HashMap<>();
|
|
|
+ for (Usergrouptradeconfig fig : list) {
|
|
|
+ Market marketid = iMarketMapper.selectOne(new QueryWrapper<Market>().eq("marketid", fig.getMarketid()));
|
|
|
+ fig.setMarketname(marketid.getMarketname());
|
|
|
+ Goods goods = iGoodsMapper.selectOne(new QueryWrapper<Goods>().eq("goodsid", fig.getGoodsid()));
|
|
|
+ fig.setGoodsname(goods.getGoodsname());
|
|
|
+ Long key = fig.getUsergroupid();
|
|
|
+ if (group.containsKey(key)) {
|
|
|
+ group.get(key).add(fig);
|
|
|
+ } else {
|
|
|
+ List<Usergrouptradeconfig> temp = new ArrayList<>();
|
|
|
+ temp.add(fig);
|
|
|
+ group.put(key, temp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<Long, Map<Long, List<Usergrouptradeconfig>>> groups = new HashMap<>();
|
|
|
+ for (Map.Entry<Long, List<Usergrouptradeconfig>> entry : group.entrySet()) {
|
|
|
+ Map<Long, List<Usergrouptradeconfig>> market = new HashMap<>();
|
|
|
+ List<Usergrouptradeconfig> temp = entry.getValue();
|
|
|
+ for (Usergrouptradeconfig fig : temp) {
|
|
|
+ Long key = fig.getMarketid();
|
|
|
+ if (market.containsKey(key)) {
|
|
|
+ market.get(key).add(fig);
|
|
|
+ } else {
|
|
|
+ List<Usergrouptradeconfig> _temp = new ArrayList<>();
|
|
|
+ _temp.add(fig);
|
|
|
+ market.put(key, _temp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ groups.put(entry.getKey(), market);
|
|
|
+ }
|
|
|
+ Set<String> set = new HashSet<>();
|
|
|
+
|
|
|
+ for (Map.Entry<Long, Map<Long, List<Usergrouptradeconfig>>> entry : groups.entrySet()) {
|
|
|
+ Usergrouptradeconfig base = null;
|
|
|
+ for (Map.Entry<Long, List<Usergrouptradeconfig>> _entry : entry.getValue().entrySet()) {
|
|
|
+ List<Usergrouptradeconfig> temp = _entry.getValue();
|
|
|
+ for (int i = 0; i < temp.size(); i++) {
|
|
|
+ Usergrouptradeconfig fig = temp.get(i);
|
|
|
+ if (i == 0) {
|
|
|
+ base = fig;
|
|
|
+ }
|
|
|
+ String setKey = fig.getUsergroupid() + "" + fig.getMarketid() + "" + fig.getGoodsid();
|
|
|
+ if (!set.contains(setKey)) {
|
|
|
+ set.add(setKey);
|
|
|
+ //商品级
|
|
|
+ UserGroupTradeConfigTreeVo vo2 = new UserGroupTradeConfigTreeVo();
|
|
|
+ vo2.setId(fig.getGoodsid().toString());
|
|
|
+ vo2.setPid(fig.getUsergroupid() + "" + fig.getMarketid());
|
|
|
+ vo2.setLevel(3);
|
|
|
+ //商品名称
|
|
|
+ vo2.setName(fig.getGoodsname());
|
|
|
+ vo2.setUsergroupid(fig.getUsergroupid());
|
|
|
+ vo2.setMarketid(fig.getMarketid());
|
|
|
+ vo2.setGoodsid(fig.getGoodsid());
|
|
|
+ result.add(vo2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //市场级
|
|
|
+ UserGroupTradeConfigTreeVo vo1 = new UserGroupTradeConfigTreeVo();
|
|
|
+ vo1.setId(base.getUsergroupid() + "" + base.getMarketid());
|
|
|
+ vo1.setPid("z" + base.getUsergroupid().toString());
|
|
|
+ vo1.setLevel(2);
|
|
|
+ //市场名称
|
|
|
+ vo1.setName(base.getMarketname());
|
|
|
+ vo1.setUsergroupid(base.getUsergroupid());
|
|
|
+ vo1.setMarketid(base.getMarketid());
|
|
|
+ result.add(vo1);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- if (riskRatioType.getCutsaferatio() != null) {
|
|
|
- riskRatioType.setCutsaferatio(riskRatioType.getCutsaferatio()
|
|
|
- .multiply(cNum).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ //默认分组
|
|
|
+ UserGroupTradeConfigTreeVo defaultVO = new UserGroupTradeConfigTreeVo();
|
|
|
+ defaultVO.setId("z0");
|
|
|
+ defaultVO.setPid("-1");
|
|
|
+ defaultVO.setLevel(1);
|
|
|
+ defaultVO.setName("默认配置");
|
|
|
+ defaultVO.setUsergroupid(0L);
|
|
|
+ result.add(defaultVO);
|
|
|
+
|
|
|
+ //分组级
|
|
|
+ int len = groupList.size();
|
|
|
+ for (int i = 0; i < len; i++) {
|
|
|
+ Usergroup ug = groupList.get(i);
|
|
|
+ UserGroupTradeConfigTreeVo temp = new UserGroupTradeConfigTreeVo();
|
|
|
+ temp.setId("z" + ug.getAutoid().toString());
|
|
|
+ temp.setPid("-1");
|
|
|
+ temp.setLevel(1);
|
|
|
+ //分组名称
|
|
|
+ temp.setName(ug.getGroupname());
|
|
|
+ temp.setUsergroupid(ug.getAutoid());
|
|
|
+ result.add(temp);
|
|
|
}
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
|
|
|
+ }
|
|
|
|
|
|
- List<Market> marketList = iMarketMapper.selectList(new QueryWrapper<Market>().in(StringUtils.isNotBlank(riskRatioType.getCutmarginseq()), "marketid",
|
|
|
- Arrays.stream(riskRatioType.getCutmarginseq().split(",")).filter(s -> !s.trim().isEmpty()).map(Long::valueOf).collect(Collectors.toList())));
|
|
|
- StringBuilder stringBuilder = new StringBuilder();
|
|
|
- for (int i = 0; i < marketList.size(); i++) {
|
|
|
- if (i == marketList.size() - 1) {
|
|
|
- stringBuilder.append(marketList.get(i).getMarketname());
|
|
|
+ @Override
|
|
|
+ public AjaxResult<InvestorInitPerAddResult> initMarketAndGroup(Long usergroupid, Long marketid, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ InvestorInitPerAddResult result = new InvestorInitPerAddResult();
|
|
|
+ if (usergroupid == null) {
|
|
|
+ QueryWrapper<Usergroup> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.eq("areauserid", systemmanager.getAreauserid());
|
|
|
+ // 添加不存在子查询的条件
|
|
|
+ wrapper.notExists(
|
|
|
+ "select 1 from usergrouptradeconfig u " +
|
|
|
+ "where " +
|
|
|
+ "<if test='memberuserid != null'>u.memberuserid = #{memberuserid} and </if>" +
|
|
|
+ "USERGROUP.autoid = u.usergroupid"
|
|
|
+ );
|
|
|
+ result.setUserGroups(iUsergroupMapper.selectList(wrapper));
|
|
|
+ result.setMarkets(iMarketMapper.getNoTradeConfigMarkets(systemmanager.getAreauserid(), usergroupid));
|
|
|
+ } else {
|
|
|
+ if (marketid == null) {
|
|
|
+ result.setMarkets(iMarketMapper.getNoTradeConfigMarkets(systemmanager.getAreauserid(), usergroupid));
|
|
|
} else {
|
|
|
- stringBuilder.append(marketList.get(i).getMarketname()).append(",");
|
|
|
+ result.setGoods(iGoodsMapper.getNoTradeConfigGoods(systemmanager.getAreauserid(), usergroupid, marketid));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult<InvestorInitPerAddResult> initGoodsAndBZ(Long usergroupid, Long marketid, Long goodsid, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ InvestorInitPerAddResult result = new InvestorInitPerAddResult();
|
|
|
+ if (marketid != null) {
|
|
|
+ result.setGoods(iGoodsMapper.getNoTradeConfigGoods(systemmanager.getAreauserid(), usergroupid, marketid));
|
|
|
+ } else {
|
|
|
+ //客户类别
|
|
|
+ result.setResults(iUseraccountMapper.getCustomerTypeByGoodsid(goodsid, null));
|
|
|
+ }
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult traderPersonAdd(InvestorPersonAddParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ if (param.getFlag() == 0) {
|
|
|
+ AjaxResult Error_Code_Design = addTrader(param, request);
|
|
|
+ if (Error_Code_Design != null) return Error_Code_Design;
|
|
|
+
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(3, 1, null, null, param.getGoodsid(), param.getUsergroupid(), null);
|
|
|
+ } else {
|
|
|
+ QueryWrapper<Usergrouptradeconfig> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("goodsid", param.getGoodsid());
|
|
|
+ queryWrapper.eq("marketid", param.getMarketid());
|
|
|
+ queryWrapper.eq("memberuserid", systemmanager.getAreauserid());
|
|
|
+ queryWrapper.eq("usergroupid", param.getUsergroupid());
|
|
|
+ iUsergrouptradeconfigMapper.delete(queryWrapper);
|
|
|
+
|
|
|
+ AjaxResult Error_Code_Design = addTrader(param, request);
|
|
|
+ if (Error_Code_Design != null) return Error_Code_Design;
|
|
|
+
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(3, 2, null, null, param.getGoodsid(), param.getUsergroupid(), null);
|
|
|
+ }
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ private AjaxResult addTrader(InvestorPersonAddParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ if (param.getParamid() != null) {
|
|
|
+ Usergrouptradeconfig config = getUsergrouptradeconfig(param, systemmanager);
|
|
|
+ iUsergrouptradeconfigMapper.insert(config);
|
|
|
+ }
|
|
|
+
|
|
|
+ Object o = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "007");
|
|
|
+ //币种小数位
|
|
|
+ BigDecimal Cude = null;
|
|
|
+ //成交量小数位
|
|
|
+ BigDecimal qtyde = null;
|
|
|
+ if (o != null && "1".equals(o.toString())) {
|
|
|
+ Goods goods = iGoodsMapper.selectOne(new QueryWrapper<Goods>().eq("goodsid", param.getGoodsid()));
|
|
|
+ Enumdicitem item = iEnumdicitemMapper.selectOne(new QueryWrapper<Enumdicitem>()
|
|
|
+ .eq("enumdiccode", "currency")
|
|
|
+ .eq("enumitemname", goods.getCurrencyid()));
|
|
|
+ if (item != null && StringUtils.isNotBlank(item.getParam1())) {
|
|
|
+ Cude = new BigDecimal(Math.pow(10, Integer.valueOf(item.getParam1())));
|
|
|
+ }
|
|
|
+ qtyde = new BigDecimal(Math.pow(10, goods.getQtydecimalplace()));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Usergrouptradeconfig> ruleList = param.getRuleList();
|
|
|
+ if (ruleList != null && !ruleList.isEmpty()) {
|
|
|
+ for (Usergrouptradeconfig fig : ruleList) {
|
|
|
+ if (fig.getParamid() == null || fig.getParamid() == 0
|
|
|
+ || fig.getParamvalue() == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //小数位放大
|
|
|
+ if (qtyde != null && fig.getParamid() >= 101 && fig.getParamid() <= 104) {
|
|
|
+ fig.setParamvalue(fig.getParamvalue().multiply(qtyde));
|
|
|
+ }
|
|
|
+
|
|
|
+ fig.setFeealgorithm(2);
|
|
|
+ fig.setUsergroupid(param.getUsergroupid());
|
|
|
+ fig.setMemberuserid(systemmanager.getAreauserid());
|
|
|
+ fig.setMarketid(param.getMarketid());
|
|
|
+ fig.setGoodsid(param.getGoodsid());
|
|
|
+ fig.setRuletype(2);
|
|
|
+ fig.setCreatetime(new Date());
|
|
|
+ fig.setCreatorid(systemmanager.getAutoid());
|
|
|
+ iUsergrouptradeconfigMapper.insert(fig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Usergrouptradeconfig> feeList = param.getFeeList();
|
|
|
+ if (feeList != null && !feeList.isEmpty()) {
|
|
|
+ for (Usergrouptradeconfig fig : feeList) {
|
|
|
+ if (fig.getParamid() == null || fig.getParamid() == 0
|
|
|
+ || fig.getFeealgorithm() == null || fig.getParamvalue() == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (fig.getFeealgorithm() == 1) {
|
|
|
+ if (fig.getParamvalue().compareTo(new BigDecimal(10000)) > 0) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_011.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+ fig.setParamvalue(fig.getParamvalue().divide(new BigDecimal(10000)));
|
|
|
+ } else if (Cude != null) {
|
|
|
+ fig.setParamvalue(fig.getParamvalue().multiply(Cude));
|
|
|
+ }
|
|
|
+ fig.setUsergroupid(param.getUsergroupid());
|
|
|
+ fig.setMemberuserid(systemmanager.getAreauserid());
|
|
|
+ fig.setMarketid(param.getMarketid());
|
|
|
+ fig.setGoodsid(param.getGoodsid());
|
|
|
+ fig.setRuletype(3);
|
|
|
+ fig.setCreatetime(new Date());
|
|
|
+ fig.setCreatorid(systemmanager.getAutoid());
|
|
|
+ iUsergrouptradeconfigMapper.insert(fig);
|
|
|
}
|
|
|
}
|
|
|
- riskRatioType.setMarkets(stringBuilder.toString());
|
|
|
- return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"),riskRatioType);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Usergrouptradeconfig getUsergrouptradeconfig(InvestorPersonAddParam param, Systemmanager systemmanager) {
|
|
|
+ Usergrouptradeconfig config = new Usergrouptradeconfig();
|
|
|
+ config.setUsergroupid(param.getUsergroupid());
|
|
|
+ config.setMemberuserid(systemmanager.getAreauserid());
|
|
|
+ config.setMarketid(param.getMarketid());
|
|
|
+ config.setGoodsid(param.getGoodsid());
|
|
|
+ config.setRuletype(1);
|
|
|
+ config.setParamid(param.getParamid());
|
|
|
+ config.setCreatetime(new Date());
|
|
|
+ config.setCreatorid(systemmanager.getAutoid());
|
|
|
+ config.setFeealgorithm(param.getFeealgorithm());
|
|
|
+ return config;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult<InvestorInitPerAddResult> initGoodsForRuleAndFee(Long marketid, Long goodsid, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ InvestorInitPerAddResult result = new InvestorInitPerAddResult();
|
|
|
+ List<FeesConfigVo> feeVo = getTradeFeeDescriptions(marketid, goodsid, systemmanager.getAreauserid());
|
|
|
+ result.setFeesConfigVos(feeVo);
|
|
|
+ List<RulesConfigVo> rulesVos = getTradeRuleDescriptions(marketid, goodsid, systemmanager.getAreauserid());
|
|
|
+ result.setRulesConfigVos(rulesVos);
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult deleteTraderConfig(InvestorPersonDeleteParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+ QueryWrapper<Usergrouptradeconfig> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("goodsid", param.getGoodsid());
|
|
|
+ queryWrapper.eq("marketid", param.getMarketid());
|
|
|
+ queryWrapper.eq("memberuserid", systemmanager.getAreauserid());
|
|
|
+ queryWrapper.eq("usergroupid", param.getUsergroupid());
|
|
|
+ iUsergrouptradeconfigMapper.delete(queryWrapper);
|
|
|
+
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(3, 3, null, null, param.getGoodsid(), param.getUsergroupid(), null);
|
|
|
+
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult<UserGroupTradeConfigVo> tradeConfigView(InvestorPersonViewParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+
|
|
|
+ List<RulesConfigVo> ruleList = iUseraccountMapper.getTradeRuleDescriptions(param.getMarketid(), param.getGoodsid(), systemmanager.getAreauserid());
|
|
|
+ List<FeesConfigVo> feeList = iUseraccountMapper.getTradeFeeDescriptions(param.getMarketid(), param.getGoodsid(), systemmanager.getAreauserid());
|
|
|
+
|
|
|
+ Object o = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "007");
|
|
|
+ if (o != null && "1".equals(o.toString())) {
|
|
|
+ //成交量小数位
|
|
|
+ Goods goods = iGoodsMapper.selectOne(new QueryWrapper<Goods>().eq("goodsid", param.getGoodsid()));
|
|
|
+ if (ruleList != null && !ruleList.isEmpty()) {
|
|
|
+ //成交量小数位
|
|
|
+ if (goods.getQtydecimalplace() != null && goods.getQtydecimalplace() != 0) {
|
|
|
+ BigDecimal qtyde = new BigDecimal(Math.pow(10, goods.getQtydecimalplace()));
|
|
|
+ for (int i = 0; i < ruleList.size(); i++) {
|
|
|
+ //小数位放大
|
|
|
+ if (ruleList.get(i).getRuleid() >= 101 && ruleList.get(i).getRuleid() <= 104) {
|
|
|
+ if (ruleList.get(i).getParamvalue() != null &&
|
|
|
+ ruleList.get(i).getParamvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ ruleList.get(i).setParamvalue(ruleList.get(i).getParamvalue().
|
|
|
+ divide(new BigDecimal(Math.pow(10, ruleList.get(i).getQtydecimalplace()))));
|
|
|
+ }
|
|
|
+ if (ruleList.get(i).getGvalue() != null &&
|
|
|
+ ruleList.get(i).getGvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ ruleList.get(i).setGvalue(ruleList.get(i).getGvalue().divide(qtyde));
|
|
|
+ }
|
|
|
+ if (ruleList.get(i).getDvalue() != null &&
|
|
|
+ ruleList.get(i).getDvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ ruleList.get(i).setDvalue(ruleList.get(i).getDvalue().divide(qtyde));
|
|
|
+ }
|
|
|
+ if (ruleList.get(i).getCvalue() != null &&
|
|
|
+ ruleList.get(i).getCvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ ruleList.get(i).setCvalue(ruleList.get(i).getCvalue().divide(qtyde));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ if (feeList != null && !feeList.isEmpty()) {
|
|
|
+ //币种小数位
|
|
|
+ Enumdicitem item = iEnumdicitemMapper.selectOne(new QueryWrapper<Enumdicitem>()
|
|
|
+ .eq("enumdiccode", "currency")
|
|
|
+ .eq("enumitemname", goods.getCurrencyid()));
|
|
|
+ if (item != null && StringUtils.isNotBlank(item.getParam1()) && !"0".equals(item.getParam1())) {
|
|
|
+ BigDecimal Cude = new BigDecimal(Math.pow(10, Integer.valueOf(item.getParam1())));
|
|
|
+ for (int i = 0; i < feeList.size(); i++) {
|
|
|
+ //小数位放大
|
|
|
+ if (feeList.get(i).getFeealgorithm() == 2) {
|
|
|
+ if (feeList.get(i).getExchangevalue() != null
|
|
|
+ && feeList.get(i).getExchangevalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ feeList.get(i).setExchangevalue(feeList.get(i).getExchangevalue().divide(Cude));
|
|
|
+ }
|
|
|
+ if (feeList.get(i).getDvalue() != null
|
|
|
+ && feeList.get(i).getDvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ feeList.get(i).setDvalue(feeList.get(i).getDvalue().divide(Cude));
|
|
|
+ }
|
|
|
+ if (feeList.get(i).getGvalue() != null
|
|
|
+ && feeList.get(i).getGvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ feeList.get(i).setGvalue(feeList.get(i).getGvalue().divide(Cude));
|
|
|
+ }
|
|
|
+ if (feeList.get(i).getCvalue() != null
|
|
|
+ && feeList.get(i).getCvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ feeList.get(i).setCvalue(feeList.get(i).getCvalue().divide(Cude));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ UserGroupTradeConfigVo detail = new UserGroupTradeConfigVo();
|
|
|
+
|
|
|
+ detail.setDruleList(ruleList);
|
|
|
+ detail.setDfeeList(feeList);
|
|
|
+ QueryWrapper<Usergrouptradeconfig> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("goodsid", param.getGoodsid());
|
|
|
+ queryWrapper.eq("marketid", param.getMarketid());
|
|
|
+ queryWrapper.eq("memberuserid", systemmanager.getAreauserid());
|
|
|
+ queryWrapper.eq("usergroupid", param.getUsergroupid());
|
|
|
+ queryWrapper.eq("ruletype", 1);
|
|
|
+ Usergrouptradeconfig config = iUsergrouptradeconfigMapper.selectOne(queryWrapper);
|
|
|
+ detail.setGoodsid(param.getGoodsid());
|
|
|
+ detail.setMemberuserid(systemmanager.getAreauserid());
|
|
|
+ detail.setMarketid(param.getMarketid());
|
|
|
+ detail.setUsergroupid(param.getUsergroupid());
|
|
|
+ if (config != null) {
|
|
|
+ detail.setParamid(config.getParamid());
|
|
|
+
|
|
|
+ // 查询商品保证金设置值
|
|
|
+ List<InvestorInitBZResult> results = iUseraccountMapper.getCustomerTypeByGoodsid(param.getGoodsid(), config.getParamid());
|
|
|
+ if (CollectionUtils.isNotEmpty(results)) {
|
|
|
+ detail.setMarginalgorithm(Integer.parseInt(results.get(0).getMarginalgorithm().toString()));
|
|
|
+ detail.setMarketmarginvalue(new BigDecimal(results.get(0).getMarketmarginvalue().toString()));
|
|
|
+ if (detail.getMarginalgorithm().equals(1)) {
|
|
|
+ detail.setMarketmarginvaluedisplay(detail.getMarketmarginvalue().multiply(new BigDecimal(100)).setScale(2).toString() + "%");
|
|
|
+ } else {
|
|
|
+ detail.setMarketmarginvaluedisplay(detail.getMarketmarginvalue().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<RulesConfigVo> getTradeRuleDescriptions(Long marketid, Long goodsid, Long areauserid) {
|
|
|
+ List<RulesConfigVo> list = iUseraccountMapper.getTradeRuleDescriptions(marketid, goodsid, areauserid);
|
|
|
+
|
|
|
+ if (list != null && !list.isEmpty()) {
|
|
|
+ Object o = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "007");
|
|
|
+ if (o != null && "1".equals(o.toString())) {
|
|
|
+ //成交量小数位
|
|
|
+ Goods goods = iGoodsMapper.selectOne(new QueryWrapper<Goods>().eq("goodsid", goodsid));
|
|
|
+ if (goods.getQtydecimalplace() != null && goods.getQtydecimalplace() != 0) {
|
|
|
+ BigDecimal qtyde = new BigDecimal(Math.pow(10, goods.getQtydecimalplace()));
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ //小数位放大
|
|
|
+ if (list.get(i).getRuleid() >= 101 && list.get(i).getRuleid() <= 104) {
|
|
|
+ //平台 为商品本身的 小数位可能是商品的也可能是商品组的
|
|
|
+ if (list.get(i).getParamvalue() != null &&
|
|
|
+ list.get(i).getParamvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ list.get(i).setParamvalue(list.get(i).getParamvalue().divide(new BigDecimal(Math.pow(10, list.get(i).getQtydecimalplace()))));
|
|
|
+ }
|
|
|
+ if (list.get(i).getGvalue() != null &&
|
|
|
+ list.get(i).getGvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ list.get(i).setGvalue(list.get(i).getGvalue().divide(qtyde));
|
|
|
+ }
|
|
|
+ if (list.get(i).getDvalue() != null &&
|
|
|
+ list.get(i).getDvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ list.get(i).setDvalue(list.get(i).getDvalue().divide(qtyde));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<FeesConfigVo> getTradeFeeDescriptions(Long marketid, Long goodsid, Long areauserid) {
|
|
|
+ List<FeesConfigVo> list = iUseraccountMapper.getTradeFeeDescriptions(marketid, goodsid, areauserid);
|
|
|
+ if (list != null && !list.isEmpty()) {
|
|
|
+ Object o = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "007");
|
|
|
+ if (o != null && "1".equals(o.toString())) {
|
|
|
+ //币种小数位
|
|
|
+ Goods goods = iGoodsMapper.selectOne(new QueryWrapper<Goods>().eq("goodsid", goodsid));
|
|
|
+ Enumdicitem item = iEnumdicitemMapper.selectOne(new QueryWrapper<Enumdicitem>()
|
|
|
+ .eq("enumdiccode", "currency")
|
|
|
+ .eq("enumitemname", goods.getCurrencyid()));
|
|
|
+ if (item != null && StringUtils.isNotBlank(item.getParam1()) && !"0".equals(item.getParam1())) {
|
|
|
+ BigDecimal Cude = new BigDecimal(Math.pow(10, Integer.valueOf(item.getParam1())));
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ //小数位放大
|
|
|
+ if (list.get(i).getFeealgorithm() == 2) {
|
|
|
+ if (list.get(i).getExchangevalue() != null
|
|
|
+ && list.get(i).getExchangevalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ list.get(i).setExchangevalue(list.get(i).getExchangevalue().divide(Cude));
|
|
|
+ }
|
|
|
+ if (list.get(i).getDvalue() != null
|
|
|
+ && list.get(i).getDvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ list.get(i).setDvalue(list.get(i).getDvalue().divide(Cude));
|
|
|
+ }
|
|
|
+ if (list.get(i).getGvalue() != null
|
|
|
+ && list.get(i).getGvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ list.get(i).setGvalue(list.get(i).getGvalue().divide(Cude));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (list.get(i).getMembermaxvalue() != null
|
|
|
+ && list.get(i).getMembermaxvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ list.get(i).setMembermaxvalue(list.get(i).getMembermaxvalue().divide(Cude));
|
|
|
+ }
|
|
|
+ if (list.get(i).getMemberminvalue() != null
|
|
|
+ && list.get(i).getMemberminvalue().compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ list.get(i).setMemberminvalue(list.get(i).getMemberminvalue().divide(Cude));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
private Integer getUserESignRecordCount(Long userid, Long areauserid) {
|