|
|
@@ -22,7 +22,12 @@ import com.muchinfo.mtp3pojos.entity.*;
|
|
|
import com.muchinfo.mtp3pojos.vo.ProtoErrorCodes;
|
|
|
import com.muchinfo.mtp3pojos.vo.common.OrganSelectParam;
|
|
|
import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
|
|
|
+import com.muchinfo.mtp3pojos.vo.investor.FeesConfigVo;
|
|
|
+import com.muchinfo.mtp3pojos.vo.investor.InvestorInitBZResult;
|
|
|
+import com.muchinfo.mtp3pojos.vo.investor.PersonalizationDelParam;
|
|
|
+import com.muchinfo.mtp3pojos.vo.investor.RulesConfigVo;
|
|
|
import com.muchinfo.mtp3pojos.vo.organ.*;
|
|
|
+import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
|
|
|
import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountMarketVo;
|
|
|
import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryParam;
|
|
|
import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryResult;
|
|
|
@@ -127,6 +132,10 @@ public class OrganServiceImpl implements IOrganService {
|
|
|
private IMembergoodslimitconfigMapper iMembergoodslimitconfigMapper;
|
|
|
@Resource
|
|
|
private IAccountriskconfigMapper iAccountriskconfigMapper;
|
|
|
+ @Resource
|
|
|
+ private IAccounttradeconfigMapper iAccounttradeconfigMapper;
|
|
|
+ @Resource
|
|
|
+ private IUsergroupdetailMapper iUsergroupdetailMapper;
|
|
|
|
|
|
@Override
|
|
|
public PageResult<UserAccountRspResult> queryByPage(UserAccountReqParam userInfoReqParam, HttpServletRequest request) {
|
|
|
@@ -254,7 +263,6 @@ public class OrganServiceImpl implements IOrganService {
|
|
|
public PageResult<TaAccountQueryResult> organtaaccount(TaAccountQueryParam param, HttpServletRequest request) {
|
|
|
IPage<TaAccountQueryResult> page = new Page<>(param.getPageNum(), param.getPageSize());
|
|
|
IPage<TaAccountQueryResult> userAccountVos = iTaaccountMapper.queryTaAccountPage(page, param);
|
|
|
- ;
|
|
|
//设置风险率
|
|
|
getRiskFromRedis(userAccountVos.getRecords());
|
|
|
PageResult<TaAccountQueryResult> pageResult = new PageResult<>();
|
|
|
@@ -604,8 +612,8 @@ public class OrganServiceImpl implements IOrganService {
|
|
|
}
|
|
|
|
|
|
if (role <= 5) {
|
|
|
- Integer divide = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, SysConstants.SYSPARAM_CODE_DIVIDE);
|
|
|
- result.setDividetype(divide);
|
|
|
+ String divide = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, SysConstants.SYSPARAM_CODE_DIVIDE);
|
|
|
+ result.setDividetype(Integer.valueOf(divide));
|
|
|
} else if (role == 17) {
|
|
|
//加载物流地址
|
|
|
Arearole a = iArearoleMapper.selectOne(new QueryWrapper<Arearole>().eq("userid", userid)
|
|
|
@@ -772,7 +780,7 @@ public class OrganServiceImpl implements IOrganService {
|
|
|
List<Integer> roletype = new ArrayList<>();
|
|
|
roletype.add(6);
|
|
|
roletype.add(9);
|
|
|
- iRoleuserMapper.delete(new QueryWrapper<Roleuser>().eq("userid", areaid).in("roletype", roletype));
|
|
|
+ iArearoleMapper.delete(new QueryWrapper<Arearole>().eq("userid", areaid).in("roletype", roletype));
|
|
|
iArearoledivideconfigMapper.delete(new QueryWrapper<Arearoledivideconfig>().eq("userid", areaid).in("roletype", roletype));
|
|
|
|
|
|
Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("areauserid", areaid).eq("isdefault", 1));
|
|
|
@@ -1127,6 +1135,601 @@ public class OrganServiceImpl implements IOrganService {
|
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public AjaxResult editorgan(OrganAddSonOrganParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+
|
|
|
+ Useraccount organ = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid",param.getUserid()));
|
|
|
+
|
|
|
+ //当为特许经销商时,因为新增特许经销商的时候,默认加了一个名称一样的报价商,现在修改特许经销商名称时,报价商名称也一起修改
|
|
|
+ if (param.getUsertype() == 2) {
|
|
|
+ Long num = iArearoleMapper.selectCount(new QueryWrapper<Arearole>()
|
|
|
+ .eq("userid", organ.getUserid())
|
|
|
+ .eq("roletype", 13));
|
|
|
+ if (num.intValue() > 0) {
|
|
|
+ Quoter qt = iQuoterMapper.selectOne(new QueryWrapper<Quoter>()
|
|
|
+ .eq("areauserid", organ.getUserid())
|
|
|
+ .eq("quotername", organ.getAccountname()));
|
|
|
+ if (null != qt && null != qt.getQuoterid()) {
|
|
|
+ //修改为修改后的机构名称
|
|
|
+ qt.setQuotername(param.getAccountname());
|
|
|
+ qt.setModifytime(new Date());
|
|
|
+ qt.setModifierid(systemmanager.getAutoid());
|
|
|
+ iQuoterMapper.updateById(qt);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ organ.setAccountname(param.getAccountname());
|
|
|
+ organ.setModifierid(systemmanager.getAutoid());
|
|
|
+ organ.setModifytime(new Date());
|
|
|
+ if (param.getRefereeuserid() != null) {
|
|
|
+ organ.setRefereeuserid(param.getRefereeuserid());
|
|
|
+ }
|
|
|
+ iUseraccountMapper.update(organ,new QueryWrapper<Useraccount>().eq("userid",organ.getUserid()));
|
|
|
+
|
|
|
+ Systemparam sysparm = iSystemparamMapper.selectOne(new QueryWrapper<Systemparam>().eq("paraCode", Constants.SYSPARAM_CARD_NO));
|
|
|
+
|
|
|
+ Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid",param.getUserid()));
|
|
|
+ if (!ui.getCardnum().equals(param.getCardnum())) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ String card = param.getCardnum();
|
|
|
+ if (card != null && !card.isEmpty()) {
|
|
|
+ card = EncryptionUtils.encryptByAES(param.getCardnum());
|
|
|
+ List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
|
|
|
+ .eq("cardnum", card)
|
|
|
+ .eq("userid", param.getUserid())
|
|
|
+ .eq("userstatus",1)
|
|
|
+ );
|
|
|
+ if (CollectionUtils.isNotEmpty(uiList)) {
|
|
|
+ if (sysparm == null || "1".equals(sysparm.getParamvalue())) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_011.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ui.getUserinfotype() == 2 && !ui.getCustomername().equals(param.getCustomername().trim())) {
|
|
|
+ //机构类型为企业需 名称唯一
|
|
|
+ Long c3 = iUserinfoMapper.selectCount(new QueryWrapper<Userinfo>()
|
|
|
+ .eq("customername", param.getCustomername().trim())
|
|
|
+ .eq("userinfotype", 2));
|
|
|
+ if (c3 > 0) {
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_017.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ui.setAddress(param.getAddress());
|
|
|
+ ui.setBiznature(param.getBiznature());
|
|
|
+ ui.setCardbackphotourl(param.getCardbackphotourl());
|
|
|
+ ui.setCardfrontphotourl(param.getCardfrontphotourl());
|
|
|
+ ui.setCardnum(param.getCardnum());
|
|
|
+ ui.setCardtypeid(param.getCardtypeid());
|
|
|
+ ui.setCityid(param.getCityid());
|
|
|
+ ui.setCompany(param.getCompany());
|
|
|
+ ui.setCustomername(param.getCustomername());
|
|
|
+ ui.setDistrictid(param.getDistrictid());
|
|
|
+ ui.setEmail(param.getEmail());
|
|
|
+ ui.setMobile(param.getMobile());
|
|
|
+ ui.setModifierid(systemmanager.getAutoid());
|
|
|
+ ui.setModifiertime(new Date());
|
|
|
+ ui.setContactname(param.getContactname());
|
|
|
+ ui.setPostalcode(param.getPostalcode());
|
|
|
+ ui.setProvinceid(param.getProvinceid());
|
|
|
+ ui.setQq(param.getQq());
|
|
|
+ ui.setRemark(param.getRemark());
|
|
|
+ ui.setSex(param.getSex());
|
|
|
+ ui.setTelphone(param.getTelphone());
|
|
|
+ ui.setLegalcardbackphotourl(param.getLegalcardbackphotourl());
|
|
|
+ ui.setLegalpersonname(param.getLegalpersonname());
|
|
|
+ ui.setLegalcardfrontphotourl(param.getLegalcardfrontphotourl());
|
|
|
+ ui.setWechat(param.getWechat());
|
|
|
+ ui.setAttachment1(param.getAttachment1());
|
|
|
+ ui.setAttachment2(param.getAttachment2());
|
|
|
+
|
|
|
+ ui = (Userinfo) SensitiveEncryptUtil.sensitiveEncrypt(ui, null);
|
|
|
+ iUserinfoMapper.update(ui,new QueryWrapper<Userinfo>().eq("userid",ui.getUserid()));
|
|
|
+
|
|
|
+ if (organ.getUsertype() != 4) {
|
|
|
+ Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("autoid",param.getAutoid()));
|
|
|
+ if (admin != null && !admin.getUsername().equals(param.getUsername())) {
|
|
|
+ admin.setUsername(param.getUsername());
|
|
|
+ iSystemmanagerMapper.updateById(admin);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult<AccountTradeConfigTreeVo> createTree(HttpServletRequest request) {
|
|
|
+ List<Accounttradeconfig> list = iAccounttradeconfigMapper.getListForTree(0L);
|
|
|
+
|
|
|
+ if(list == null || list.isEmpty()){
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"),list);
|
|
|
+ }
|
|
|
+
|
|
|
+ //先按类型
|
|
|
+ Map<Integer, List<Accounttradeconfig>> type = new HashMap<>();
|
|
|
+ for(Accounttradeconfig fig:list){
|
|
|
+ Integer key = fig.getTradetype();
|
|
|
+ if(type.containsKey(key)){
|
|
|
+ type.get(key).add(fig);
|
|
|
+ }else{
|
|
|
+ List<Accounttradeconfig> temp = new ArrayList<>();
|
|
|
+ temp.add(fig);
|
|
|
+ type.put(key, temp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //用户userid
|
|
|
+ Map<Integer, Map<Long, List<Accounttradeconfig>>> users = new HashMap<>();
|
|
|
+ for(Map.Entry<Integer, List<Accounttradeconfig>> entry:type.entrySet()){
|
|
|
+ Map<Long, List<Accounttradeconfig>> market = new HashMap<>();
|
|
|
+ List<Accounttradeconfig> temp = entry.getValue();
|
|
|
+ for(Accounttradeconfig fig:temp){
|
|
|
+ Long key = fig.getUserid();
|
|
|
+ if(market.containsKey(key)){
|
|
|
+ market.get(key).add(fig);
|
|
|
+ }else{
|
|
|
+ List<Accounttradeconfig> _temp = new ArrayList<>();
|
|
|
+ _temp.add(fig);
|
|
|
+ market.put(key, _temp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ users.put(entry.getKey(), market);
|
|
|
+ }
|
|
|
+ //资金账户
|
|
|
+ Map<Integer, Map<Long, Map<Long, List<Accounttradeconfig>>>> user = new HashMap<>();
|
|
|
+ for(Map.Entry<Integer, Map<Long, List<Accounttradeconfig>>> entry:users.entrySet()){
|
|
|
+ Map<Long, Map<Long, List<Accounttradeconfig>>> u = new HashMap<>();
|
|
|
+
|
|
|
+ Map<Long, List<Accounttradeconfig>> temp = entry.getValue();//userid
|
|
|
+ for(Map.Entry<Long, List<Accounttradeconfig>> entry_:temp.entrySet()){
|
|
|
+ Map<Long, List<Accounttradeconfig>> market = new HashMap<>();
|
|
|
+ List<Accounttradeconfig> ul = entry_.getValue();//用户下所有的资金
|
|
|
+ for(Accounttradeconfig fig:ul){
|
|
|
+ Long key = fig.getAccountid();
|
|
|
+ if(market.containsKey(key)){
|
|
|
+ market.get(key).add(fig);
|
|
|
+ }else{
|
|
|
+ List<Accounttradeconfig> _temp = new ArrayList<Accounttradeconfig>();
|
|
|
+ _temp.add(fig);
|
|
|
+ market.put(key, _temp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ u.put(entry_.getKey(), market);
|
|
|
+ }
|
|
|
+ user.put(entry.getKey(), u);
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<String> set = new HashSet<>();
|
|
|
+ List<AccountTradeConfigTreeVo> result = new ArrayList<>();
|
|
|
+
|
|
|
+ for(Map.Entry<Integer, Map<Long, Map<Long, List<Accounttradeconfig>>>> entry_:user.entrySet()){
|
|
|
+ for(Map.Entry<Long, Map<Long, List<Accounttradeconfig>>> entry:entry_.getValue().entrySet()){
|
|
|
+ Accounttradeconfig base = null;
|
|
|
+ for(Map.Entry<Long, List<Accounttradeconfig>> _entry:entry.getValue().entrySet()){
|
|
|
+ List<Accounttradeconfig> temp = _entry.getValue();
|
|
|
+ for(int i=0;i<temp.size();i++ ){
|
|
|
+ Accounttradeconfig fig = temp.get(i);
|
|
|
+ if(fig.getTradetype()==null){
|
|
|
+ fig.setTradetype(1);
|
|
|
+ }
|
|
|
+ if(i==0){
|
|
|
+ base = fig;
|
|
|
+ }
|
|
|
+ String setKey = fig.getTradetype()+""+fig.getUserid()+""+fig.getAccountid()+""+fig.getGoodsid();
|
|
|
+ if(!set.contains(setKey)){
|
|
|
+ set.add(setKey);
|
|
|
+ //商品级
|
|
|
+ AccountTradeConfigTreeVo vo2 = new AccountTradeConfigTreeVo();
|
|
|
+ vo2.setId(fig.getTradetype()+fig.getGoodsid().toString());
|
|
|
+ vo2.setPid(fig.getTradetype()+fig.getUserid()+""+fig.getAccountid());
|
|
|
+ vo2.setLevel(3);
|
|
|
+ vo2.setName(fig.getGoodsname());//商品名称
|
|
|
+ vo2.setUserid(fig.getUserid());
|
|
|
+ vo2.setAccountid(fig.getAccountid());
|
|
|
+ vo2.setMarketid(fig.getMarketid());
|
|
|
+ vo2.setGoodsid(fig.getGoodsid());
|
|
|
+ vo2.setTradetype(fig.getTradetype());
|
|
|
+ result.add(vo2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //资金账户级
|
|
|
+ AccountTradeConfigTreeVo vo1 = new AccountTradeConfigTreeVo();
|
|
|
+ vo1.setId(base.getTradetype()+base.getUserid()+""+base.getAccountid());
|
|
|
+ vo1.setPid(base.getTradetype()+"u"+base.getUserid().toString());
|
|
|
+ vo1.setLevel(2);
|
|
|
+ vo1.setName(base.getAccountid().toString());//市场名称
|
|
|
+ vo1.setUserid(base.getUserid());
|
|
|
+ vo1.setAccountid(base.getAccountid());
|
|
|
+ vo1.setTradetype(base.getTradetype());
|
|
|
+ result.add(vo1);
|
|
|
+ }
|
|
|
+ //用户级
|
|
|
+ AccountTradeConfigTreeVo vo = new AccountTradeConfigTreeVo();
|
|
|
+ vo.setId(base.getTradetype()+"u"+base.getUserid().toString());
|
|
|
+ if(base.getTradetype()==null || base.getTradetype()==0 || base.getTradetype()==1){
|
|
|
+ vo.setPid("-1");
|
|
|
+ }else{
|
|
|
+ vo.setPid("-2");
|
|
|
+ }
|
|
|
+ vo.setLevel(1);
|
|
|
+ vo.setName(StringUtils.isBlank(base.getAccountname())?"默认配置":base.getAccountname());//分组名称
|
|
|
+ vo.setUserid(base.getUserid());
|
|
|
+ vo.setTradetype(base.getTradetype());
|
|
|
+ result.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"),result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult tradeConfigView(PersonalizationDelParam param, HttpServletRequest request) {
|
|
|
+ //这个是投资者的userid ,获取投资者的分组ID
|
|
|
+ param.setMemberuserid(0L);
|
|
|
+ param.setRuletype(1);
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
+ Usergroupdetail ug = iUsergroupdetailMapper.selectOne(new QueryWrapper<Usergroupdetail>().eq("userid",param.getUserid()));
|
|
|
+ if(ug!=null){
|
|
|
+ param.setUsergroupid2(ug.getUsergroupid());
|
|
|
+ }
|
|
|
+
|
|
|
+ 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 = BigDecimal.valueOf(Math.pow(10, Integer.parseInt(item.getParam1())));
|
|
|
+ }
|
|
|
+ qtyde = BigDecimal.valueOf(Math.pow(10, goods.getQtydecimalplace()));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<RulesConfigVo> ruleList = iUseraccountMapper.getTradeRuleDescriptions(param);
|
|
|
+ List<FeesConfigVo> feeList = iUseraccountMapper.getTradeFeeDescriptions(param);
|
|
|
+
|
|
|
+ List<Accounttradeconfig> list = iAccounttradeconfigMapper.selectList(new QueryWrapper<Accounttradeconfig>()
|
|
|
+ .eq("accountid", param.getAccountid())
|
|
|
+ .eq("userid", param.getUserid())
|
|
|
+ .eq("tradetype", param.getTradetype()));
|
|
|
+
|
|
|
+ Accounttradeconfig detail = new Accounttradeconfig();
|
|
|
+ detail.setGoodsid(param.getGoodsid());
|
|
|
+ detail.setMemberuserid(param.getMemberuserid());
|
|
|
+ detail.setMarketid(param.getMarketid());
|
|
|
+ detail.setUserid(param.getUserid());
|
|
|
+ detail.setAccountid(param.getAccountid());
|
|
|
+ detail.setTradetype(param.getTradetype());
|
|
|
+ Map<String, Accounttradeconfig> map = new HashMap<>();
|
|
|
+ if(list!=null && !list.isEmpty()){
|
|
|
+ for(Accounttradeconfig config:list){
|
|
|
+ if(config.getRuletype() == 1){
|
|
|
+ detail.setParamid(config.getParamid());
|
|
|
+ }else if(config.getRuletype() == 2){
|
|
|
+ map.put("rule"+config.getParamid(), config);
|
|
|
+ }else{
|
|
|
+ map.put("fee"+config.getParamid(),config);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(ruleList !=null && !ruleList.isEmpty()){
|
|
|
+ for(int i=0;i<ruleList.size();i++){
|
|
|
+ Accounttradeconfig config = map.get("rule"+ruleList.get(i).getRuleid());
|
|
|
+ if(config!=null){
|
|
|
+ //小数位放大
|
|
|
+ if (qtyde!=null && ruleList.get(i).getRuleid() >= 101 && ruleList.get(i).getRuleid()<=104) {
|
|
|
+ if(config.getParamvalue()!=null &&
|
|
|
+ config.getParamvalue().compareTo(BigDecimal.ZERO)!=0){
|
|
|
+ ruleList.get(i).setCvalue(config.getParamvalue().divide(qtyde));
|
|
|
+ }
|
|
|
+ if(ruleList.get(i).getParamvalue()!=null &&
|
|
|
+ ruleList.get(i).getParamvalue().compareTo(BigDecimal.ZERO)!=0){
|
|
|
+ ruleList.get(i).setParamvalue(ruleList.get(i).getParamvalue().divide(BigDecimal.valueOf(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));
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ ruleList.get(i).setCvalue(config.getParamvalue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(feeList !=null && !feeList.isEmpty()){
|
|
|
+ for(int i=0;i<feeList.size();i++){
|
|
|
+ Accounttradeconfig config = map.get("fee"+feeList.get(i).getTradefeeid());
|
|
|
+ if(config!=null){
|
|
|
+ feeList.get(i).setCrithm(config.getFeealgorithm());
|
|
|
+ if(Cude!=null && config.getFeealgorithm()==2){
|
|
|
+ if(config.getParamvalue()!=null
|
|
|
+ && config.getParamvalue().compareTo(BigDecimal.ZERO)!=0){
|
|
|
+ feeList.get(i).setCvalue(config.getParamvalue().divide(Cude));
|
|
|
+ }
|
|
|
+ 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).getMembermaxvalue()!=null
|
|
|
+ && feeList.get(i).getMembermaxvalue().compareTo(BigDecimal.ZERO)!=0){
|
|
|
+ feeList.get(i).setMembermaxvalue(feeList.get(i).getMembermaxvalue().divide(Cude));
|
|
|
+ }
|
|
|
+ if(feeList.get(i).getMemberminvalue()!=null
|
|
|
+ && feeList.get(i).getMemberminvalue().compareTo(BigDecimal.ZERO)!=0){
|
|
|
+ feeList.get(i).setMemberminvalue(feeList.get(i).getMemberminvalue().divide(Cude));
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ feeList.get(i).setCvalue(config.getParamvalue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ detail.setDruleList(ruleList);
|
|
|
+ detail.setDfeeList(feeList);
|
|
|
+
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"),result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public AjaxResult tradeConfigEdit(SupportTradeConfigAddParam param, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+
|
|
|
+ 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 = BigDecimal.valueOf(Math.pow(10, Integer.parseInt(item.getParam1())));
|
|
|
+ }
|
|
|
+ qtyde = BigDecimal.valueOf(Math.pow(10, goods.getQtydecimalplace()));
|
|
|
+ }
|
|
|
+
|
|
|
+ iAccounttradeconfigMapper.delete(new QueryWrapper<Accounttradeconfig>()
|
|
|
+ .eq("goodsid", param.getGoodsid())
|
|
|
+ .eq("marketid", param.getMarketid())
|
|
|
+ .eq("accountid", param.getAccountid())
|
|
|
+ .eq("memberuserid", 0L)
|
|
|
+ .eq("userid", param.getUserid())
|
|
|
+ .eq("tradetype", param.getTradetype())
|
|
|
+ );
|
|
|
+
|
|
|
+ if(param.getParamid() != null){
|
|
|
+ Accounttradeconfig config = new Accounttradeconfig();
|
|
|
+ config.setUserid(param.getUserid());
|
|
|
+ config.setMemberuserid(0L);
|
|
|
+ config.setMarketid(param.getMarketid());
|
|
|
+ config.setGoodsid(param.getGoodsid());
|
|
|
+ config.setAccountid(param.getAccountid());
|
|
|
+ config.setRuletype(1);
|
|
|
+ config.setParamid(param.getParamid());
|
|
|
+ config.setCreatetime(new Date());
|
|
|
+ config.setCreatorid(systemmanager.getAutoid());
|
|
|
+ config.setFeealgorithm(param.getFeealgorithm());
|
|
|
+ config.setTradetype(param.getTradetype());
|
|
|
+ iAccounttradeconfigMapper.insert(config);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Accounttradeconfig> ruleList = param.getRuleList();
|
|
|
+ if(ruleList!=null && !ruleList.isEmpty()){
|
|
|
+ for(Accounttradeconfig 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.setUserid(param.getUserid());
|
|
|
+ fig.setMemberuserid(0L);
|
|
|
+ fig.setAccountid(param.getAccountid());
|
|
|
+ fig.setMarketid(param.getMarketid());
|
|
|
+ fig.setGoodsid(param.getGoodsid());
|
|
|
+ fig.setRuletype(2);
|
|
|
+ fig.setCreatetime(new Date());
|
|
|
+ fig.setCreatorid(systemmanager.getAutoid());
|
|
|
+ fig.setTradetype(param.getTradetype());
|
|
|
+ iAccounttradeconfigMapper.insert(fig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Accounttradeconfig> feeList = param.getFeeList();
|
|
|
+ if(feeList!=null && !feeList.isEmpty()){
|
|
|
+ for(Accounttradeconfig 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){
|
|
|
+ throw new GlobalException(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.setUserid(param.getUserid());
|
|
|
+ fig.setMemberuserid(0L);
|
|
|
+ fig.setMarketid(param.getMarketid());
|
|
|
+ fig.setGoodsid(param.getGoodsid());
|
|
|
+ fig.setAccountid(param.getAccountid());
|
|
|
+ fig.setRuletype(3);
|
|
|
+ fig.setCreatetime(new Date());
|
|
|
+ fig.setCreatorid(systemmanager.getAutoid());
|
|
|
+ fig.setTradetype(param.getTradetype());
|
|
|
+ iAccounttradeconfigMapper.insert(fig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(4, 2, param.getUserid(), param.getAccountid(), param.getGoodsid(),
|
|
|
+ null, param.getTradetype());
|
|
|
+
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult tradeConfigDelete(PersonalizationDelParam param, HttpServletRequest request) {
|
|
|
+
|
|
|
+ iAccounttradeconfigMapper.delete(new QueryWrapper<Accounttradeconfig>()
|
|
|
+ .eq("memberuserid", 0L)
|
|
|
+ .eq("userid", param.getUserid())
|
|
|
+ .eq("tradetype", param.getTradetype())
|
|
|
+ .eq(param.getGoodsid()!=null,"goodsid", param.getGoodsid())
|
|
|
+ .eq(param.getMarketid()!=null,"marketid", param.getMarketid())
|
|
|
+ .eq(param.getAccountid()!=null,"accountid", param.getAccountid())
|
|
|
+ );
|
|
|
+
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(4, 3, param.getUserid(), param.getAccountid(), param.getGoodsid(),
|
|
|
+ null, param.getTradetype());
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult<OrganInitAccountAddResult> loadSelectOption(PersonalizationDelParam param, HttpServletRequest request) {
|
|
|
+ OrganInitAccountAddResult result = new OrganInitAccountAddResult();
|
|
|
+ param.setMemberuserid(0L);
|
|
|
+ if (param.getGoodsid() != null) {
|
|
|
+ //客户类别
|
|
|
+ List<InvestorInitBZResult> bzResults = iUseraccountMapper.getCustomerTypeByGoodsid(param.getGoodsid(), null);
|
|
|
+ result.setResults(bzResults);
|
|
|
+ result.setFeesConfigVos(iUseraccountMapper.getTradeFeeDescriptions(param));
|
|
|
+ result.setRulesConfigVos(iUseraccountMapper.getTradeRuleDescriptions(param));
|
|
|
+ } else if (param.getMarketid() != null) {
|
|
|
+ List<Goods> goods = iGoodsMapper.getNoTradeConfigGoodsForAccount(param);
|
|
|
+ result.setGoods(goods);
|
|
|
+ } else if (param.getAccountid() != null) {
|
|
|
+ List<Market> markets = iMarketMapper.getNoTradeConfigMarketsForAccount(param);
|
|
|
+ result.setMarkets(markets);
|
|
|
+ } else if (param.getUserid() != null) {
|
|
|
+ List<Long> longs = iTaaccountMapper.getNoTradeConfigAccounts(param);
|
|
|
+ result.setAccountids(longs);
|
|
|
+ }
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"),result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public AjaxResult tradeConfigAdd(SupportTradeConfigAddParam vo, HttpServletRequest request) {
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
+
|
|
|
+ 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",vo.getGoodsid()));
|
|
|
+ Enumdicitem item = iEnumdicitemMapper.selectOne(new QueryWrapper<Enumdicitem>()
|
|
|
+ .eq("enumdiccode", "currency")
|
|
|
+ .eq("enumitemname", goods.getCurrencyid()));
|
|
|
+ if(item!=null && StringUtils.isNotBlank(item.getParam1())){
|
|
|
+ Cude = BigDecimal.valueOf(Math.pow(10, Integer.parseInt(item.getParam1())));
|
|
|
+ }
|
|
|
+ qtyde = BigDecimal.valueOf(Math.pow(10, goods.getQtydecimalplace()));
|
|
|
+ }
|
|
|
+
|
|
|
+ if(vo.getParamid() != null){
|
|
|
+ Accounttradeconfig config = new Accounttradeconfig();
|
|
|
+ config.setUserid(vo.getUserid());
|
|
|
+ config.setMemberuserid(0L);
|
|
|
+ config.setMarketid(vo.getMarketid());
|
|
|
+ config.setGoodsid(vo.getGoodsid());
|
|
|
+ config.setAccountid(vo.getAccountid());
|
|
|
+ config.setRuletype(1);
|
|
|
+ config.setParamid(vo.getParamid());
|
|
|
+ config.setCreatetime(new Date());
|
|
|
+ config.setCreatorid(systemmanager.getAutoid());
|
|
|
+ config.setFeealgorithm(vo.getFeealgorithm());
|
|
|
+ config.setTradetype(vo.getTradetype());
|
|
|
+ iAccounttradeconfigMapper.insert(config);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Accounttradeconfig> ruleList = vo.getRuleList();
|
|
|
+ if(ruleList!=null && !ruleList.isEmpty()){
|
|
|
+ for(Accounttradeconfig 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.setUserid(vo.getUserid());
|
|
|
+ fig.setMemberuserid(0L);
|
|
|
+ fig.setAccountid(vo.getAccountid());
|
|
|
+ fig.setMarketid(vo.getMarketid());
|
|
|
+ fig.setGoodsid(vo.getGoodsid());
|
|
|
+ fig.setRuletype(2);
|
|
|
+ fig.setCreatetime(new Date());
|
|
|
+ fig.setCreatorid(systemmanager.getAutoid());
|
|
|
+ fig.setTradetype(vo.getTradetype());
|
|
|
+ iAccounttradeconfigMapper.insert(fig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Accounttradeconfig> feeList = vo.getFeeList();
|
|
|
+ if(feeList!=null && !feeList.isEmpty()){
|
|
|
+ for(Accounttradeconfig 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){
|
|
|
+ throw new GlobalException(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.setUserid(vo.getUserid());
|
|
|
+ fig.setMemberuserid(0L);
|
|
|
+ fig.setMarketid(vo.getMarketid());
|
|
|
+ fig.setGoodsid(vo.getGoodsid());
|
|
|
+ fig.setAccountid(vo.getAccountid());
|
|
|
+ fig.setRuletype(3);
|
|
|
+ fig.setCreatetime(new Date());
|
|
|
+ fig.setCreatorid(systemmanager.getAutoid());
|
|
|
+ fig.setTradetype(vo.getTradetype());
|
|
|
+ iAccounttradeconfigMapper.insert(fig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ iSendMsgService.sendAccountConfigChangeNtf(4, 1, vo.getUserid(), vo.getAccountid(), vo.getGoodsid(),
|
|
|
+ null, vo.getTradetype());
|
|
|
+
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
+ }
|
|
|
+
|
|
|
private void editARoleModifyMember(OrganRoleModifyParam vo, Systemmanager opeartion) {
|
|
|
Date date = new Date();
|
|
|
|