Explorar el Código

新增机构资料管理相关接口

xie.kaifeng hace 11 meses
padre
commit
32bf0bd254
Se han modificado 100 ficheros con 3271 adiciones y 277 borrados
  1. 42 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/InvestorController.java
  2. 201 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/OrganController.java
  3. 0 37
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/OrganDetailController.java
  4. 31 5
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IOrganService.java
  5. 2 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IUseraccountService.java
  6. 1896 15
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/OrganServiceImpl.java
  7. 39 39
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/OrganSonServiceService.java
  8. 3 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/ProfitSharServiceImpl.java
  9. 0 4
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/SystemRoleServiceImpl.java
  10. 1 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/SystemmanagerServiceImpl.java
  11. 127 139
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/TaaccountServiceImpl.java
  12. 1 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/TradingAccountServiceImpl.java
  13. 8 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/UseraccountServiceImpl.java
  14. 3 7
      mtp3-century/src/main/resources/mapper/AccounttradeconfigMapper.xml
  15. 16 0
      mtp3-century/src/main/resources/mapper/ArearoleMapper.xml
  16. 17 1
      mtp3-century/src/main/resources/mapper/ArearolemarketMapper.xml
  17. 20 0
      mtp3-century/src/main/resources/mapper/BankAccountsignMapper.xml
  18. 9 0
      mtp3-century/src/main/resources/mapper/GoodsMapper.xml
  19. 29 2
      mtp3-century/src/main/resources/mapper/MarketMapper.xml
  20. 35 0
      mtp3-century/src/main/resources/mapper/SystemmanagerMapper.xml
  21. 3 1
      mtp3-century/src/main/resources/mapper/SystemmanagerroleMapper.xml
  22. 54 0
      mtp3-century/src/main/resources/mapper/TaaccountMapper.xml
  23. 22 9
      mtp3-century/src/main/resources/mapper/UseraccountMapper.xml
  24. 10 0
      mtp3-century/src/main/resources/message_en.properties
  25. 11 0
      mtp3-century/src/main/resources/message_th.properties
  26. 11 0
      mtp3-century/src/main/resources/message_zh-CN.properties
  27. 11 0
      mtp3-century/src/main/resources/message_zh-HK.properties
  28. 11 0
      mtp3-century/src/main/resources/message_zh-TW.properties
  29. 10 0
      mtp3-common/src/main/java/com/muchinfo/mtp3common/enumtype/MessageType.java
  30. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IAccountriskconfigMapper.java
  31. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IAccounttradeconfigMapper.java
  32. 9 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IArearoleMapper.java
  33. 18 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IArearoledivideconfigMapper.java
  34. 5 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IArearolemarketMapper.java
  35. 18 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IArearolemarketmakerMapper.java
  36. 5 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankAccountsignMapper.java
  37. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ICptradePositionapplyMapper.java
  38. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ICptradePositioncancelMapper.java
  39. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ICptradePresalegoodsexMapper.java
  40. 18 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ICustomertypeareadetailMapper.java
  41. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IDeliverygoodsMapper.java
  42. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IDeliveryrelationMapper.java
  43. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IDgfactoryitemMapper.java
  44. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IDgfactoryitemtypeMapper.java
  45. 6 2
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IGoodsMapper.java
  46. 18 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHedgeaccountMapper.java
  47. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHisPerformancebreachMapper.java
  48. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHisTradeExercisedetailMapper.java
  49. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHisWrtradeOrderdetailMapper.java
  50. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHisWrtradeTradedetailMapper.java
  51. 11 4
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMarketMapper.java
  52. 18 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMmrelation2Mapper.java
  53. 18 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMsExtendroleMapper.java
  54. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancebreachMapper.java
  55. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancebreachapplyMapper.java
  56. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformanceplanMapper.java
  57. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformanceplantemplateMapper.java
  58. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancestepMapper.java
  59. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancesteptemplateMapper.java
  60. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancesteptypeMapper.java
  61. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IQuoterMapper.java
  62. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReckonDayaccountppMapper.java
  63. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReckonDaydividecountMapper.java
  64. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReckonDaydividecountdetailMapper.java
  65. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReckonDaytaaccountMapper.java
  66. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReportPlateformppMapper.java
  67. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReportTaaccountMapper.java
  68. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IRiskratiotypeMapper.java
  69. 18 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IScoretypeMapper.java
  70. 12 3
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ISystemmanagerMapper.java
  71. 12 4
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITaaccountMapper.java
  72. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IThjSpotgoodsdepositMapper.java
  73. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITradeExercisedetailMapper.java
  74. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITradeHolderdetailexMapper.java
  75. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITradepositionMapper.java
  76. 4 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUseraccountMapper.java
  77. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUseresignrecordMapper.java
  78. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUsergroupMapper.java
  79. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUsergroupdetailMapper.java
  80. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUsergrouptradeconfigMapper.java
  81. 18 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUsermarkettradeconfigMapper.java
  82. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWarehouseinfoMapper.java
  83. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrcategoryMapper.java
  84. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrfactortypeMapper.java
  85. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrfactortypeitemMapper.java
  86. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrholdlbMapper.java
  87. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutinapplyMapper.java
  88. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutindetailMapper.java
  89. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutinexpressMapper.java
  90. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutinfactorydetailMapper.java
  91. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrstandardMapper.java
  92. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrstandardfactoryitemMapper.java
  93. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrtradeTradedetailMapper.java
  94. 84 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Arearoledivideconfig.java
  95. 60 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Arearolemarketmaker.java
  96. 1 1
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankSystemconfig.java
  97. 51 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Customertypeareadetail.java
  98. 80 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Hedgeaccount.java
  99. 8 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Market.java
  100. 60 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Mmrelation2.java

+ 42 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/InvestorController.java

@@ -93,6 +93,7 @@ public class InvestorController {
 
     @RequestMapping(method = RequestMethod.GET, value = "/investorProcess")
     @ApiOperation("交易商管理-->开户管理-->交易商初审/复审")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult investorProcess(InvestorProcessParam param, HttpServletRequest request) {
         try {
             return iWskhUserinfoService.investorProcess(param, request);
@@ -137,36 +138,42 @@ public class InvestorController {
 
     @ApiOperation("交易商管理-->交易商管理-->查询个性化设置")
     @RequestMapping(method = RequestMethod.GET, value = "/accountQuery")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult<InvestorPersonalizationResult> accountQuery(Long goodsid, Long accountid, HttpServletRequest request) {
         return iUseraccountService.accountQuery(goodsid, accountid, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->注销")
     @RequestMapping(method = RequestMethod.GET, value = "/logOff")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult logOff(Long areaid, HttpServletRequest request) {
         return iTaaccountService.logOff(areaid, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->撤回变更")
     @RequestMapping(method = RequestMethod.GET, value = "/rebackChange")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult rebackChange(Long areaid, HttpServletRequest request) {
         return iTaaccountService.rebackChange(areaid, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->恢复")
     @RequestMapping(method = RequestMethod.GET, value = "/recover")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult recover(Long areaid, HttpServletRequest request) {
         return iTaaccountService.recover(areaid, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->资金账户、资金账户详情(userid不传)")
     @RequestMapping(method = RequestMethod.GET, value = "/showAccount")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
     public PageResult<Taaccount> showAccount(Long userid, String accountid, Integer pageNum, Integer pageSize, HttpServletRequest request) {
         return iTaaccountService.showAccount(userid, accountid, pageNum, pageSize, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->资金账户-->修改")
     @RequestMapping(method = RequestMethod.POST, value = "/edit")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult edit(@RequestBody String param, HttpServletRequest request) {
         try {
             InvestorTaAccountUpdateParam updateParam = JsonUtils.toBean(CenturyDecryptUtil.decryptForJson(param, request), InvestorTaAccountUpdateParam.class);
@@ -178,48 +185,56 @@ public class InvestorController {
     }
 
     @ApiOperation("交易商管理-->交易商管理-->登录账户列表查询")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/queryInvestor")
     public PageResult<InvestorLoginQueryResult> queryInvestor(InvestorLoginQueryParam param, HttpServletRequest request) {
         return iDealLoginService.queryInvestor(param, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->登录账户列表查询-->查看登录流水")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/queryLoginLog")
     public PageResult<Userloginflow> queryLoginLog(Long loginid, Integer pageNum, Integer pageSize, HttpServletRequest request) {
         return iDealLoginService.queryLoginLog(loginid, pageNum, pageSize, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->登录账户列表查询-->重置密码")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/resetPwd")
     public AjaxResult resetPwd(Long loginid, HttpServletRequest request) {
         return iDealLoginService.resetPwd(loginid, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->登录账户列表查询-->账号锁定、解锁")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/lockAccount")
     public AjaxResult lockAccount(Long loginid, Integer status, HttpServletRequest request) {
         return iDealLoginService.lockAccount(loginid, status, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->登录账户列表查询-->注销停用")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/deleteAccount")
     public AjaxResult deleteAccount(Long loginid, HttpServletRequest request) {
         return iDealLoginService.deleteAccount(loginid, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->登录账户列表查询-->恢复")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/restoreAccount")
     public AjaxResult restoreAccount(Long loginid, HttpServletRequest request) {
         return iDealLoginService.restoreAccount(loginid, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->登录账户列表查询-->查看手机号")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/queryUserAuthInfo")
     public AjaxResult<Userauthinfo> queryUserAuthInfo(Long loginid, HttpServletRequest request) {
         return iDealLoginService.queryUserAuthInfo(loginid, request);
     }
 
     @ApiOperation("交易商管理-->交易商管理-->交易商管理导出")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/export")
     public AjaxResult export(HttpServletRequest request) {
         return iUseraccountService.export(request);
@@ -234,18 +249,20 @@ public class InvestorController {
 
     @ApiOperation("交易商管理-->交易商变更审核-->审核")
     @RequestMapping(method = RequestMethod.GET, value = "/modifyAudit")
-    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult modifyAudit(InvestorModifyAuditParam param, HttpServletRequest request) {
         return iUseraccountService.modifyAudit(param, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商分组管理-->获取列表")
     @RequestMapping(method = RequestMethod.GET, value = "/queryPersonalized")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
     public PageResult<InvestorPersonalizedResult> queryPersonalized(String groupname, Integer pageNum, Integer pageSize, HttpServletRequest request) {
         return iUseraccountService.queryPersonalized(groupname, pageNum, pageSize, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商分组管理-->获取所选客户信息对应风险率")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/getRiskRatioTypeForMarketer")
     public AjaxResult<Riskratiotype> getRiskRatioTypeForMarketer(Integer customertype, HttpServletRequest request) {
         return iUseraccountService.getRiskRatioTypeForMarketer(customertype, request);
@@ -253,6 +270,7 @@ public class InvestorController {
 
     @ApiOperation("交易商管理-->个性化管理-->交易商分组管理-->新增/修改")
     @RequestMapping(method = RequestMethod.POST, value = "/addPersonalized")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult addPersonalized(@RequestBody String param, HttpServletRequest request) {
         try {
             InvestorPersonalizedAddParam updateParam = JsonUtils.toBean(CenturyDecryptUtil.decryptForJson(param, request), InvestorPersonalizedAddParam.class);
@@ -264,6 +282,7 @@ public class InvestorController {
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商分组管理-->分组交易商获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/queryPersonalizedDetail")
     public PageResult<InvestorPerDetailQueryResult> queryPersonalizedDetail(InvestorPerDetailQueryParam param, HttpServletRequest request) {
         return iUseraccountService.queryPersonalizedDetail(param, request);
@@ -271,11 +290,13 @@ public class InvestorController {
 
     @ApiOperation("交易商管理-->个性化管理-->交易商分组管理-->分组交易商获取列表-->初始化交易商")
     @RequestMapping(method = RequestMethod.GET, value = "/queryInvestorForPer")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult<Useraccount> queryInvestorForPer(Long usergroupid, HttpServletRequest request) {
         return iUseraccountService.queryInvestorForPer(usergroupid, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商分组管理-->分组交易商获取列表-->新增")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.POST, value = "/addInvestorForPer")
     public AjaxResult addInvestorForPer(@RequestBody String param, HttpServletRequest request) {
         try {
@@ -288,30 +309,35 @@ public class InvestorController {
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商分组管理-->分组交易商获取列表-->删除")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/delInvestorForPer")
     public AjaxResult delInvestorForPer(Long userid, HttpServletRequest request) {
         return iUseraccountService.delInvestorForPer(userid, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商分组管理-->删除")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/delInvest")
     public AjaxResult delInvest(Long autoid, HttpServletRequest request) {
         return iUseraccountService.delInvest(autoid, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->风控个性化-->获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/queryAccountRiskConfig")
     public PageResult<AccountRiskConfigResult> queryAccountRiskConfig(AccountRiskConfigParam param, HttpServletRequest request) {
         return iUseraccountService.queryAccountRiskConfig(param, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->风控个性化-->新增获取交易商资金账户信息")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/getTaaccountList")
     public AjaxResult getTaaccountList(Long userid, HttpServletRequest request) {
         return iUseraccountService.getTaaccountList(userid, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->风控个性化-->新增/修改")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.POST, value = "/addAccountRiskConfig")
     public AjaxResult addAccountRiskConfig(@RequestBody String param, HttpServletRequest request) {
         try {
@@ -324,30 +350,42 @@ public class InvestorController {
     }
 
     @ApiOperation("交易商管理-->个性化管理-->风控个性化-->详情")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/view")
     public AjaxResult<Accountriskconfig> view(Long accountid, HttpServletRequest request) {
         return iUseraccountService.view(accountid, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->风控个性化-->删除")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/deleteConfig")
     public AjaxResult deleteConfig(Long accountid, HttpServletRequest request) {
         return iUseraccountService.deleteConfig(accountid, request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商个性化-->获取树结构")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/getTree")
     public AjaxResult<UserGroupTreeResult> getTree(HttpServletRequest request) {
         return iUseraccountService.getTree(request);
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商个性化-->新增-->初始化交易商个性化信息")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/initInvestorPerson")
     public AjaxResult<InvestorInitPerAddResult> initGoodsAndBZ(Long usergroupid, Long marketid, Long goodsid, HttpServletRequest request) {
         return iUseraccountService.initGoodsAndBZ(usergroupid, marketid, goodsid, request);
     }
 
+    @ApiOperation("交易商管理-->个性化管理-->交易商个性化-->修改-->初始化保证金类别")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/initBZList")
+    public AjaxResult<InvestorInitBZResult> initBZList(Long goodsid, HttpServletRequest request) {
+        return iUseraccountService.initBZList(goodsid, request);
+    }
+
     @ApiOperation("交易商管理-->个性化管理-->交易商个性化-->新增/修改")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.POST, value = "/traderPersonAdd")
     public AjaxResult traderPersonAdd(@RequestBody String param, HttpServletRequest request) {
         try {
@@ -360,6 +398,7 @@ public class InvestorController {
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商个性化-->删除")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.POST, value = "/deleteTraderConfig")
     public AjaxResult deleteTraderConfig(@RequestBody String param, HttpServletRequest request) {
         try {
@@ -372,6 +411,7 @@ public class InvestorController {
     }
 
     @ApiOperation("交易商管理-->个性化管理-->交易商个性化-->详情")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/tradeConfigView")
     public AjaxResult<UserGroupTradeConfigVo> tradeConfigView(InvestorPersonViewParam param, HttpServletRequest request) {
         return iUseraccountService.tradeConfigView(param, request);
@@ -379,6 +419,7 @@ public class InvestorController {
 
 
     @ApiOperation("交易商管理-->个性化管理-->资金账户个性化-->获取树结构")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/getAccTradeTree")
     public AjaxResult<AccountTradeConfigTreeVo> getAccTradeTree(HttpServletRequest request) {
         return iUseraccountService.getAccTradeTree(request);

+ 201 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/OrganController.java

@@ -0,0 +1,201 @@
+package com.muchinfo.mtp3century.controller;
+
+import com.muchinfo.mtp3century.service.IOrganService;
+import com.muchinfo.mtp3century.service.ISystemRoleService;
+import com.muchinfo.mtp3century.service.ISystemmanagerService;
+import com.muchinfo.mtp3century.service.ITaaccountService;
+import com.muchinfo.mtp3common.vo.AjaxResult;
+import com.muchinfo.mtp3common.vo.PageResult;
+import com.muchinfo.mtp3pojos.entity.Systemmanager;
+import com.muchinfo.mtp3pojos.vo.SystemRoleVo;
+import com.muchinfo.mtp3pojos.vo.investor.InvestorTaAccountUpdateParam;
+import com.muchinfo.mtp3pojos.vo.organ.*;
+import com.muchinfo.mtp3pojos.vo.systemuser.SystemUserVo;
+import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryParam;
+import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryResult;
+import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryResultDetail;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/organDetail")
+@Api(value = "机构管理API", description = "机构管理")
+public class OrganController {
+    @Resource
+    private IOrganService iOrganService;
+
+    @Resource
+    private ITaaccountService iTaaccountService;
+    @Resource
+    private ISystemmanagerService iSystemmanagerService;
+    @Resource
+    private ISystemRoleService iSystemRoleService;
+
+    @ApiOperation("会员机构管理-->机构管理-->系统角色管理-->获取角色列表")
+    @RequestMapping(method = RequestMethod.GET, value = "/querysystemrole")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    private PageResult<SystemRoleVo> querysystemrole(Integer type, Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        return iSystemRoleService.query(type, pageSize, pageNum, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->系统角色管理-->详情")
+    @RequestMapping(method = RequestMethod.GET, value = "/querysystemroleDetail")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    private AjaxResult<SystemRoleVo> querysystemroleDetail(Integer autoId, HttpServletRequest request) {
+        return iSystemRoleService.queryDetail(autoId, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->系统角色管理-->获取当前角色关联关系")
+    @ResponseBody
+    @RequestMapping(method = RequestMethod.GET, value = "/queryRoleUser")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult<Systemmanager> queryRoleUser(Integer autoId, HttpServletRequest request) {
+        return iSystemmanagerService.queryRoleUser(autoId, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->获取机构资料列表")
+    @RequestMapping(method = RequestMethod.GET, value = "/query")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    private PageResult<UserAccountRspResult> query(UserAccountReqParam userInfoReqParam, HttpServletRequest request) {
+        return iOrganService.queryByPage(userInfoReqParam, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->获取机构资料详情信息")
+    @RequestMapping(method = RequestMethod.GET, value = "/queryDetail")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult<UserAccountDetailResult> queryDetail(Long areaId, HttpServletRequest request) {
+        return iOrganService.queryDetail(areaId, 0, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->资金账户-->获取列表")
+    @RequestMapping(method = RequestMethod.GET, value = "/organTaaccount")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    private PageResult<TaAccountQueryResult> organtaaccount(TaAccountQueryParam param, HttpServletRequest request) {
+        return iOrganService.organtaaccount(param, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->资金账户-->详情")
+    @RequestMapping(method = RequestMethod.GET, value = "/organTaaccountDetail")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult<TaAccountQueryResultDetail> organTaaccountDetail(Long accountId, HttpServletRequest request) {
+        return iTaaccountService.queryDetail(request, accountId);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->资金账户-->签解约流水")
+    @RequestMapping(method = RequestMethod.GET, value = "/querySignlog")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    private PageResult<UserAccountSignlogResult> querySignlog(Long accountId, Integer querytype, Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        return iOrganService.querySignlog(accountId, querytype, pageNum, pageSize, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->资金账户-->修改")
+    @RequestMapping(method = RequestMethod.POST, value = "/taaccountedit")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult taaccountedit(@RequestBody InvestorTaAccountUpdateParam param, HttpServletRequest request) {
+        return iTaaccountService.edit(param, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->资金账户-->重置密码")
+    @RequestMapping(method = RequestMethod.GET, value = "/resetPwd")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult resetPwd(Long accountid, HttpServletRequest request) {
+        return iOrganService.resetPwd(accountid, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->登陆账号-->获取列表")
+    @RequestMapping(method = RequestMethod.GET, value = "/queryorgan2User")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    private PageResult<UserAccountOrgan2UserResult> queryorgan2User(Long userid, Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        return iOrganService.queryorgan2User(userid, pageNum, pageSize, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->登陆账号-->重置登入密码")
+    @RequestMapping(method = RequestMethod.GET, value = "/updateStatus")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult updateStatus(SystemUserVo vo, HttpServletRequest request) {
+        return iSystemmanagerService.dealUserStatus(vo, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->登入账号-->全部启用/全部停用")
+    @RequestMapping(method = RequestMethod.GET, value = "/updateorgan2User")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult updateorgan2User(Long userid, Integer status, HttpServletRequest request) {
+        return iOrganService.updateorgan2User(userid, status, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->登入账号-->启用/停用")
+    @RequestMapping(method = RequestMethod.GET, value = "/updatestatusbyautoid")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult updatestatusbyautoid(Long autoid, Integer status, HttpServletRequest request) {
+        return iOrganService.updatestatusbyautoid(autoid, status, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->自营会员终端登录账号-->获取列表")
+    @RequestMapping(method = RequestMethod.GET, value = "/queryselfsupport")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    private PageResult<UserAccountSelfsupportResult> queryselfsupport(UserAccountSelfsupportParam param, HttpServletRequest request) {
+        return iOrganService.queryselfsupport(param, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->自营会员终端登录账号-->重置登录密码")
+    @RequestMapping(method = RequestMethod.GET, value = "/selfsupportresetPwd")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult selfsupportresetPwd(Long loginid, HttpServletRequest request) {
+        return iOrganService.selfsupportresetPwd(loginid, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->自营会员终端登录账号-->锁定")
+    @RequestMapping(method = RequestMethod.GET, value = "/lockAccount")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult lockAccount(Long loginid, Integer status, HttpServletRequest request) {
+        return iOrganService.lockAccount(loginid, status, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->会员机构查询-->获取列表(营销中心查看经纪会员)")
+    @RequestMapping(method = RequestMethod.GET, value = "/queryrole")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    private PageResult<UserAccountRspResult> queryrole(UserAccountRoleParam param, HttpServletRequest request) {
+        return iOrganService.queryrole(param, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构详情 ( " +
+            " rolename: 2--运营 operate\n" +
+            "         * 3--营销 marketing\n" +
+            "         * 4--仓库 warehouse\n" +
+            "         * 5--三方 tpart\n" +
+            "         * 6--自营 selfsupport\n" +
+            "         * 7--经纪 broker\n" +
+            "         * 8--做市 marketer\n" +
+            "         * 9--产业 industry)")
+    @RequestMapping(method = RequestMethod.GET, value = "/queryroleDetail")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult<UserAccountRoleDetailResult> queryroleDetail(String rolename, Long userid, HttpServletRequest request) {
+        return iOrganService.queryroleDetail(rolename, userid, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构角色删除")
+    @RequestMapping(method = RequestMethod.GET, value = "/del")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult del(Long areaid, Integer role, HttpServletRequest request) {
+        return iOrganService.del(areaid, role, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->机构角色新增初始化")
+    @RequestMapping(method = RequestMethod.GET, value = "/initAdd")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult<OrganInitAddResult> initAdd(String role, HttpServletRequest request) {
+        return iOrganService.initAdd(role, request);
+    }
+
+    @ApiOperation("会员机构管理-->机构管理-->新增、修改")
+    @RequestMapping(method = RequestMethod.POST, value = "/roleadd")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult roleadd(@RequestBody OrganRoleModifyParam vo, HttpServletRequest request) {
+        return iOrganService.roleadd(vo, request);
+    }
+}

+ 0 - 37
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/OrganDetailController.java

@@ -1,37 +0,0 @@
-package com.muchinfo.mtp3century.controller;
-
-import com.muchinfo.mtp3century.service.IOrganService;
-import com.muchinfo.mtp3common.vo.AjaxResult;
-import com.muchinfo.mtp3common.vo.PageResult;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-
-@RestController
-@RequestMapping("/organDetail")
-@Api(value = "机构管理API", description = "机构管理")
-public class OrganDetailController {
-    @Resource
-    private IOrganService iOrganService;
-
-    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->获取机构资料列表")
-    @RequestMapping(method = RequestMethod.GET, value = "/query")
-    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
-    private PageResult<UserAccountRspResult> query(UserAccountReqParam userInfoReqParam, HttpServletRequest request) {
-        return iOrganService.queryByPage(userInfoReqParam, request);
-    }
-
-    @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->获取机构资料详情信息")
-    @RequestMapping(method = RequestMethod.GET, value = "/queryDetail")
-    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
-    private AjaxResult<UserAccountRspResult> queryDetail(Long areaId, HttpServletRequest request) {
-        return iOrganService.queryDetail(areaId, 0, request);
-    }
-
-}

+ 31 - 5
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IOrganService.java

@@ -2,16 +2,42 @@ package com.muchinfo.mtp3century.service;
 
 import com.muchinfo.mtp3common.vo.AjaxResult;
 import com.muchinfo.mtp3common.vo.PageResult;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
-import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
-import com.muchinfo.mtp3pojos.vo.organ.son.OrganSonDetailResult;
+import com.muchinfo.mtp3pojos.vo.organ.*;
+import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryParam;
+import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryResult;
 
 import javax.servlet.http.HttpServletRequest;
 
 public interface IOrganService {
     PageResult<UserAccountRspResult> queryByPage(UserAccountReqParam userInfoReqParam, HttpServletRequest request);
 
-    AjaxResult<UserAccountRspResult> queryDetail(Long areaId,Integer role, HttpServletRequest request);
+    AjaxResult<UserAccountDetailResult> queryDetail(Long areaId,Integer role, HttpServletRequest request);
 
+    PageResult<TaAccountQueryResult> organtaaccount(TaAccountQueryParam param, HttpServletRequest request);
+
+    PageResult<UserAccountSignlogResult> querySignlog(Long accountId, Integer querytype, Integer pageNum, Integer pageSize, HttpServletRequest request);
+
+    AjaxResult resetPwd(Long accountid, HttpServletRequest request);
+
+    PageResult<UserAccountOrgan2UserResult> queryorgan2User(Long userid, Integer pageNum, Integer pageSize, HttpServletRequest request);
+
+    AjaxResult updateorgan2User(Long userid, Integer status, HttpServletRequest request);
+
+    AjaxResult updatestatusbyautoid(Long autoid, Integer status, HttpServletRequest request);
+
+    PageResult<UserAccountSelfsupportResult> queryselfsupport(UserAccountSelfsupportParam param, HttpServletRequest request);
+
+    AjaxResult selfsupportresetPwd(Long loginid, HttpServletRequest request);
+
+    AjaxResult lockAccount(Long loginid, Integer status, HttpServletRequest request);
+
+    PageResult<UserAccountRspResult> queryrole(UserAccountRoleParam param, HttpServletRequest request);
+
+    AjaxResult<UserAccountRoleDetailResult> queryroleDetail(String rolename, Long userid, HttpServletRequest request);
+
+    AjaxResult del(Long areaid, Integer role, HttpServletRequest request);
+
+    AjaxResult<OrganInitAddResult> initAdd(String role, HttpServletRequest request);
+
+    AjaxResult roleadd(OrganRoleModifyParam vo, HttpServletRequest request);
 }

+ 2 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IUseraccountService.java

@@ -73,4 +73,6 @@ public interface IUseraccountService extends IService<Useraccount> {
     AjaxResult<UserGroupTradeConfigVo> tradeConfigView(InvestorPersonViewParam param, HttpServletRequest request);
 
     AjaxResult<AccountTradeConfigTreeVo> getAccTradeTree(HttpServletRequest request);
+
+    AjaxResult<InvestorInitBZResult> initBZList(Long goodsid, HttpServletRequest request);
 }

+ 1896 - 15
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/OrganServiceImpl.java

@@ -1,14 +1,11 @@
 package com.muchinfo.mtp3century.service.impl;
 
-import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.muchinfo.mtp.proto.Common;
-import com.muchinfo.mtp.proto.NotifyMI1;
-import com.muchinfo.mtp.proto.PublicMI1;
+import com.muchinfo.mtp.proto.*;
 import com.muchinfo.mtp3century.exception.GlobalException;
 import com.muchinfo.mtp3century.service.ICommonService;
 import com.muchinfo.mtp3century.service.IOrganService;
@@ -18,19 +15,18 @@ import com.muchinfo.mtp3century.utils.SequenceIDGeneratorUtils;
 import com.muchinfo.mtp3common.enumtype.*;
 import com.muchinfo.mtp3common.utils.*;
 import com.muchinfo.mtp3common.vo.AjaxResult;
+import com.muchinfo.mtp3common.vo.Calculator;
 import com.muchinfo.mtp3common.vo.PageResult;
 import com.muchinfo.mtp3common.vo.ProtoHelper;
 import com.muchinfo.mtp3interface.mapper.*;
 import com.muchinfo.mtp3pojos.entity.*;
-import com.muchinfo.mtp3pojos.vo.investor.DetailAfterResult;
-import com.muchinfo.mtp3pojos.vo.investor.DetailBeforeResult;
-import com.muchinfo.mtp3pojos.vo.investor.UserAccountDetailVo;
-import com.muchinfo.mtp3pojos.vo.investor.UserinfoDetailVo;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountDetailResult;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
-import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
-import com.muchinfo.mtp3pojos.vo.organ.son.OrganSonDetailResult;
+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.organ.*;
+import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountMarketVo;
+import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryParam;
+import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.amqp.core.Message;
@@ -42,6 +38,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 
 @Service
@@ -58,6 +56,8 @@ public class OrganServiceImpl implements IOrganService {
     @Resource
     private IUserinfoMapper iUserinfoMapper;
     @Resource
+    private IBankAccountsignMapper iBankAccountsignMapper;
+    @Resource
     private IUserauthinfoMapper iUserauthinfoMapper;
     @Resource
     private ISendMsgService iSendMsgService;
@@ -99,13 +99,50 @@ public class OrganServiceImpl implements IOrganService {
     private IRoleuserMapper iRoleuserMapper;
     @Resource
     private IQuoterMapper iQuoterMapper;
+    @Resource
+    private ISystemmanagerlogMapper iSystemmanagerlogMapper;
+    @Resource
+    private IArearoledivideconfigMapper iArearoledivideconfigMapper;
+    @Resource
+    private IMarketMapper iMarketMapper;
+    @Resource
+    private IWskhUserinfoMapper iWskhUserinfoMapper;
+    @Resource
+    private ICustomertypeareadetailMapper iCustomertypeareadetailMapper;
+    @Resource
+    private IArearolemarketmakerMapper iArearolemarketmakerMapper;
+
+    @Resource
+    private IArearolemarketMapper iArearolemarketMapper;
+    @Resource
+    private IGoodsMapper iGoodsMapper;
+    @Resource
+    private IWarehouseinfoMapper iWarehouseinfoMapper;
+    @Resource
+    private IMmrelation2Mapper iMmrelation2Mapper;
+    @Resource
+    private IScoretypeMapper iScoretypeMapper;
+    @Resource
+    private IHedgeaccountMapper iHedgeaccountMapper;
+    @Resource
+    private ITaaccountmarketMapper iTaaccountmarketMapper;
+    @Resource
+    private IMsExtendroleMapper iMsExtendroleMapper;
+    @Resource
+    private ILogintaaccountMapper iLogintaaccountMapper;
+    @Resource
+    private IUsermarkettradeconfigMapper iUsermarkettradeconfigMapper;
+    @Resource
+    private ISystemparamMapper iSystemparamMapper;
+    @Resource
+    private TradingAccountServiceImpl tradingAccountService;
 
     @Override
     public PageResult<UserAccountRspResult> queryByPage(UserAccountReqParam userInfoReqParam, HttpServletRequest request) {
         IPage<UserAccountRspResult> userAccountVos;
         IPage<UserAccountRspResult> page = new Page<>(userInfoReqParam.getPageNum(), userInfoReqParam.getPageSize());
         Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        if (systemmanager.getReletype() == 2) {
+        if (systemmanager.getReletype().equals(2)) {
             userAccountVos = iUseraccountMapper.querySonOrganPage(page, userInfoReqParam);
         } else {
             userAccountVos = iUseraccountMapper.queryOrganPage(page, userInfoReqParam);
@@ -122,7 +159,7 @@ public class OrganServiceImpl implements IOrganService {
     }
 
     @Override
-    public AjaxResult<UserAccountRspResult> queryDetail(Long areaId,Integer role, HttpServletRequest request) {
+    public AjaxResult<UserAccountDetailResult> queryDetail(Long areaId, Integer role, HttpServletRequest request) {
         UserAccountDetailResult result = new UserAccountDetailResult();
         UserAccountRspResult userAccountVo = new UserAccountRspResult();
         Useraccount useraccount = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("USERID", areaId));
@@ -221,4 +258,1848 @@ public class OrganServiceImpl implements IOrganService {
 
         return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
     }
+
+    @Override
+    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<>();
+        pageResult.setCode(Constants.Success_Code_Design);
+        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
+        pageResult.setPages(userAccountVos.getPages());
+        pageResult.setCurrent(userAccountVos.getCurrent());
+        pageResult.setTotal(userAccountVos.getTotal());
+        pageResult.setPageSize(userAccountVos.getSize());
+        pageResult.setData(userAccountVos.getRecords());
+        return pageResult;
+    }
+
+    @Override
+    public PageResult<UserAccountSignlogResult> querySignlog(Long accountId, Integer querytype, Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        IPage<UserAccountSignlogResult> page = new Page<>(pageNum, pageSize);
+        IPage<UserAccountSignlogResult> resultIPage;
+        if (querytype == 0) {
+            resultIPage = iBankAccountsignMapper.query(page, accountId);
+        } else {
+            resultIPage = iBankAccountsignMapper.queryhis(page, accountId);
+        }
+        PageResult<UserAccountSignlogResult> pageResult = new PageResult<>();
+        pageResult.setCode(Constants.Success_Code_Design);
+        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
+        pageResult.setPages(resultIPage.getPages());
+        pageResult.setCurrent(resultIPage.getCurrent());
+        pageResult.setTotal(resultIPage.getTotal());
+        pageResult.setPageSize(resultIPage.getSize());
+        pageResult.setData(resultIPage.getRecords());
+        return pageResult;
+    }
+
+    @Override
+    public AjaxResult resetPwd(Long accountid, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (!iCommonService.checkTaAccountReport(systemmanager, accountid)) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
+        }
+        String lPwd = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "047");
+        Taaccount la = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("accountid", accountid));
+        if (la != null) {
+            la.setPassword(EncryptionUtils.encryptSHA(lPwd));
+            iTaaccountMapper.update(la, new QueryWrapper<Taaccount>().eq("accountid", accountid));
+            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "重置资金账户id=" + accountid + "的密码", systemmanager, null, null, null);
+            sendMsg(la, 2);
+
+            Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", la.getUserid()));
+            if (StringUtils.isNotBlank(ui.getMobile())) {
+                List<String> strs = new ArrayList<String>();
+                strs.add(ui.getCustomername());
+                strs.add(accountid.toString());
+                strs.add("资金");
+                strs.add(lPwd);
+                //尊敬的{accountname},根据您的申请,您的交易账号{accountid}{type}密码已经重置为:{password};请及时登录系统修改您的相关密码,并注意妥善保管。
+                iSendMsgService.sendSMSConnetion(23, EncryptionUtils.decryptForAES(ui.getMobile()), strs);
+            }
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public PageResult<UserAccountOrgan2UserResult> queryorgan2User(Long userid, Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        IPage<UserAccountOrgan2UserResult> page = new Page<>(pageNum, pageSize);
+        IPage<UserAccountOrgan2UserResult> userAccountVos = iSystemmanagerMapper.getAllUserByOrgan2(page, userid);
+        PageResult<UserAccountOrgan2UserResult> pageResult = new PageResult<>();
+        pageResult.setCode(Constants.Success_Code_Design);
+        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
+        pageResult.setPages(userAccountVos.getPages());
+        pageResult.setCurrent(userAccountVos.getCurrent());
+        pageResult.setTotal(userAccountVos.getTotal());
+        pageResult.setPageSize(userAccountVos.getSize());
+        pageResult.setData(userAccountVos.getRecords());
+        return pageResult;
+    }
+
+    @Override
+    public AjaxResult updateorgan2User(Long userid, Integer status, HttpServletRequest request) {
+        iSystemmanagerMapper.updateorgan2User(userid, status);
+
+        String lp = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, SysConstants.SYSPARAM_CODE_STOPORREST);
+        if ("1".equals(lp.trim())) {
+            if (status == 2) {
+                setReadOnly(userid);
+            } else if (status == 1) {
+                setRoleBack(userid);
+            }
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult updatestatusbyautoid(Long autoid, Integer status, HttpServletRequest request) {
+        Systemmanager user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("autoid", autoid));
+        if (user != null) {
+            user.setManagerstatus(status);
+            user.setModifytime(new Date());
+            iSystemmanagerMapper.updateById(user);
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public PageResult<UserAccountSelfsupportResult> queryselfsupport(UserAccountSelfsupportParam param, HttpServletRequest request) {
+        IPage<UserAccountSelfsupportResult> page = new Page<>(param.getPageNum(), param.getPageSize());
+        param.setLoginusertype(2);
+        IPage<UserAccountSelfsupportResult> userAccountVos = iSystemmanagerMapper.queryselfsupport(page, param);
+        PageResult<UserAccountSelfsupportResult> pageResult = new PageResult<>();
+        pageResult.setCode(Constants.Success_Code_Design);
+        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
+        pageResult.setPages(userAccountVos.getPages());
+        pageResult.setCurrent(userAccountVos.getCurrent());
+        pageResult.setTotal(userAccountVos.getTotal());
+        pageResult.setPageSize(userAccountVos.getSize());
+        pageResult.setData(userAccountVos.getRecords());
+        return pageResult;
+    }
+
+    @Override
+    public AjaxResult selfsupportresetPwd(Long loginid, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (!iCommonService.checkLoginAccountRole(systemmanager, loginid)) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
+        }
+        String systemParam = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "046");
+        Loginaccount la = iLoginaccountMapper.selectOne(new QueryWrapper<Loginaccount>().eq("loginid", loginid));
+        if (la != null) {
+            la.setHasupdatedpwd(0);
+            la.setPassword(EncryptionUtils.encryptSHA(la.getLoginid() + systemParam));
+            la.setModifierid(systemmanager.getAutoid());
+            la.setModifytime(new Date());
+
+            iLoginaccountMapper.update(la, new QueryWrapper<Loginaccount>().eq("loginid", la.getLoginid()));
+
+            Systemmanagerlog log = new Systemmanagerlog();
+            log.setUserid(systemmanager.getAutoid());
+            log.setReletype(systemmanager.getReletype());
+            log.setLogincode(systemmanager.getLogincode());
+            log.setUsername(systemmanager.getUsername());
+            log.setParentuserid(systemmanager.getAreauserid());
+            log.setOperatetime(new Date());
+            log.setContent("重置交易商登录账户(loginid=" + la.getLoginid() + ")密码成功");
+            log.setIp(systemmanager.getLoginip());
+            log.setOldvalue("");
+            log.setNewvalue("");
+            iSystemmanagerlogMapper.insert(log);
+
+            Set<Long> logins = new HashSet<>();
+            logins.add(la.getLoginid());
+            iSendMsgService.sendLoginMsg(logins, 2, 0);
+        }
+
+        //重置密码短信消息
+        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", la.getUserid()));
+        if (StringUtils.isNotBlank(ui.getMobile())) {
+            List<String> strs = new ArrayList<String>();
+            strs.add(ui.getCustomername());
+            strs.add(loginid.toString());
+            strs.add("登录");
+            strs.add(systemParam);
+            //尊敬的{accountname},根据您的申请,您的交易账号{accountid}{type}密码已经重置为:{password};请及时登录系统修改您的相关密码,并注意妥善保管。
+            iSendMsgService.sendSMSConnetion(23, EncryptionUtils.decryptForAES(ui.getMobile()), strs);
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult lockAccount(Long loginid, Integer status, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (!iCommonService.checkLoginAccountRole(systemmanager, loginid)) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
+        }
+        Loginaccount la = iLoginaccountMapper.selectOne(new QueryWrapper<Loginaccount>().eq("loginid", loginid));
+        if (la != null) {
+            // 发送消息 解锁 ,回应
+            Long uuid = SerialNumberUtils.getNewSerialNumber(SerialNumberUtils.prefix_account);
+
+            SystemMI1.LoginStatusOperReq.Builder builder = SystemMI1.LoginStatusOperReq.newBuilder();
+            Common.MessageHead.Builder hd = Common.MessageHead.newBuilder();
+            hd.setUUID(uuid.toString());
+            hd.setClientTime(System.currentTimeMillis());
+            hd.setResponseTopic(SysConstants.RabbitUserNtfKey);
+            hd.setFunCode(FunCodeConstants.FunCode_LoginStatusOperReq);
+            builder.setHeader(hd);
+            builder.setLoginID(loginid);
+            builder.setLoginStatus(status);
+            builder.setOperatorID(systemmanager.getAutoid().intValue());
+
+            log.debug("手工锁定:{}", builder.build().toString());
+            byte[] body = ProtoHelper.getNTAS(builder.build().toByteArray(),
+                    FunCodeConstants.FunCode_LoginStatusOperReq);
+
+            Calculator ca = new Calculator(uuid);
+            SerialNumberUtils.lockMap.put(uuid, ca);
+
+            rabbitTemplate.send(SysConstants.RabbitUserNtfKey, new Message(body, new MessageProperties()));
+
+            if (status == 1) {
+                systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, String.format("解锁登录账户(loginid=%s)成功", loginid), systemmanager, null, null, null);
+            } else if (status == 2) {
+                systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, String.format("锁定登录账户(loginid=%s)成功", loginid), systemmanager, null, null, null);
+            }
+
+            synchronized (ca) {
+                try {
+                    ca.wait(10000);
+                    Object rsp = ca.obj;
+                    if (rsp != null) {
+                        SystemMI1.LoginStatusOperRsp rsp_ = (SystemMI1.LoginStatusOperRsp) rsp;
+                        if (rsp_.getRetCode() == 0) {
+                            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+                        } else {
+                            return AjaxResult.error(Constants.Error_Code_Design, ProtoErrorCodes.resultMsg(rsp_.getRetCode()), "", null);
+                        }
+                    } else {
+                        return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM006.getCode(), request.getHeader("Accept-Language"));
+                    }
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+
+                } finally {
+                    SerialNumberUtils.lockMap.remove(uuid);
+                }
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public PageResult<UserAccountRspResult> queryrole(UserAccountRoleParam param, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (param.getRoleid() == 7) {
+            //如果有营销中心角色
+            if (systemmanager.getReletype() != 1 && ("," + param.getOrgztypes() + ",").contains(",3,")) {
+                param.setParentuserid(systemmanager.getAreauserid());
+            }
+        } else if (param.getRoleid() == 69) {
+            param.setRoleid(6);
+        }
+
+        IPage<UserAccountRspResult> userAccountVos;
+        IPage<UserAccountRspResult> page = new Page<>(param.getPageNum(), param.getPageSize());
+        if (systemmanager.getReletype().equals(4)) {
+            userAccountVos = iTaaccountMapper.queryWarehouseOrganPage(page, param);
+        } else {
+            userAccountVos = iTaaccountMapper.queryRoleOrganPage(page, param);
+        }
+        PageResult<UserAccountRspResult> pageResult = new PageResult<>();
+        pageResult.setCode(Constants.Success_Code_Design);
+        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
+        pageResult.setPages(userAccountVos.getPages());
+        pageResult.setCurrent(userAccountVos.getCurrent());
+        pageResult.setTotal(userAccountVos.getTotal());
+        pageResult.setPageSize(userAccountVos.getSize());
+        pageResult.setData(userAccountVos.getRecords());
+        return pageResult;
+    }
+
+    @Override
+    public AjaxResult<UserAccountRoleDetailResult> queryroleDetail(String rolename, Long userid, HttpServletRequest request) {
+        UserAccountRoleDetailResult result = new UserAccountRoleDetailResult();
+        Integer role = SysEnums.OrganRole.valueOf(rolename).getCode();
+        UserAccountRspResult userAccountVo = new UserAccountRspResult();
+        Useraccount useraccount = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("USERID", userid));
+        BeanUtils.copyProperties(useraccount, userAccountVo);
+        result.setOrgan(userAccountVo);
+        result.setRoleid(role);
+
+        //管理员账户信息
+        Systemmanager user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("areauserid", userid).eq("isdefault", 1));
+        result.setUsers(user);
+
+        //如果是经纪会员、会员子机构、经纪人,则查询网上开户地址
+        if (null == role || role == SysEnums.OrganRole.broker.getCode().intValue()
+                || userAccountVo.getUsertype() == 3 || userAccountVo.getUsertype() == 4) {
+            WskhOpenaccountconfig config = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>().eq("configtype", 59));
+            if (null != config && null != config.getConfigvalue()) {
+                result.setOpenUrl(config.getConfigvalue());
+            }
+        }
+        //移动端开户地址
+        WskhOpenaccountconfig config1 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>().eq("configtype", 60));
+        if (null != config1 && null != config1.getConfigvalue()) {
+            result.setMobileUrl(config1.getConfigvalue());
+        }
+
+        //三方开户地址
+        WskhOpenaccountconfig config3 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>().eq("configtype", 66));
+        if (null != config3 && null != config3.getConfigvalue()) {
+            result.setSanfangUrl(config3.getConfigvalue());
+        }
+
+        if (role >= SysEnums.OrganRole.operate.getCode() && role <= SysEnums.OrganRole.tpart.getCode()) {
+            List<Arearoledivideconfig> list = iArearoledivideconfigMapper.selectList(new QueryWrapper<Arearoledivideconfig>()
+                    .eq("userid", userid)
+                    .eq("roletype", role));
+            List<Arearoledivideconfig> olist = new ArrayList<>();
+            List<Arearoledivideconfig> plist = new ArrayList<>();
+            for (Arearoledivideconfig arearoledivideconfig : list) {
+                if (arearoledivideconfig.getGoodsid() != 0) {
+                    plist.add(arearoledivideconfig);
+                } else {
+                    olist.add(arearoledivideconfig);
+                }
+            }
+            result.setFee(olist);
+            result.setPfee(plist);
+        }
+
+        if (role == SysEnums.OrganRole.operate.getCode().intValue()) {
+            //运营机构 市场
+            List<Market> list = iMarketMapper.selectList(new QueryWrapper<Market>().eq("exchareaid", userid));
+            result.setMarkets(list);
+        } else if (role == SysEnums.OrganRole.warehouse.getCode().intValue()) {
+            //仓库机构 仓库
+            List<Warehouseinfo> list = iWarehouseinfoMapper.selectList(new QueryWrapper<Warehouseinfo>().eq("areauserid", userid));
+            result.setWarehouse(list);
+        } else if (role == SysEnums.OrganRole.selfsupport.getCode().intValue()
+                || role == SysEnums.OrganRole.broker.getCode().intValue()
+                || role == SysEnums.OrganRole.seller.getCode().intValue()) {
+            //会员  已选市场
+            List<Integer> roletype = new ArrayList<Integer>();
+
+            if (role == SysEnums.OrganRole.seller.getCode().intValue()) {
+                roletype.add(6);
+            } else {
+                roletype.add(role);
+            }
+            List<Market> markets = iMarketMapper.getMarketsNameByUseridAndrole(userid, roletype);
+            result.setMarkets(markets);
+        } else if (role == SysEnums.OrganRole.industry.getCode().intValue()) {
+            String sm = iCommonService.getSysparmById(SysConstants.SYSPAMA_CODE_NINESERVENNINE);
+            if ("1".equals(sm)) {
+                result.setIshsby(1);
+                //会员   已选市场
+                List<Integer> roletype = new ArrayList<Integer>();
+                roletype.add(6);
+                List<Market> markets = iMarketMapper.getMarketsNameByUseridAndrole(userid, roletype);
+                result.setMarkets(markets);
+            }
+        } else if (role == SysEnums.OrganRole.marketer.getCode().intValue()) {
+            //做市
+            Customertypeareadetail ca = iCustomertypeareadetailMapper.selectOne(new QueryWrapper<Customertypeareadetail>()
+                    .eq("userid", userid)
+                    .eq("arearoleid", role));
+            result.setCustomertype(ca);
+        }
+
+        if (role <= 5) {
+            Integer divide = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, SysConstants.SYSPARAM_CODE_DIVIDE);
+            result.setDividetype(divide);
+        } else if (role == 17) {
+            //加载物流地址
+            Arearole a = iArearoleMapper.selectOne(new QueryWrapper<Arearole>().eq("userid", userid)
+                    .eq("roletype", role));
+            result.setTransurl(a);
+        } else if (role == 18 || role == 19) {
+            List<Arearolemarketmaker> mm = iArearolemarketmakerMapper.selectList(new QueryWrapper<Arearolemarketmaker>()
+                    .eq("areauserid", userid)
+                    .eq("roletype", role));
+            List<Long> set = new ArrayList<>(mm.size());
+            mm.forEach(p -> {
+                set.add(p.getMmuserid());
+            });
+
+            List<Useraccount> lis = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>().eq("userid", set));
+            result.setOrgans(lis);
+
+        } else if (role == 8) {
+            List<Userreckonaccount> list = iUseraccountMapper.queryUra(userid);
+            result.setRoleNight(list);
+        }
+
+        if (role == 2) {
+            // 运营机构功能变更 2024-01-15
+            //查询本用户的交易市场
+            result.setOperatemarkets(iMarketMapper.queryAreaGoodsMarkets(userid));
+            //查询本用户的商品权限
+            result.setOperategoodsinfo(iGoodsMapper.queryAreaGoodsConfig(userid));
+        }
+
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult del(Long areaid, Integer role, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (role == SysEnums.OrganRole.marketing.getCode().intValue()) {
+            //营销中心
+            List<Useraccount> list = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
+                    .eq("parentuserid", areaid)
+                    .eq("accountstatus", 4)
+                    .eq("usertype", 2));
+            if (CollectionUtils.isNotEmpty(list)) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_026.getCode(), request.getHeader("Accept-Language"));
+            }
+        } else if (role == SysEnums.OrganRole.warehouse.getCode().intValue()) {
+            //仓库
+            List<Warehouseinfo> list = iWarehouseinfoMapper.selectList(new QueryWrapper<Warehouseinfo>()
+                    .eq("areauserid", areaid)
+                    .eq("warehousestatus", 1));
+            if (CollectionUtils.isNotEmpty(list)) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_027.getCode(), request.getHeader("Accept-Language"));
+            }
+        } else if (role == SysEnums.OrganRole.marketer.getCode().intValue()) {
+            //做市
+            Arearole list = iArearoleMapper.selectOne(new QueryWrapper<Arearole>().eq("userid", areaid).eq("roletype", 8));
+            Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("accountid", list.getTradeaccountid()));
+            if (ta.getSignstatus() == 2) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_028.getCode(), request.getHeader("Accept-Language"));
+            }
+            iUserreckonaccountMapper.delete(new QueryWrapper<Userreckonaccount>().eq("userid", areaid).eq("defaultaccounttype", 2));
+
+            //判断报价商
+            List<Quoter> qu = iQuoterMapper.selectList(new QueryWrapper<Quoter>().eq("defaultmakerid", areaid).eq("quoterstatus", 1));
+            if (CollectionUtils.isNotEmpty(qu)) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_029.getCode(), request.getHeader("Accept-Language"));
+            }
+
+            //二级对手关系
+            List<Mmrelation2> mmList = iMmrelation2Mapper.selectList(new QueryWrapper<Mmrelation2>().eq("memberuserid", areaid));
+            if (CollectionUtils.isNotEmpty(mmList)) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_030.getCode(), request.getHeader("Accept-Language"));
+            }
+
+            List<Arearolemarketmaker> l = iArearolemarketmakerMapper.selectList(new QueryWrapper<Arearolemarketmaker>()
+                    .eq("mmuserid", areaid)
+                    .eq("roletype", 19));
+            if (CollectionUtils.isNotEmpty(l)) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_031.getCode(), request.getHeader("Accept-Language"));
+            }
+        } else if (role == SysEnums.OrganRole.broker.getCode().intValue()) {
+            //经济;
+            List<Useraccount> list = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
+                    .eq("parentuserid", areaid)
+                    .eq("accountstatus", 4)
+                    .in("usertype", 3, 4));
+            if (CollectionUtils.isNotEmpty(list)) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_002.getCode(), request.getHeader("Accept-Language"));
+            }
+
+            List<Useraccount> list2 = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
+                    .eq("parentuserid", areaid)
+                    .eq("accountstatus", 4)
+                    .eq("usertype", 5));
+            if (CollectionUtils.isNotEmpty(list2)) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_003.getCode(), request.getHeader("Accept-Language"));
+            }
+        } else if (role == SysEnums.OrganRole.integral.getCode().intValue()) {
+            Scoretype st = iScoretypeMapper.selectOne(new QueryWrapper<Scoretype>().eq("scoreUserId", areaid));
+            if (st != null) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_032.getCode(), request.getHeader("Accept-Language"));
+            }
+        } else if (role == SysEnums.OrganRole.quoterorgan.getCode().intValue()) {
+            List<Hedgeaccount> l = iHedgeaccountMapper.selectList(new QueryWrapper<Hedgeaccount>().eq("quoteruserid", areaid));
+            if (CollectionUtils.isNotEmpty(l)) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_033.getCode(), request.getHeader("Accept-Language"));
+            }
+        }
+        /****************数据校验结束*********开始删除数据*********************************/
+        String sysp = iCommonService.getSysparmById(SysConstants.SYSPAMA_CODE_NINESERVENNINE);
+        //删除市场
+        if (role == SysEnums.OrganRole.selfsupport.getCode().intValue()
+                || role == SysEnums.OrganRole.broker.getCode().intValue()) {
+            //市场
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", areaid).eq("roletype", role));
+
+            Useraccount uc = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
+            iTaaccountmarketMapper.delete(new QueryWrapper<Taaccountmarket>().eq("accounted", uc.getReckonaccountid()));
+
+            //Ms_ExtendRole
+            iMsExtendroleMapper.delete(new QueryWrapper<MsExtendrole>().eq("areauserid", areaid).eq("roletypeid", 4L));
+
+            //自营会员,删除资金市场权限
+            if (role == SysEnums.OrganRole.selfsupport.getCode().intValue()) {
+                Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("userid", areaid).eq("ismain", 1));
+                iTaaccountmarketMapper.delete(new QueryWrapper<Taaccountmarket>().eq("accountid", ta.getAccountid()));
+            }
+
+            List<Integer> roletype = new ArrayList<>();
+            roletype.add(role);
+            if ("1".equals(sysp)) {
+                roletype.add(9);
+            }
+            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));
+            if (admin != null) {
+                List<Long> roleids = new ArrayList<>();
+                roleids.add(Long.valueOf(role));
+                if ("1".equals(sysp)) {
+                    roleids.add(9L);
+                }
+                iRoleuserMapper.delete(new QueryWrapper<Roleuser>()
+                        .in("roleid", roleids)
+                        .eq("roletype", 3)
+                        .eq("managerid", admin.getAutoid()));
+            }
+
+            // 更新parentuserid为平台
+            Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
+            if (ua != null) {
+                ua.setParentuserid(1L);
+                iUseraccountMapper.update(ua, new QueryWrapper<Useraccount>().eq("userid", ua.getUserid()));
+            }
+
+            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+        } else if (role == SysEnums.OrganRole.industry.getCode().intValue()) {
+            if ("1".equals(sysp)) {
+                //市场
+                iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", areaid).eq("roletype", 6));
+
+                List<Integer> roletype = new ArrayList<>();
+                roletype.add(6);
+                roletype.add(9);
+                iRoleuserMapper.delete(new QueryWrapper<Roleuser>().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));
+                if (admin != null) {
+                    iRoleuserMapper.delete(new QueryWrapper<Roleuser>()
+                            .in("roleid", roletype)
+                            .eq("roletype", 3)
+                            .eq("managerid", admin.getAutoid()));
+                }
+                // 更新parentuserid为平台
+                Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
+                iTaaccountmarketMapper.delete(new QueryWrapper<Taaccountmarket>().eq("accountid", ua.getReckonaccountid()));
+
+                return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+            }
+        } else if (role == SysEnums.OrganRole.marketer.getCode().intValue()) {
+            //做市 删除客户类别
+            iCustomertypeareadetailMapper.delete(new QueryWrapper<Customertypeareadetail>().eq("arearoleid", 8).eq("userid", areaid));
+            iUserreckonaccountMapper.delete(new QueryWrapper<Userreckonaccount>().eq("userid", areaid).eq("defaultaccounttype", 2));
+
+            Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("userid", areaid));
+            ta.setIsmarketaccount(0);
+            iTaaccountMapper.update(ta, new QueryWrapper<Taaccount>().eq("userid", areaid));
+        } else if (role == SysEnums.OrganRole.quoterorgan.getCode().intValue()
+                || role == SysEnums.OrganRole.outoption.getCode().intValue()) {
+
+            iArearolemarketmakerMapper.delete(new QueryWrapper<Arearolemarketmaker>().eq("areauserid", areaid).eq("roletype", role));
+        } else if (role == SysEnums.OrganRole.seller.getCode().intValue()) {
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", areaid).eq("roletype", 6));
+
+            Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
+            iTaaccountmarketMapper.delete(new QueryWrapper<Taaccountmarket>().eq("accountid", ua.getReckonaccountid()));
+
+            // 6 9 两个角色
+            List<Integer> rs = new ArrayList<>();
+            rs.add(6);
+            rs.add(9);
+            iArearoleMapper.delete(new QueryWrapper<Arearole>()
+                    .eq("userid", areaid)
+                    .in("roletype", rs));
+            iArearoledivideconfigMapper.delete(new QueryWrapper<Arearoledivideconfig>()
+                    .eq("userid", areaid)
+                    .in("roletype", rs));
+
+            Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("areauserid", areaid).eq("isdefault", 1));
+            if (admin != null) {
+                iRoleuserMapper.delete(new QueryWrapper<Roleuser>()
+                        .in("roleid", rs)
+                        .eq("roletype", 3)
+                        .eq("managerid", admin.getAutoid()));
+            }
+
+            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+        } else if (role == SysEnums.OrganRole.ordinarymember.getCode().intValue() || role == SysEnums.OrganRole.coremember.getCode().intValue()) {
+            //市场
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", areaid).eq("roletype", 6));
+
+            Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("userid", areaid));
+            iTaaccountmarketMapper.delete(new QueryWrapper<Taaccountmarket>().eq("accountid", ta.getAccountid()));
+
+            List<Integer> roletypeArrTemp = new ArrayList<>();
+            roletypeArrTemp.add(SysEnums.OrganRole.ordinarymember.getCode());
+            roletypeArrTemp.add(SysEnums.OrganRole.coremember.getCode());
+            if (iArearoleMapper.selectCount(new QueryWrapper<Arearole>().eq("userid", areaid).in("roletype", roletypeArrTemp)) > 1) {
+                iArearoleMapper.delete(new QueryWrapper<Arearole>().eq("userid", areaid).eq("roletype", role));
+            } else {
+                List<Integer> roletypeArr = new ArrayList<>();
+                roletypeArr.add(4);
+                roletypeArr.add(6);
+                roletypeArr.add(9);
+                roletypeArr.add(role);
+                iArearoleMapper.delete(new QueryWrapper<Arearole>().eq("userid", areaid).eq("roletype", roletypeArr));
+            }
+
+            iLoginaccountMapper.delete(new QueryWrapper<Loginaccount>().eq("userid", areaid));
+            iLogintaaccountMapper.delete(new QueryWrapper<Logintaaccount>().eq("accountid", ta.getAccountid()));
+
+            Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("areauserid", areaid).eq("isdefault", 1));
+            if (admin != null) {
+                List<Integer> roleids = new ArrayList<>();
+                if (iRoleuserMapper.selectCount(new QueryWrapper<Roleuser>().eq("managerid", admin.getAutoid())
+                        .eq("roletype", 3)
+                        .in("roleid", roletypeArrTemp)) <= 1) {
+                    roleids.add(4);
+                    roleids.add(6);
+                    roleids.add(9);
+                }
+                roleids.add(role);
+                iRoleuserMapper.delete(new QueryWrapper<Roleuser>().eq("roletype", 3).in("roleid", roleids));
+            }
+
+            iUsermarkettradeconfigMapper.delete(new QueryWrapper<Usermarkettradeconfig>().eq("userid", areaid));
+            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+        }
+
+        iArearoleMapper.delete(new QueryWrapper<Arearole>().eq("userid", areaid).eq("roletype", role));
+        iArearoledivideconfigMapper.delete(new QueryWrapper<Arearoledivideconfig>()
+                .eq("userid", areaid)
+                .eq("roletype", role));
+
+        if (role == SysEnums.OrganRole.quoterorgan.getCode().intValue()
+                || role == SysEnums.OrganRole.outoption.getCode().intValue()) {
+            iArearolemarketmakerMapper.delete(new QueryWrapper<Arearolemarketmaker>().eq("areauserid", areaid).eq("roletype", role));
+        }
+        if (role != SysEnums.OrganRole.quoterorgan.getCode().intValue()) {
+            Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("areauserid", areaid).eq("isdefault", 1));
+            if (admin != null) {
+                iRoleuserMapper.delete(new QueryWrapper<Roleuser>()
+                        .eq("managerid", admin.getAutoid())
+                        .eq("roleid", role)
+                        .eq("roletype", 3));
+            }
+        }
+
+        // 删除运营机构商品权限配置 2024-01-15
+        if (role == SysEnums.OrganRole.operate.getCode().intValue()) {
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("userid", areaid));
+        }
+
+        List<Loginaccount> list = iLoginaccountMapper.selectList(new QueryWrapper<Loginaccount>()
+                .eq("userid", areaid)
+                .eq("loginusertype", 2));
+        List<Long> loginids = new ArrayList<>();
+        for (Loginaccount tmp : list) {
+            if (!tmp.getLoginstatus().equals(3)) {
+                tmp.setLoginstatus(3);
+                tmp.setModifytime(new Date());
+                tmp.setModifierid(systemmanager.getAutoid());
+                iLoginaccountMapper.update(tmp, new QueryWrapper<Loginaccount>().eq("loginid", tmp.getLoginid()));
+                loginids.add(tmp.getLoginid());
+            }
+        }
+
+        if (CollectionUtils.isNotEmpty(loginids)) {
+            try {
+                Set<Long> set_msg = new HashSet<>(loginids);
+                iSendMsgService.sendLoginMsg(set_msg, 1, 0);
+            } catch (Exception e) {
+                log.error("机构注销发送失败,失败原因:" + e);
+            }
+        }
+
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult<OrganInitAddResult> initAdd(String role, HttpServletRequest request) {
+        OrganInitAddResult result = new OrganInitAddResult();
+        String l = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "002");
+        if (!"1".equals(l)) {
+            result.setAllrole(1);
+        }
+        Integer r = SysEnums.OrganRole.valueOf(role).getCode();
+        result.setRoleid(r);
+        result.setRolename(role);
+        if (r <= 5) {
+            if (r == 2) {
+                // 运营机构功能变更 2024-01-15
+                //运营机构为空的有效交易类市场
+                //查询可选的交易市场
+                result.setMarkets(iArearoleMapper.queryMarketsForOperate());
+                //查询可选的商品
+                result.setGoodsinfo(iArearoleMapper.queryGoodsAndMarketInfo());
+            }
+
+            //分润方式
+            String devidetype = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM,
+                    SysConstants.SYSPARAM_CODE_DIVIDE);
+            if (devidetype != null) {
+                result.setDevidetype(devidetype);
+            }
+            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+        } else {
+            if (r == 6 || r == 7 || r == 69) {
+                //市场
+                List<Market> list = iMarketMapper.selectList(new QueryWrapper<Market>()
+                        .eq("marketStatus", SysEnums.EnumMarketStatus.NORMAL.getType())
+                        .eq("markettype", 2));
+
+                result.setMarkets(list);
+            } else if (r == 18 || r == 19) {
+                if (r == 18) {
+                    result.setAllrole(null);
+                }
+                //做市会员
+                OrganSelectParam vo = new OrganSelectParam();
+                vo.setUsertype("2");
+                vo.setRoles("8");
+                List<OrganSelectResult> list = iUseraccountMapper.queryOrganSelect(vo);
+                result.setOrgans(list);
+            } else if (r == 8) {
+                List<Enumdicitem> ei = iEnumdicitemMapper.selectList(new QueryWrapper<Enumdicitem>().eq("enumdiccode", "currency"));
+                result.setEnumDicItems(ei);
+            } else if (r == 9) {
+                String sm = iCommonService.getSysparmById(SysConstants.SYSPAMA_CODE_NINESERVENNINE);
+                String isTHJ = iCommonService.getSysparmById("994");
+                if ("1".equals(isTHJ)) {
+                    //THJ 项目不配置市场权限
+                } else {
+                    if ("1".equals(sm)) {
+                        result.setIshsby(1);
+                        //市场
+                        Map<String, Object> properties = new HashMap<String, Object>();
+                        properties.put("marketStatus", SysEnums.EnumMarketStatus.NORMAL.getType());
+                        properties.put("markettype", 2);
+                        List<Market> list = iMarketMapper.selectList(new QueryWrapper<Market>()
+                                .eq("marketStatus", SysEnums.EnumMarketStatus.NORMAL.getType())
+                                .eq("markettype", 2));
+                        result.setMarkets(list);
+                    }
+                }
+            }
+
+            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult roleadd(OrganRoleModifyParam vo, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (vo.getParentuserid() != null && vo.getRoleid().equals(7) && vo.getUserid().equals(vo.getParentuserid())) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_034.getCode(), request.getHeader("Accept-Language"));
+        }
+
+        if (vo.getType() == 1) {//新增
+            if (vo.getRoleid() <= 5) {
+                addAreaRoleModifyFee(vo, systemmanager, request);
+            } else {
+                addAreaRoleModifyMember(vo, systemmanager, request);
+            }
+        } else {//修改
+            if (vo.getRoleid() <= 5) {
+                editAreaRoleModifyFee(vo, systemmanager, request);
+            } else {
+                editARoleModifyMember(vo, systemmanager, request);
+            }
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    private void editARoleModifyMember(OrganRoleModifyParam vo, Systemmanager opeartion, HttpServletRequest request) {
+        Date date = new Date();
+
+        //卖方管理  当前修改角色时 等同自营  2019年6月18日 10:30:28
+        Integer roleid = vo.getRoleid() == SysEnums.OrganRole.seller.getCode().intValue() ?
+                SysEnums.OrganRole.selfsupport.getCode().intValue() : vo.getRoleid();
+        Arearole or = iArearoleMapper.selectOne(new QueryWrapper<Arearole>().eq("userid", vo.getUserid()).eq("roletype", roleid));
+
+        if (roleid == SysEnums.OrganRole.selfsupport.getCode().intValue()
+                || roleid == SysEnums.OrganRole.broker.getCode().intValue()) {
+            //市场
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", vo.getUserid()).eq("roletype", roleid));
+            List<TaAccountMarketVo> dtype = vo.getDtype();
+
+            List<Long> marketids = new ArrayList<>();
+            if (dtype != null && !dtype.isEmpty()) {
+                for (TaAccountMarketVo td : dtype) {
+                    if (td != null && td.getMarketId() != null) {
+                        marketids.add(td.getMarketId());
+                        Arearolemarket m = new Arearolemarket();
+                        m.setAreauserid(vo.getUserid());
+                        m.setMarketid(td.getMarketId());
+                        m.setRoletype(roleid);
+                        m.setModifierid(opeartion.getAutoid());
+                        m.setModifytime(date);
+                        m.setSpotrighttype(td.getSpotRightType());
+                        m.setBuyspotrighttype(td.getDType());
+                        iArearolemarketMapper.insert(m);
+                    }
+                }
+            }
+
+            if (roleid == SysEnums.OrganRole.broker.getCode().intValue()) {
+                Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid",vo.getUserid()));
+                if (vo.getParentuserid() == null) {
+                    ua.setParentuserid(1L);
+                } else {
+                    ua.setParentuserid(vo.getParentuserid());
+                }
+                iUseraccountMapper.update(ua,new QueryWrapper<Useraccount>().eq("userid",ua.getUserid()));
+            }
+
+            if (roleid == SysEnums.OrganRole.selfsupport.getCode().intValue()) {
+                //更新资金账户市场权限
+                iTaaccountMapper.deleteUserMarket(vo.getUserid(),marketids);
+
+                // 处理自营账号信息
+                handleSelfMemberAccount(roleid, vo, opeartion, dtype );
+            }
+        } else if (roleid == SysEnums.OrganRole.marketer.getCode().intValue()) {
+
+            if (CollectionUtils.isNotEmpty(vo.getAccountids())) {
+                Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("userid",vo.getUserid()));
+                ta.setIsmarketaccount(0);
+                iTaaccountMapper.update(ta,new QueryWrapper<Taaccount>().eq("userid",ta.getUserid()));
+
+                iUserreckonaccountMapper.delete(new QueryWrapper<Userreckonaccount>().eq("userid", vo.getUserid()).eq("defaultaccounttype", 2));
+                for (int i = 0; i < vo.getAccountids().size(); i++) {
+                    Taaccount current = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("userid",vo.getAccountids().get(i)));
+                    current.setIsmarketaccount(1);
+                    iTaaccountMapper.update(ta,new QueryWrapper<Taaccount>().eq("userid",current.getAccountid()));
+
+                    Userreckonaccount iura = new Userreckonaccount();
+                    iura.setUserid(vo.getUserid());
+                    iura.setCurrencyid(vo.getEnumdicnames().get(i).intValue());
+                    iura.setReckonaccountid(vo.getAccountids().get(i));
+                    iura.setUpdatetime(new Date());
+                    iura.setDefaultaccounttype(2);
+                    iUserreckonaccountMapper.insert(iura);
+                }
+            }
+
+            iCustomertypeareadetailMapper.delete(new QueryWrapper<Customertypeareadetail>()
+                    .eq("userid", vo.getUserid())
+                    .eq("arearoleid", roleid));
+            if (vo.getCustomertype() != null) {
+                Customertypeareadetail ca = new Customertypeareadetail();
+                ca.setArearoleid(SysEnums.OrganRole.marketer.getCode());
+                ca.setCustomertype(vo.getCustomertype());
+                ca.setUserid(vo.getUserid());
+                iCustomertypeareadetailMapper.insert(ca);
+            }
+        } else if (roleid == SysEnums.OrganRole.quoterorgan.getCode().intValue()
+                || roleid == SysEnums.OrganRole.outoption.getCode().intValue()) {
+            //保存做市机构
+            iArearolemarketmakerMapper.delete(new QueryWrapper<Arearolemarketmaker>()
+                    .eq("areauserid", vo.getUserid())
+                    .eq("roletype", roleid));
+            String marketings = vo.getMarketings();
+            if (StringUtils.isNotBlank(marketings)) {
+                String[] ids = marketings.split(",");
+                for (String id : ids) {
+                    if (StringUtils.isNotBlank(id)) {
+                        Arearolemarketmaker am = new Arearolemarketmaker();
+                        am.setAreauserid(vo.getUserid());
+                        am.setRoletype(roleid);
+                        am.setMmuserid(Long.valueOf(id));
+                        am.setModifytime(date);
+                        am.setModifierid(opeartion.getAutoid());
+                        iArearolemarketmakerMapper.insert(am);
+                    }
+                }
+            }
+        } else if (roleid == SysEnums.OrganRole.ordinarymember.getCode().intValue() || roleid == SysEnums.OrganRole.coremember.getCode().intValue()) {
+            //市场
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", vo.getUserid()).eq("roletype", 6));
+            List<TaAccountMarketVo> dtype = vo.getDtype();
+            List<Long> marketids = new ArrayList<>();
+            if (dtype != null && !dtype.isEmpty()) {
+                for (TaAccountMarketVo td : dtype) {
+                    if (td != null && td.getMarketId() != null) {
+                        marketids.add(td.getMarketId());
+                        Arearolemarket m = new Arearolemarket();
+                        m.setAreauserid(vo.getUserid());
+                        m.setMarketid(td.getMarketId());
+                        m.setRoletype(6);
+                        m.setModifierid(opeartion.getAutoid());
+                        m.setModifytime(date);
+                        m.setSpotrighttype(td.getSpotRightType());
+                        m.setBuyspotrighttype(td.getDType());
+                        iArearolemarketMapper.insert(m);
+                    }
+                }
+            }
+
+            //送检账户
+            Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid",vo.getUserid()));
+            ua.setSjaccountno(vo.getSjaccountno());
+            iUseraccountMapper.update(ua,new QueryWrapper<Useraccount>().eq("userid",ua.getUserid()));
+
+            //更新资金账户市场权限
+            iTaaccountMapper.deleteUserMarket(vo.getUserid(),marketids);
+
+            Map<String, Object> properties = new HashMap<String, Object>();
+            if (CollectionUtils.isNotEmpty(marketids)) {
+                Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("userid", vo.getUserid()).eq("ismain", 1));
+                iTaaccountmarketMapper.delete(new QueryWrapper<Taaccountmarket>().eq("accountid", ta.getAccountid()));
+                for (TaAccountMarketVo td : dtype) {
+                    if (td != null && td.getMarketId() != null) {
+                        Taaccountmarket tm = new Taaccountmarket();
+                        tm.setAccountid(ta.getAccountid());
+                        tm.setMarketid(td.getMarketId());
+                        tm.setModifytime(date);
+                        tm.setModifierid(opeartion.getAutoid());
+                        tm.setSpotrighttype(td.getSpotRightType());
+                        tm.setBuyspotrighttype(td.getDType());
+                        iTaaccountmarketMapper.insert(tm);
+                    }
+                }
+            }
+        }
+
+        or.setUserid(vo.getUserid());
+        or.setRoletype(roleid);
+        or.setTradeaccountid(vo.getAccountid());
+        or.setModifierid(opeartion.getAutoid());
+        or.setModifytime(date);
+        or.setTransurl(vo.getTransurl());
+    }
+
+    private void editAreaRoleModifyFee(OrganRoleModifyParam vo, Systemmanager opeartion, HttpServletRequest request) {
+        Arearole or = iArearoleMapper.selectOne(new QueryWrapper<Arearole>()
+                .eq("userid", vo.getUserid())
+                .eq("roletype", vo.getRoleid()));
+        or.setUserid(vo.getUserid());
+        or.setRoletype(vo.getRoleid());
+        or.setTradeaccountid(vo.getAccountid());
+        or.setModifierid(opeartion.getAutoid());
+        or.setModifytime(new Date());
+        iArearoleMapper.update(or,new QueryWrapper<Arearole>().eq("userid", vo.getUserid()).eq("roletype", vo.getRoleid()));
+
+        if (vo.getRoleid().compareTo(SysEnums.OrganRole.operate.getCode()) == 0) {
+            iMarketMapper.updateExchareaidNull(vo.getUserid());
+            List<Integer> marketids = vo.getMarketids();
+            if (marketids != null && !marketids.isEmpty()) {
+                Map<String, Object> update = new HashMap<>();
+                update.put("marketids", marketids);
+                update.put("exchareaid", vo.getUserid());
+                iMarketMapper.updateExchareaid(marketids,vo.getUserid());
+
+                Systemparam p = iSystemparamMapper.selectOne(new QueryWrapper<Systemparam>().eq("PARAMCODE",Constants.SYSPARAM_ID_MARKET));
+                if (p != null) {
+                    p.setParamvalue(String.valueOf(System.currentTimeMillis()));
+                    p.setUpdatetime(new Date());
+                    iSystemparamMapper.update(p,new QueryWrapper<Systemparam>().eq("PARAMCODE",Constants.SYSPARAM_ID_MARKET));
+                }
+            }
+        }
+
+        //清除原数据
+        iArearoledivideconfigMapper.delete(new QueryWrapper<Arearoledivideconfig>()
+                .eq("userid", vo.getUserid())
+                .eq("roletype", vo.getRoleid()));
+
+        //分润
+        if (vo.getFee() != null && !vo.getFee().isEmpty()) {
+            int size = vo.getFee().size();
+            for (int i = 0; i < size; i++) {
+                Arearoledivideconfig fee = vo.getFee().get(i);
+                if (fee.getTradefeeid() == null || fee.getFeealgorithm() == null ||
+                        fee.getDividevalue() == null) {
+                    continue;
+                }
+                if (fee.getFeealgorithm() == 1 && fee.getDividevalue().compareTo(new BigDecimal(100)) > 0) {
+                    throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_035.getCode(), request.getHeader("Accept-Language"));
+                }
+                if (fee.getFeealgorithm() == 1) {
+                    fee.setDividevalue(fee.getDividevalue().divide(new BigDecimal(100)));
+                }
+                fee.setUserid(or.getUserid());
+                fee.setMarketid(0L);
+                fee.setGoodsid(0L);
+                fee.setRoletype(or.getRoletype());
+                fee.setCreatetime(new Date());
+                fee.setCreatorid(opeartion.getAutoid());
+                fee.setModifytime(new Date());
+                fee.setModifierid(opeartion.getAutoid());
+                iArearoledivideconfigMapper.insert(fee);
+            }
+        }
+
+        //商品个性化配置
+        if (vo.getPfee() != null && !vo.getPfee().isEmpty()) {
+            int size = vo.getPfee().size();
+            for (int i = 0; i < size; i++) {
+                Arearoledivideconfig fee = vo.getPfee().get(i);
+                if (fee.getGoodsid() == null || fee.getTradefeeid() == null || fee.getFeealgorithm() == null ||
+                        fee.getDividevalue() == null) {
+                    continue;
+                }
+                if (fee.getFeealgorithm() == 1 && fee.getDividevalue().compareTo(new BigDecimal(100)) > 0) {
+                    throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_035.getCode(), request.getHeader("Accept-Language"));
+                }
+                if (fee.getFeealgorithm() == 1) {
+                    fee.setDividevalue(fee.getDividevalue().divide(new BigDecimal(100)));
+                }
+                fee.setUserid(or.getUserid());
+                fee.setRoletype(or.getRoletype());
+                fee.setCreatetime(new Date());
+                fee.setCreatorid(opeartion.getAutoid());
+                fee.setModifytime(new Date());
+                fee.setModifierid(opeartion.getAutoid());
+                iArearoledivideconfigMapper.insert(fee);
+            }
+        }
+
+        // 运营机构权限变更为可查询有商品权限的交易单据 2024-01-15
+        updateOperateGoodsConfig(vo);
+    }
+
+    private void addAreaRoleModifyMember(OrganRoleModifyParam vo, Systemmanager opeartion, HttpServletRequest request) {
+        Integer roleid = vo.getRoleid();
+        Arearole or = new Arearole();
+        Date date = new Date();
+        Systemmanager user = null;
+        Long loginid = null; //新加的登录账号ID
+        String sysp = iCommonService.getSysparmById(SysConstants.SYSPAMA_CODE_NINESERVENNINE);
+        if (roleid == SysEnums.OrganRole.selfsupport.getCode().intValue()
+                || roleid == SysEnums.OrganRole.broker.getCode().intValue()) {
+
+            if (roleid == SysEnums.OrganRole.broker.getCode().intValue()) {
+                //经纪会员更新营销中心
+                Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", vo.getUserid()));
+                if (ua != null) {
+                    if (vo.getParentuserid() != null) {
+                        ua.setParentuserid(vo.getParentuserid());
+                    } else {
+                        ua.setParentuserid(1L);
+                    }
+                    iUseraccountMapper.update(ua, new QueryWrapper<Useraccount>().eq("userid", vo.getUserid()));
+                }
+            }
+
+            //市场
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", vo.getUserid()).eq("roletype", roleid));
+
+            List<TaAccountMarketVo> dtype = vo.getDtype();
+            if (dtype != null && !dtype.isEmpty()) {
+                for (TaAccountMarketVo td : dtype) {
+                    if (td != null && td.getMarketId() != null) {
+                        Arearolemarket m = new Arearolemarket();
+                        m.setAreauserid(vo.getUserid());
+                        m.setMarketid(td.getMarketId());
+                        m.setRoletype(roleid);
+                        m.setModifierid(opeartion.getAutoid());
+                        m.setModifytime(date);
+                        m.setSpotrighttype(td.getSpotRightType());
+                        m.setBuyspotrighttype(td.getDType());
+                        iArearolemarketMapper.insert(m);
+                    }
+                }
+            }
+            // 自营会员 处理自营账号信息
+            if (roleid == SysEnums.OrganRole.selfsupport.getCode().intValue()) {
+                handleSelfMemberAccount(roleid, vo, opeartion, dtype);
+            }
+        } else if (roleid == SysEnums.OrganRole.industry.getCode().intValue()) {
+            // 创建产业角色时是否同时创建自营角色
+            if ("1".equals(sysp)) {
+                //市场
+                iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", vo.getUserid()).eq("roletype", 6));
+
+                iArearoleMapper.delete(new QueryWrapper<Arearole>()
+                        .in("roletype", 6, 9)
+                        .eq("userid", vo.getUserid()));
+
+                List<TaAccountMarketVo> dtype = vo.getDtype();
+                if (dtype != null && !dtype.isEmpty()) {
+                    for (TaAccountMarketVo td : dtype) {
+                        if (td != null && td.getMarketId() != null) {
+                            Arearolemarket m = new Arearolemarket();
+                            m.setAreauserid(vo.getUserid());
+                            m.setMarketid(td.getMarketId());
+                            m.setRoletype(6);
+                            m.setModifierid(opeartion.getAutoid());
+                            m.setModifytime(date);
+                            m.setSpotrighttype(td.getSpotRightType());
+                            m.setBuyspotrighttype(td.getDType());
+                            iArearolemarketMapper.insert(m);
+                        }
+                    }
+                }
+                Arearole ar = new Arearole();
+                ar.setCreatetime(new Date());
+                ar.setCreatorid(opeartion.getAutoid());
+                ar.setUserid(vo.getUserid());
+                ar.setRoletype(6);
+                ar.setTradeaccountid(vo.getAccountid());
+                ar.setModifierid(opeartion.getAutoid());
+                ar.setModifytime(new Date());
+                ar.setTransurl(vo.getTransurl());
+                ar.setOutuserid(vo.getOutuserid());
+                iArearoleMapper.insert(ar);
+
+                // 处理自营账号信息
+                handleSelfMemberAccount(roleid, vo, opeartion, dtype);
+
+            }
+        } else if (roleid == SysEnums.OrganRole.marketer.getCode().intValue()) {
+            if (CollectionUtils.isNotEmpty(vo.getAccountids())) {
+                for (int i = 0; i < vo.getAccountids().size(); i++) {
+                    Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("accountid", vo.getAccountids().get(i)));
+                    ta.setIsmarketaccount(1);
+                    iTaaccountMapper.update(ta, new QueryWrapper<Taaccount>().eq("accountid", ta.getAccountid()));
+
+                    Userreckonaccount iura = new Userreckonaccount();
+                    iura.setUserid(vo.getUserid());
+                    iura.setCurrencyid(vo.getEnumdicnames().get(i).intValue());
+                    iura.setReckonaccountid(vo.getAccountids().get(i));
+                    iura.setUpdatetime(new Date());
+                    iura.setDefaultaccounttype(2);
+                    iUserreckonaccountMapper.insert(iura);
+                }
+            }
+            if (vo.getCustomertype() != null) {
+                Customertypeareadetail ca = new Customertypeareadetail();
+                ca.setArearoleid(SysEnums.OrganRole.marketer.getCode());
+                ca.setCustomertype(vo.getCustomertype());
+                ca.setUserid(vo.getUserid());
+                iCustomertypeareadetailMapper.insert(ca);
+            }
+
+        } else if (roleid == SysEnums.OrganRole.shoping.getCode().intValue()) {
+            //商城 同步数据
+            or.setShoppassword(EncryptionUtils.encryptSHA(vo.getUserid() + vo.getShoppassword()));
+        } else if (roleid == SysEnums.OrganRole.quoterorgan.getCode().intValue()
+                || roleid == SysEnums.OrganRole.outoption.getCode().intValue()) {
+            //保存做市机构
+            String marketings = vo.getMarketings();
+            if (StringUtils.isNotBlank(marketings)) {
+                String[] ids = marketings.split(",");
+                for (String id : ids) {
+                    if (StringUtils.isNotBlank(id)) {
+                        Arearolemarketmaker am = new Arearolemarketmaker();
+                        am.setAreauserid(vo.getUserid());
+                        am.setRoletype(roleid);
+                        am.setMmuserid(Long.valueOf(id));
+                        am.setModifytime(date);
+                        am.setModifierid(opeartion.getAutoid());
+                        iArearolemarketmakerMapper.insert(am);
+                    }
+                }
+            }
+        } else if (roleid == SysEnums.OrganRole.seller.getCode().intValue()) {
+            //市场
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", vo.getUserid()).eq("roletype", 6));
+
+            List<TaAccountMarketVo> dtype = vo.getDtype();
+            if (dtype != null && !dtype.isEmpty()) {
+                for (TaAccountMarketVo td : dtype) {
+                    if (td != null && td.getMarketId() != null) {
+                        Arearolemarket m = new Arearolemarket();
+                        m.setAreauserid(vo.getUserid());
+                        m.setMarketid(td.getMarketId());
+                        m.setRoletype(6);
+                        m.setModifierid(opeartion.getAutoid());
+                        m.setModifytime(date);
+                        m.setSpotrighttype(td.getSpotRightType());
+                        m.setBuyspotrighttype(td.getDType());
+                        iArearolemarketMapper.insert(m);
+                    }
+                }
+            }
+
+            // 处理自营账号信息
+            handleSelfMemberAccount(roleid, vo, opeartion, dtype);
+
+            or.setCreatorid(opeartion.getAutoid());
+            or.setUserid(vo.getUserid());
+            or.setRoletype(6);
+            or.setTradeaccountid(vo.getAccountid());
+            or.setModifierid(opeartion.getAutoid());
+            or.setModifytime(new Date());
+            or.setTransurl(vo.getTransurl());
+            or.setOutuserid(vo.getOutuserid());
+            iArearoleMapper.insert(or);
+
+            Arearole or1 = new Arearole();
+            BeanUtils.copyProperties(or, or1);
+            or1.setRoletype(9);
+            iArearoleMapper.insert(or1);
+
+            String l = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "002");
+            if ("2".equals(l)) {
+                user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                        .eq("areauserid", vo.getUserid())
+                        .eq("isdefault", 1));
+
+                Roleuser ur = new Roleuser();
+                ur.setRoleid(6L);
+                ur.setManagerid(user.getAutoid());
+                ur.setRoletype(3);
+                iRoleuserMapper.insert(ur);
+
+                Roleuser ur1 = new Roleuser();
+                ur1.setRoleid(9L);
+                ur1.setManagerid(user.getAutoid());
+                ur1.setRoletype(3);
+                iRoleuserMapper.insert(ur1);
+            }
+            return;
+        } else if (roleid == SysEnums.OrganRole.ordinarymember.getCode().intValue() || roleid == SysEnums.OrganRole.coremember.getCode().intValue()) {
+            // 市场
+            iArearolemarketMapper.delete(new QueryWrapper<Arearolemarket>().eq("areauserid", vo.getUserid()).eq("roletype", 6));
+
+            List<TaAccountMarketVo> dtype = vo.getDtype();
+            if (dtype != null && !dtype.isEmpty()) {
+                for (TaAccountMarketVo td : dtype) {
+                    if (td != null && td.getMarketId() != null) {
+                        Arearolemarket m = new Arearolemarket();
+                        m.setAreauserid(vo.getUserid());
+                        m.setMarketid(td.getMarketId());
+                        m.setRoletype(6);
+                        m.setModifierid(opeartion.getAutoid());
+                        m.setModifytime(date);
+                        m.setSpotrighttype(td.getSpotRightType());
+                        m.setBuyspotrighttype(td.getDType());
+                        iArearolemarketMapper.insert(m);
+                    }
+                }
+            }
+
+            //送检账户
+            Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", vo.getUserid()));
+            ua.setSjaccountno(vo.getSjaccountno());
+            iUseraccountMapper.update(ua, new QueryWrapper<Useraccount>().eq("userid", ua.getUserid()));
+
+            //角色
+            iArearoleMapper.delete(new QueryWrapper<Arearole>().eq("userid", vo.getUserid()).in("roletype", 4, 6, 9, roleid));
+
+            or.setCreatorid(opeartion.getAutoid());
+            or.setCreatetime(new Date());
+            or.setUserid(vo.getUserid());
+            or.setRoletype(4);
+            or.setTradeaccountid(vo.getAccountid());
+            or.setModifierid(opeartion.getAutoid());
+            or.setModifytime(new Date());
+            or.setTransurl(vo.getTransurl());
+            or.setOutuserid(vo.getOutuserid());
+            iArearoleMapper.insert(or);
+
+            Arearole or1 = new Arearole();
+            BeanUtils.copyProperties(or, or1);
+            or1.setRoletype(6);
+            iArearoleMapper.insert(or1);
+
+            or1 = new Arearole();
+            BeanUtils.copyProperties(or, or1);
+            or1.setRoletype(9);
+            iArearoleMapper.insert(or1);
+
+            or = new Arearole();
+
+            user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                    .eq("areauserid", vo.getUserid())
+                    .eq("isdefault", 1));
+
+            iRoleuserMapper.delete(new QueryWrapper<Roleuser>()
+                    .eq("managerid", user.getAutoid())
+                    .in("roleid", 4, 6, 9, roleid));
+
+            Roleuser ur = new Roleuser();
+            ur.setRoleid(4L);
+            ur.setManagerid(user.getAutoid());
+            ur.setRoletype(3);
+            iRoleuserMapper.insert(ur);
+
+            ur = new Roleuser();
+            ur.setRoleid(6L);
+            ur.setManagerid(user.getAutoid());
+            ur.setRoletype(3);
+            iRoleuserMapper.insert(ur);
+
+            ur = new Roleuser();
+            ur.setRoleid(9L);
+            ur.setManagerid(user.getAutoid());
+            ur.setRoletype(3);
+            iRoleuserMapper.insert(ur);
+
+            //添加会员登录账号
+
+            List<Loginaccount> loginList = iLoginaccountMapper.selectList(new QueryWrapper<Loginaccount>()
+                    .eq("userid", vo.getUserid())
+                    .eq("loginusertype", 2));
+            if (CollectionUtils.isEmpty(loginList)) {
+                String defaultPwd = "123456";
+                Systemparam defaultPwdParam = iSystemparamMapper.selectOne(new QueryWrapper<Systemparam>().eq("paraCode", SysConstants.SYSPARAM_CODE_DEFAULT_PWD));
+                if (defaultPwdParam != null && !defaultPwdParam.getParamvalue().isEmpty()) {
+                    defaultPwd = defaultPwdParam.getParamvalue();
+                }
+                //添加自营会员登录账号
+                loginid = tradingAccountService.getNewLoginIdByUserid(vo.getUserid(), 2);
+                Loginaccount la = new Loginaccount();
+                la.setLoginfailnum(0);
+                la.setLoginid(loginid);
+                la.setLoginstatus(1);
+                la.setLoginusertype(2);
+                la.setPassword(EncryptionUtils.encryptSHA(loginid.toString() + defaultPwd));
+                la.setUserid(vo.getUserid());
+                la.setModifierid(opeartion.getAutoid());
+                la.setModifytime(date);
+                la.setHasupdatedpwd(0);
+                String logincode = null;
+                Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", vo.getUserid()));
+                if (StringUtils.isBlank(ui.getLogincode())) {
+                    Systemmanager systemManager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                            .eq("areauserid", vo.getUserid())
+                            .eq("isdefault", 1));
+                    logincode = systemManager.getLogincode();
+                } else {
+                    logincode = ui.getLogincode();
+                }
+                la.setLogincode(logincode);
+                iLoginaccountMapper.insert(la);
+
+                Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>()
+                        .eq("userid", vo.getUserid())
+                        .eq("ismain", 1));
+                Logintaaccount lta = new Logintaaccount();
+                lta.setLoginid(loginid);
+                lta.setAccountid(ta.getAccountid());
+                lta.setModifytime(new Date());
+                lta.setModifierid(opeartion.getAutoid());
+                iLogintaaccountMapper.insert(lta);
+            } else {
+                for (Loginaccount la : loginList) {
+                    la.setLoginstatus(1);
+                    iLoginaccountMapper.update(la, new QueryWrapper<Loginaccount>().eq("loginid", la.getLoginid()));
+                }
+            }
+
+            // 默认资金账户附上所选市场权限 0-否,1-是
+            if (dtype != null && !dtype.isEmpty()) {
+                // 删除
+                Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>()
+                        .eq("userid", vo.getUserid())
+                        .eq("ismain", 1));
+                iTaaccountmarketMapper.delete(new QueryWrapper<Taaccountmarket>().eq("accountid", ta.getAccountid()));
+
+                for (TaAccountMarketVo td : dtype) {
+                    if (td != null && td.getMarketId() != null) {
+                        Taaccountmarket tm = new Taaccountmarket();
+                        tm.setAccountid(ta.getAccountid());
+                        tm.setMarketid(td.getMarketId());
+                        tm.setModifytime(date);
+                        tm.setModifierid(opeartion.getAutoid());
+                        tm.setSpotrighttype(td.getSpotRightType());
+                        tm.setBuyspotrighttype(td.getDType());
+                        iTaaccountmarketMapper.insert(tm);
+                    }
+                }
+            }
+        }
+
+        if (roleid != SysEnums.OrganRole.quoterorgan.getCode().intValue()) {
+            if (roleid == SysEnums.OrganRole.ordinarymember.getCode().intValue() || roleid == SysEnums.OrganRole.coremember.getCode().intValue()) {
+                if (user == null) {
+                    user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                            .eq("areauserid", vo.getUserid())
+                            .eq("isdefault", 1));
+                }
+                Roleuser ur = new Roleuser();
+                ur.setRoleid(Long.valueOf(roleid));
+                ur.setManagerid(user.getAutoid());
+                ur.setRoletype(3);
+                iRoleuserMapper.insert(ur);
+            } else {
+                String l = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "002");
+                if ("2".equals(l)) {
+                    user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                            .eq("areauserid", vo.getUserid())
+                            .eq("isdefault", 1));
+                    if ("1".equals(sysp) && roleid == 9) {
+                        iRoleuserMapper.delete(new QueryWrapper<Roleuser>()
+                                .eq("managerid", user.getAutoid())
+                                .in("roleid", 6, 9));
+
+                        Roleuser ru = new Roleuser();
+                        ru.setRoleid(6L);
+                        ru.setManagerid(user.getAutoid());
+                        ru.setRoletype(3);
+                        iRoleuserMapper.insert(ru);
+                    }
+                    Roleuser ur = new Roleuser();
+                    ur.setRoleid(Long.valueOf(roleid));
+                    ur.setManagerid(user.getAutoid());
+                    ur.setRoletype(3);
+                    iRoleuserMapper.insert(ur);
+                }
+            }
+        }
+        or.setCreatetime(new Date());
+        or.setCreatorid(opeartion.getAutoid());
+        or.setUserid(vo.getUserid());
+        or.setRoletype(roleid);
+        or.setTradeaccountid(vo.getAccountid());
+        or.setModifierid(opeartion.getAutoid());
+        or.setModifytime(new Date());
+        or.setTransurl(vo.getTransurl());
+        or.setOutuserid(vo.getOutuserid());
+        iArearoleMapper.insert(or);
+
+        if (loginid!= null) {
+            List<Long> loginids = new ArrayList<>();
+            loginids.add(loginid);
+            Set<Long> set_msg = new HashSet<>(loginids);
+            iSendMsgService.sendLoginMsg(set_msg, 0, 0);
+        }
+    }
+
+    private void handleSelfMemberAccount(Integer roleid, OrganRoleModifyParam vo, Systemmanager opeartion, List<TaAccountMarketVo> dtype) {
+        // 自营会员创建PC登录账号
+        generatePCLoginAccount(vo, opeartion);
+
+        // 默认资金账户附上所选市场权限 0-否,1-是
+        addMarketRightToMainAccount(vo, opeartion, dtype);
+
+        // 添加登录账号与资金账户有关系表
+        addLoginTaaccount(vo, opeartion);
+
+        // 发送登录账号变更通知
+        sendLoginAccountChangeMsg(vo.getUserid());
+    }
+
+    private void sendLoginAccountChangeMsg(Long userid) {
+        Map<String, Object> resultMap = new HashMap<>();
+        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", userid));
+        if (ui != null) {
+            resultMap.put("userinfo", ui);
+        }
+        List<Taaccount> tas = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>().eq("userid", userid));
+        if (tas != null) {
+            resultMap.put("taaccount", tas);
+        }
+        Loginaccount la = iLoginaccountMapper.selectOne(new QueryWrapper<Loginaccount>().eq("userid", userid));
+        if (la != null) {
+            resultMap.put("loginaccount", la);
+        }
+        Thread myThread = new Thread(new Runnable() {
+            public void run() {
+                try {
+                    // 使用线程发送消息  延迟5秒发送, 避免数据库未写入
+                    Thread.sleep(5000);
+                    sendAuditMsg(resultMap);
+                    if (la != null) {
+                        // 登录账户变更通知 changetype = 4 修改账户权限
+                        sendLoginAccChangeNtf(la.getLoginid(), 4);
+                    }
+                } catch (Exception ex) {
+                    log.error("发送登录账号变更通知失败,失败原因:" + ex);
+                }
+            }
+        });
+
+        // 启动线程
+        myThread.start();
+    }
+
+    private void sendLoginAccChangeNtf(Long loginid, int changeType) {
+        if (loginid == null) return;
+        Set<Long> logins = new HashSet<>();
+        logins.add(loginid);
+        iSendMsgService.sendLoginMsg(logins, changeType, 0);
+    }
+
+    private void sendAuditMsg(Map<String, Object> resultMap) {
+        if (resultMap.containsKey("taaccount") && resultMap.get("taaccount") != null
+                && resultMap.containsKey("userinfo") && resultMap.get("userinfo") != null) {
+            List<Taaccount> ta = (List<Taaccount>) resultMap.get("taaccount");
+            Userinfo ui = (Userinfo) resultMap.get("userinfo");
+            for (int i = 0; i < ta.size(); i++) {
+                iSendMsgService.sendCustomerInfo(ui, ta.get(i).getAccountid(), "1", 0);
+
+                //发给账户服务的,用户变更通知
+                iSendMsgService.sendUserChangeMsg(ta.get(i).getAccountid(), ta.get(i).getUserid(),
+                        SysEnums.UserOperateTypeEnum.ADD.getType(),
+                        SysEnums.NotifyModeEnum.UNICAST.getType());
+            }
+        }
+
+        if (resultMap.containsKey("loginaccount") && resultMap.get("loginaccount") != null) {
+            Loginaccount la = (Loginaccount) resultMap.get("loginaccount");
+
+            // 登录账户变更通知 changetype = 0 新增
+            sendLoginAccChangeNtf(la.getLoginid(), 0);
+        }
+    }
+
+    private void addLoginTaaccount(OrganRoleModifyParam vo, Systemmanager opeartion) {
+        Loginaccount la = iLoginaccountMapper.selectOne(new QueryWrapper<Loginaccount>().eq("userid", vo.getUserid()));
+        Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>()
+                .eq("userid", vo.getUserid())
+                .eq("ismain", 1));
+        if (ta != null && la != null) {
+            Logintaaccount lta = iLogintaaccountMapper.selectOne(new QueryWrapper<Logintaaccount>()
+                    .eq("loginid", la.getLoginid())
+                    .eq("accountid", ta.getAccountid()));
+            if (lta == null) {
+                // 不存在则添加
+                lta = new Logintaaccount();
+                lta.setLoginid(la.getLoginid());
+                lta.setAccountid(ta.getAccountid());
+                lta.setModifytime(new Date());
+                lta.setModifierid(opeartion.getAutoid());
+                iLogintaaccountMapper.insert(lta);
+            }
+        }
+    }
+
+    private void addMarketRightToMainAccount(OrganRoleModifyParam vo, Systemmanager opeartion, List<TaAccountMarketVo> dtype) {
+        //默认资金账户附上所选市场权限 0-否,1-是
+        Systemparam sysparm = iSystemparamMapper.selectOne(new QueryWrapper<Systemparam>().eq("paraCode", SysConstants.SYSPARAM_CODE_ISTAACCOUNTMARKETROLE));
+        if (sysparm != null && "1".equals(sysparm.getParamvalue())) {
+            if (dtype != null && !dtype.isEmpty()) {
+                Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>()
+                        .eq("userid", vo.getUserid())
+                        .eq("ismain", 1));
+                //删除
+                iTaaccountmarketMapper.delete(new QueryWrapper<Taaccountmarket>().eq("accountid", ta.getAccountid()));
+
+                for (TaAccountMarketVo td : dtype) {
+                    if (td != null && td.getMarketId() != null) {
+                        Taaccountmarket tm = new Taaccountmarket();
+                        tm.setAccountid(ta.getAccountid());
+                        tm.setMarketid(td.getMarketId());
+                        tm.setModifytime(new Date());
+                        tm.setModifierid(opeartion.getAutoid());
+                        tm.setSpotrighttype(td.getSpotRightType());
+                        tm.setBuyspotrighttype(td.getDType());
+                        iTaaccountmarketMapper.insert(tm);
+                    }
+                }
+            }
+        }
+    }
+
+    private void generatePCLoginAccount(OrganRoleModifyParam vo, Systemmanager opeartion) {
+        Long loginid = null; //新加的登录账号ID
+        Systemparam sysparm = iSystemparamMapper.selectOne(new QueryWrapper<Systemparam>().eq("paraCode", SysConstants.SYSPARAM_CODE_ISAUTOEXCUTELOGIN));
+        //自营会员是否自动生成登录账户
+        if (sysparm != null && "1".equals(sysparm.getParamvalue())) {
+            List<Loginaccount> loginList = iLoginaccountMapper.selectList(new QueryWrapper<Loginaccount>()
+                    .eq("userid", vo.getUserid())
+                    .eq("loginusertype", 2));
+            if (loginList.isEmpty()) {
+                String defaultPwd = "123456";
+
+                Systemparam defaultPwdParam = iSystemparamMapper.selectOne(new QueryWrapper<Systemparam>().eq("paraCode", SysConstants.SYSPARAM_CODE_DEFAULT_PWD));
+                if (defaultPwdParam != null && !defaultPwdParam.getParamvalue().equals("")) {
+                    defaultPwd = defaultPwdParam.getParamvalue();
+                }
+                //添加自营会员登录账号
+                loginid = tradingAccountService.getNewLoginIdByUserid(vo.getUserid(), 2);
+                Loginaccount la = new Loginaccount();
+                la.setLoginfailnum(0);
+                la.setLoginid(loginid);
+                la.setLoginstatus(1);
+                la.setLoginusertype(2);
+                la.setPassword(EncryptionUtils.encryptSHA(loginid.toString() + defaultPwd));
+                la.setUserid(vo.getUserid());
+                la.setModifierid(opeartion.getAutoid());
+                la.setModifytime(new Date());
+                la.setHasupdatedpwd(0);
+                iLoginaccountMapper.insert(la);
+            } else {
+                for (Loginaccount la : loginList) {
+                    la.setLoginstatus(1);
+                    iLoginaccountMapper.update(la, new QueryWrapper<Loginaccount>().eq("loginid", la.getLoginid()));
+                }
+            }
+        }
+    }
+
+    private void addAreaRoleModifyFee(OrganRoleModifyParam vo, Systemmanager opeartion, HttpServletRequest request) {
+        Arearole or = new Arearole();
+        or.setCreatetime(new Date());
+        or.setCreatorid(opeartion.getAutoid());
+        or.setUserid(vo.getUserid());
+        or.setRoletype(vo.getRoleid());
+        or.setTradeaccountid(vo.getAccountid());
+        or.setModifierid(opeartion.getAutoid());
+        or.setModifytime(new Date());
+        iArearoleMapper.insert(or);
+
+        if (vo.getRoleid() == SysEnums.OrganRole.operate.getCode().intValue()) {
+            if (CollectionUtils.isNotEmpty(vo.getMarketids())) {
+                iMarketMapper.updateExchareaid(vo.getMarketids(), vo.getUserid());
+                Systemparam systemparam = iSystemparamMapper.selectOne(new QueryWrapper<Systemparam>().eq("PARAMCODE", Constants.SYSPARAM_ID_MARKET));
+                if (systemparam != null) {
+                    systemparam.setParamvalue(String.valueOf(System.currentTimeMillis()));
+                    systemparam.setUpdatetime(new Date());
+                    iSystemparamMapper.update(new QueryWrapper<Systemparam>().eq("PARAMCODE", Constants.SYSPARAM_ID_MARKET));
+                }
+            }
+        }
+
+        //清除原数据
+        iArearoledivideconfigMapper.delete(new QueryWrapper<Arearoledivideconfig>()
+                .eq("userid", vo.getUserid())
+                .eq("roletype", vo.getRoleid()));
+        //分润
+        if (vo.getFee() != null && !vo.getFee().isEmpty()) {
+            int size = vo.getFee().size();
+            for (int i = 0; i < size; i++) {
+                Arearoledivideconfig fee = vo.getFee().get(i);
+                if (fee.getTradefeeid() == null || fee.getFeealgorithm() == null ||
+                        fee.getDividevalue() == null) {
+                    continue;
+                }
+                if (fee.getFeealgorithm() == 1 && fee.getDividevalue().compareTo(new BigDecimal(100)) > 0) {
+                    throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_035.getCode(), request.getHeader("Accept-Language"));
+                }
+                if (fee.getFeealgorithm() == 1) {
+                    fee.setDividevalue(fee.getDividevalue().divide(new BigDecimal(100)));
+                }
+                fee.setUserid(or.getUserid());
+                fee.setMarketid(0L);
+                fee.setGoodsid(0L);
+                fee.setRoletype(or.getRoletype());
+                fee.setCreatetime(new Date());
+                fee.setCreatorid(opeartion.getAutoid());
+                fee.setModifytime(new Date());
+                fee.setModifierid(opeartion.getAutoid());
+                iArearoledivideconfigMapper.insert(fee);
+            }
+        }
+
+        //商品个性化配置
+        if (vo.getPfee() != null && !vo.getPfee().isEmpty()) {
+            int size = vo.getPfee().size();
+            for (int i = 0; i < size; i++) {
+                Arearoledivideconfig fee = vo.getPfee().get(i);
+                if (fee.getTradefeeid() == null || fee.getFeealgorithm() == null ||
+                        fee.getDividevalue() == null) {
+                    continue;
+                }
+                if (fee.getFeealgorithm() == 1 && fee.getDividevalue().compareTo(new BigDecimal(100)) > 0) {
+                    throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_035.getCode(), request.getHeader("Accept-Language"));
+                }
+                if (fee.getFeealgorithm() == 1) {
+                    fee.setDividevalue(fee.getDividevalue().divide(new BigDecimal(100)));
+                }
+                fee.setUserid(or.getUserid());
+                fee.setRoletype(or.getRoletype());
+                fee.setCreatetime(new Date());
+                fee.setCreatorid(opeartion.getAutoid());
+                fee.setModifytime(new Date());
+                fee.setModifierid(opeartion.getAutoid());
+                iArearoledivideconfigMapper.insert(fee);
+            }
+        }
+
+        String l = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "002");
+        if ("2".equals(l)) {
+            Systemmanager user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                    .eq("areauserid", vo.getUserid())
+                    .eq("isdefault", 1));
+            if (user != null) {
+                Roleuser ur = new Roleuser();
+                ur.setRoleid(Long.valueOf(vo.getRoleid()));
+                ur.setManagerid(user.getAutoid());
+                ur.setRoletype(3);
+                iRoleuserMapper.insert(ur);
+            }
+        }
+
+        // 运营机构权限变更为可查询有商品权限的交易单据 2024-01-15
+        updateOperateGoodsConfig(vo);
+    }
+
+    private void updateOperateGoodsConfig(OrganRoleModifyParam vo) {
+        // 运营机构权限变更为可查询有商品权限的交易单据 2024-01-15
+        if (vo.getRoleid().equals(2) && vo.getUserid() != null) {
+            //运营机构删除商品配置表记录 AreaGoodsConfig 2024-01-15
+            iArearolemarketMapper.deleteOperateGoodsConfig(vo.getUserid());
+
+            //添加新的运营机构商品配置 AreaGoodsConfig
+            if (CollectionUtils.isNotEmpty(vo.getGoodsids())) {
+                List<Map<String, Object>> insertList = new ArrayList<>();
+                for (Long goodsid : vo.getGoodsids()) {
+                    Map<String, Object> configMap = new HashMap<>();
+                    configMap.put("userid", vo.getUserid());
+                    configMap.put("roletype", 2); // 运营机构
+                    configMap.put("goodsid", goodsid);
+                    insertList.add(configMap);
+                }
+                iArearolemarketMapper.insertOperateGoodsConfigBatch(insertList);
+            }
+        }
+    }
+
+    private void sendMsg(Taaccount ta, Integer type) {
+        NotifyMI1.UserChangeNtf.Builder builder = NotifyMI1.UserChangeNtf.newBuilder();
+        Common.MessageHead.Builder hd = Common.MessageHead.newBuilder();
+        PublicMI1.NotifyHead.Builder nhd = PublicMI1.NotifyHead.newBuilder();
+        NotifyMI1.AccountDataChange.Builder ac = NotifyMI1.AccountDataChange.newBuilder();
+
+        nhd.addAccountIDs(ta.getAccountid());
+        nhd.setNtfMode(0);
+        builder.setNtfHeader(nhd);
+
+        hd.setAccountID(ta.getAccountid());
+        hd.setFunCode(FunCodeConstants.FunCode_Trade_UserChangeNtf);
+        hd.setClientTime(System.currentTimeMillis());
+        builder.setHeader(hd);
+
+        ac.setAccountId(ta.getAccountid());
+        ac.setChangeType(type);
+        builder.addAccountChange(ac);
+
+        builder.setUserId(ta.getUserid());
+        builder.setChangeType(type);
+
+        byte[] body = ProtoHelper.getNTAS(builder.build().toByteArray(), FunCodeConstants.FunCode_Trade_UserChangeNtf);
+        rabbitTemplate.send(SysConstants.RabbitNtfKey, new Message(body, new MessageProperties()));
+        log.debug("edit account----{}", builder.build().toString());
+    }
+
+    private void getRiskFromRedis(List<TaAccountQueryResult> records) {
+        try {
+            for (TaAccountQueryResult record : records) {
+                byte[] valuebts = redisServiceUtil.getBytes("risk:" + record.getAccountId());
+                AccountRedis.AccRiskInfo accRiskInfo = null;
+                if (valuebts != null) {
+                    accRiskInfo = AccountRedis.AccRiskInfo.newBuilder().mergeFrom(valuebts).build();
+                    log.info("risk:" + record.getAccountId() + "--------------accRiskInfo:" + accRiskInfo);
+                    record.setCurRiskRate(BigDecimal.valueOf(accRiskInfo.getCURRISKRATE()).multiply(BigDecimal.valueOf(100d)).setScale(2, RoundingMode.DOWN));
+                } else {
+                    // Redis无记录,风险率、浮动盈亏设置为0
+                    record.setCurRiskRate(BigDecimal.ZERO);
+                }
+            }
+        } catch (Exception e) {
+            log.error("设置风险率失败,请检查!");
+        }
+    }
+
+    private void setReadOnly(Long userid) {
+        //查询会员默认管理端,改回正常
+        Systemmanager manage = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                .eq("areauserid", userid)
+                .eq("isdefault", 1));
+        manage.setManagerstatus(1);
+        iSystemmanagerMapper.update(manage, new QueryWrapper<Systemmanager>().eq("autoid", manage.getAutoid()));
+        //替换掉对应的角色
+        List<Roleuser> ullist = iRoleuserMapper.selectList(new QueryWrapper<Roleuser>().eq("managerid", manage.getAutoid()));
+        for (Roleuser ul : ullist) {
+            Roleuser nul = new Roleuser();
+            if (ul.getRoleid() == 2) {
+                nul.setRoleid(32L);
+            } else if (ul.getRoleid() == 3) {
+                nul.setRoleid(33L);
+            } else if (ul.getRoleid() == 4) {
+                nul.setRoleid(34L);
+            } else if (ul.getRoleid() == 5) {
+                nul.setRoleid(35L);
+            } else if (ul.getRoleid() == 6) {
+                nul.setRoleid(36L);
+            } else if (ul.getRoleid() == 7) {
+                nul.setRoleid(37L);
+            } else if (ul.getRoleid() == 8) {
+                nul.setRoleid(38L);
+            } else if (ul.getRoleid() == 9) {
+                nul.setRoleid(39L);
+            } else if (ul.getRoleid() == 10) {
+                nul.setRoleid(40L);
+            } else if (ul.getRoleid() == 11) {
+                nul.setRoleid(41L);
+            } else if (ul.getRoleid() == 13) {
+                nul.setRoleid(43L);
+            } else if (ul.getRoleid() == 14) {
+                nul.setRoleid(44L);
+            } else if (ul.getRoleid() == 15) {
+                nul.setRoleid(45L);
+            }
+            if (nul.getRoleid() != null && nul.getRoleid() > 0) {
+                nul.setManagerid(ul.getManagerid());
+                nul.setRoletype(ul.getRoletype());
+                iRoleuserMapper.delete(new QueryWrapper<Roleuser>()
+                        .eq("managerid", ul.getManagerid())
+                        .eq("roleid", ul.getRoleid())
+                        .eq("roletype", ul.getRoletype())
+                );
+                iRoleuserMapper.insert(nul);
+            }
+        }
+    }
+
+
+    private void setRoleBack(Long userid) {
+        //查询会员默认管理端,改回正常
+        Systemmanager manage = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                .eq("areauserid", userid)
+                .eq("isdefault", 1));
+        manage.setManagerstatus(1);
+        iSystemmanagerMapper.update(manage, new QueryWrapper<Systemmanager>().eq("autoid", manage.getAutoid()));
+        //替换掉对应的角色
+        List<Roleuser> ullist = iRoleuserMapper.selectList(new QueryWrapper<Roleuser>().eq("managerid", manage.getAutoid()));
+        for (Roleuser ul : ullist) {
+            Roleuser nul = new Roleuser();
+            if (ul.getRoleid() == 32) {
+                nul.setRoleid(2L);
+            } else if (ul.getRoleid() == 33) {
+                nul.setRoleid(3L);
+            } else if (ul.getRoleid() == 34) {
+                nul.setRoleid(4L);
+            } else if (ul.getRoleid() == 35) {
+                nul.setRoleid(5L);
+            } else if (ul.getRoleid() == 36) {
+                nul.setRoleid(6L);
+            } else if (ul.getRoleid() == 37) {
+                nul.setRoleid(7L);
+            } else if (ul.getRoleid() == 38) {
+                nul.setRoleid(8L);
+            } else if (ul.getRoleid() == 39) {
+                nul.setRoleid(9L);
+            } else if (ul.getRoleid() == 40) {
+                nul.setRoleid(10L);
+            } else if (ul.getRoleid() == 41) {
+                nul.setRoleid(11L);
+            } else if (ul.getRoleid() == 43) {
+                nul.setRoleid(13L);
+            } else if (ul.getRoleid() == 44) {
+                nul.setRoleid(14L);
+            } else if (ul.getRoleid() == 45) {
+                nul.setRoleid(15L);
+            }
+            if (nul.getRoleid() != null && nul.getRoleid() > 0) {
+                nul.setManagerid(ul.getManagerid());
+                nul.setRoletype(ul.getRoletype());
+                iRoleuserMapper.delete(new QueryWrapper<Roleuser>()
+                        .eq("managerid", ul.getManagerid())
+                        .eq("roleid", ul.getRoleid())
+                        .eq("roletype", ul.getRoletype())
+                );
+                iRoleuserMapper.insert(nul);
+            }
+        }
+    }
 }

+ 39 - 39
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/OrganSonServiceService.java

@@ -724,6 +724,45 @@ public class OrganSonServiceService implements IOrganSonService {
         Useraccount organ = new Useraccount();
         String userid = createUserid(param.getParentuserid(), param.getUserid(), 4);
         organ.setUserid(Long.valueOf(userid));
+        //资金账户  多币种----
+        List<Enumdicitem> li = iEnumdicitemMapper.selectList(new QueryWrapper<Enumdicitem>()
+                .eq("enumdiccode", "currency")
+                .eq("enumitemstatus", 1));
+
+        BankSystemconfig config = iBankSystemconfigMapper.selectOne(new QueryWrapper<BankSystemconfig>().eq("CONFIGID", SysConstants.BANK_CONFIG_ACTIVATION));
+        lPwd = EncryptionUtils.encryptSHA(lPwd);
+        List<Taaccount> taaccounts = new ArrayList<>();
+        for (Enumdicitem enumdicitem : li) {
+            String manageid = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "001");
+            Long accountno = Long.valueOf(manageid + CommonUtil.addZero(String.valueOf(idGeneratorUtils.getGeneratorID(Taaccount.class)), 9));
+            Taaccount ac = new Taaccount();
+            ac.setAccountid(accountno);
+            ac.setUserid(organ.getUserid());
+            ac.setPassword(lPwd);
+            ac.setCurrencyid(enumdicitem.getEnumitemname());
+            //资金账号是否需要激活
+            if (config != null && config.getValidstatus() == 1 && config.getConfigvalue().equals("1") && ac.getIsmain() == 1) {
+                ac.setTradestatus(SysEnums.TradeStatusEnum.TOBEACTIVATE.getType());
+            } else {
+                ac.setTradestatuschangetime(new Date()); //激活时间
+            }
+            if (1 == enumdicitem.getEnumitemname()) {
+                organ.setReckonaccountid(accountno);
+            }
+            ac.setRelateduserid(organ.getUserid());
+            ac.setRelatedaccountstatus(1);
+            taaccounts.add(ac);
+            iTaaccountMapper.insert(ac);
+
+            Userreckonaccount ura = new Userreckonaccount();
+            ura.setCurrencyid(ac.getCurrencyid());
+            ura.setUserid(ac.getUserid());
+            ura.setReckonaccountid(ac.getAccountid());
+            ura.setUpdatetime(new Date());
+            ura.setDefaultaccounttype(1);
+            iUserreckonaccountMapper.insert(ura);
+        }
+
         organ.setRefernum(generateReferNum());
         String sysparm = iCommonService.getSysparmById("063");
         Useraccount parent = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", param.getParentuserid()));
@@ -818,45 +857,6 @@ public class OrganSonServiceService implements IOrganSonService {
             iRoleuserMapper.insert(ur);
         }
 
-        //资金账户  多币种----
-        List<Enumdicitem> li = iEnumdicitemMapper.selectList(new QueryWrapper<Enumdicitem>()
-                .eq("enumdiccode", "currency")
-                .eq("enumitemstatus", 1));
-
-        BankSystemconfig config = iBankSystemconfigMapper.selectOne(new QueryWrapper<BankSystemconfig>().eq("CONFIGID", SysConstants.BANK_CONFIG_ACTIVATION));
-        lPwd = EncryptionUtils.encryptSHA(lPwd);
-        List<Taaccount> taaccounts = new ArrayList<>();
-        for (int i = 0; i < li.size(); i++) {
-            String manageid = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "001");
-            Long accountno = Long.valueOf(manageid + CommonUtil.addZero(String.valueOf(idGeneratorUtils.getGeneratorID(Taaccount.class)), 9));
-            Taaccount ac = new Taaccount();
-            ac.setAccountid(accountno);
-            ac.setUserid(organ.getUserid());
-            ac.setPassword(lPwd);
-            ac.setCurrencyid(li.get(i).getEnumitemname());
-            //资金账号是否需要激活
-            if (config != null && config.getValidstatus() == 1 && config.getConfigvalue().equals("1") && ac.getIsmain() == 1) {
-                ac.setTradestatus(SysEnums.TradeStatusEnum.TOBEACTIVATE.getType());
-            } else {
-                ac.setTradestatuschangetime(new Date()); //激活时间
-            }
-            if (1 == li.get(i).getEnumitemname()) {
-                organ.setReckonaccountid(accountno);
-            }
-            ac.setRelateduserid(organ.getUserid());
-            ac.setRelatedaccountstatus(1);
-            taaccounts.add(ac);
-            iTaaccountMapper.insert(ac);
-
-            Userreckonaccount ura = new Userreckonaccount();
-            ura.setCurrencyid(ac.getCurrencyid());
-            ura.setUserid(ac.getUserid());
-            ura.setReckonaccountid(ac.getAccountid());
-            ura.setUpdatetime(new Date());
-            ura.setDefaultaccounttype(1);
-            iUserreckonaccountMapper.insert(ura);
-        }
-
         Integer reletype = systemmanager.getReletype();
         String menucode = "";
         if (reletype.equals(1))

+ 3 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/ProfitSharServiceImpl.java

@@ -182,7 +182,9 @@ public class ProfitSharServiceImpl implements IProfitSharService {
                 }
             }
         }
-        List<Marketvo> mks = iMarketMapper.getMarketsNameByUseridAndrole(uid, 7);
+        List<Integer> r = new ArrayList<>() ;
+        r.add(7);
+        List<Market> mks = iMarketMapper.getMarketsNameByUseridAndrole(uid, r);
         for (int i = 0; i < mks.size(); i++) {
             if (mks.get(i).getMarketid() < 1000 || !trademodeMap.containsKey(mks.get(i).getTrademode())) {
                 mks.remove(i);

+ 0 - 4
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/SystemRoleServiceImpl.java

@@ -98,10 +98,6 @@ public class SystemRoleServiceImpl implements ISystemRoleService {
         systemRoleVo.setAreauserid(systemmanager.getAreauserid());
         IPage<SystemRoleVo> page = new Page<>(pageNum, pageSize);
         IPage<SystemRoleVo> systemRoleVoPage = iSystemmanagerroleMapper.selectByPage(page, systemRoleVo);
-
-        systemRoleVoPage.getRecords().forEach(a -> {
-            a.setModifiername(systemmanager.getUsername());
-        });
         //列表返回
         PageResult<SystemRoleVo> pageResult = new PageResult<>();
         pageResult.setCode(Constants.Success_Code_Design);

+ 1 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/SystemmanagerServiceImpl.java

@@ -400,7 +400,7 @@ public class SystemmanagerServiceImpl extends ServiceImpl<ISystemmanagerMapper,
         currentUser.setPwdexpdate(new Date());
         iSystemmanagerMapper.update(currentUser, new QueryWrapper<Systemmanager>().eq("AUTOID", currentUser.getAutoid()));
         //写入日志
-        writeOperateLog(SysConstants.PART_CODE_ORGZ, "重置密码id=" + currentUser.getLogincode(), currentUser, null, null, null);
+        writeOperateLog(SysConstants.PART_CODE_ORGZ, "重置密码id=" + currentUser.getLogincode(), systemmanager, null, null, null);
     }
 
     public void writeOperateLog(String resourceCode, String content, Systemmanager currentUser, String remark, String oldvalue, String newvalue) {

+ 127 - 139
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/TaaccountServiceImpl.java

@@ -21,6 +21,7 @@ import com.muchinfo.mtp3pojos.vo.ProtoErrorCodes;
 import com.muchinfo.mtp3pojos.vo.bankaccountsign.AccountSignQueryParam;
 import com.muchinfo.mtp3pojos.vo.bankaccountsign.AccountSignQueryResult;
 import com.muchinfo.mtp3pojos.vo.investor.*;
+import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryResult;
 import com.muchinfo.mtp3pojos.vo.taaccount.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,8 +35,11 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 
+import static net.sf.jsqlparser.util.validation.metadata.NamedObject.user;
+
 
 /**
  * <p>
@@ -122,8 +126,8 @@ public class TaaccountServiceImpl extends ServiceImpl<ITaaccountMapper, Taaccoun
         if (systemmanager.getReletype() != 1 && !iCommonService.checkIsAreaSon2(systemmanager.getAreauserid(), taaccount.getUserid())) {
             return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
         }
-        //计算金额
-        dealAmount(taaccount);
+        //获取风险率
+        getRiskFromRedis(taaccount);
         //taAccount赋值
         setAccountMessage(taAccountQueryResult, taaccount);
         //银行信息
@@ -427,9 +431,9 @@ public class TaaccountServiceImpl extends ServiceImpl<ITaaccountMapper, Taaccoun
         } else {
             IPage<Taaccount> page = new Page<>(pageNo, pageSize);
             IPage<Taaccount> taaccountIPage = iTaaccountMapper.selectPage(page, queryWrapper);
-            //处理金额
+            //获取风险率
             taaccountIPage.getRecords().forEach(a -> {
-                dealAmount(a);
+                getRiskFromRedis(a);
                 a.setAccountname(iUseraccountMapper.selectOrganName(a.getUserid()));
             });
             pageResult.setCode(Constants.Success_Code_Design);
@@ -463,6 +467,24 @@ public class TaaccountServiceImpl extends ServiceImpl<ITaaccountMapper, Taaccoun
         }
         iTaaccountMapper.update(old, new QueryWrapper<Taaccount>().eq("accountid", old.getAccountid()));
 
+        Systemmanagerlog syslog = new Systemmanagerlog();
+        syslog.setUserid(systemmanager.getAutoid());
+        syslog.setReletype(systemmanager.getReletype());
+        syslog.setLogincode(systemmanager.getLogincode());
+        syslog.setUsername(systemmanager.getUsername());
+        syslog.setParentuserid(systemmanager.getAreauserid());
+        syslog.setOperatetime(new Date());
+        syslog.setIp(systemmanager.getLoginip());
+        syslog.setResourcecode(SysConstants.OPERATION_TAA);
+        syslog.setContent("修改资金账户{\"accountid\":" + old.getAccountid() + "}成功");
+        syslog.setOldvalue("{\"accountid\":" + old.getAccountid() + ",\"userid\":" + old.getUserid() + "}");
+
+        syslog.setNewvalue("{\"accountid\":" + old.getAccountid() + ","
+                + "\"userid\":" + old.getUserid() + ","
+                + "\"tradestatus\":" + updateParam.getTradestatus() + ","
+                + "\"relatedaccountstatus\":" + old.getRelatedaccountstatus() + ","
+                + "\"outthreshold\":" + old.getOutthreshold() + "\"}");
+
         try {
             //发送用户变更通知
             if (Objects.equals(oldtradestatus, SysEnums.TradeStatusEnum.CANCELED.getType()))
@@ -990,163 +1012,129 @@ public class TaaccountServiceImpl extends ServiceImpl<ITaaccountMapper, Taaccoun
         return lt;
     }
 
-    private void dealAmount(Taaccount vo) {
+    private void getRiskFromRedis(Taaccount record) {
         try {
             String floatplFlag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "113");
             String creditFlag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "946");
             String closeplFlag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "112");
             String inamountFlag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "111");
-            String accountid = vo.getAccountid().toString();
-            byte[] valuebts = redisServiceUtil.getBytes("risk:" + accountid);
-            if (valuebts != null) {
-                AccRiskInfo accRiskInfo = AccRiskInfo.newBuilder().mergeFrom(valuebts).build();
-                logger.info("risk:" + accountid + "--------------accRiskInfo:" + accRiskInfo);
-                vo.setCur_risk_rate(BigDecimal.valueOf(accRiskInfo.getCURRISKRATE()).multiply(BigDecimal.valueOf(100d)).setScale(2, BigDecimal.ROUND_DOWN));
-                vo.setFloatpl(BigDecimal.valueOf(accRiskInfo.getTOTALFLOATPL()));
-                //可用资金:
-                //      账户总浮动盈亏为负:
-                //      =期末余额+总浮动盈亏(收益权)-占用-冻结-其它冻结-手续费冻结-出金冻结
-                //		账户总浮动盈亏为正 且 113 = 0 :
-                //		=期末余额-占用-冻结-其它冻结-手续费冻结-出金冻结
-                //		账户总浮动盈亏为正 且 113 = 1 :
-                //		=期末余额+总浮动盈亏(收益权)-占用-冻结-其它冻结-手续费冻结-出金冻结
-                //		*系统参数”113“(当日浮动盈利是否可用) 0:不可用 1:可用
-                if (accRiskInfo.getTOTALFLOATPL() < 0) {
-                    vo.setAvaiablemoney(vo.getCurrentbalance().add(vo.getFloatpl()).subtract(vo.getUsedmargin())
-                            .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
-                            .subtract(vo.getOutamountfreeze()));
-                } else {
-                    if ("1".equals(floatplFlag)) {
-                        vo.setAvaiablemoney(vo.getCurrentbalance().add(vo.getFloatpl()).subtract(vo.getUsedmargin())
-                                .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
-                                .subtract(vo.getOutamountfreeze()));
-                    } else {
-                        vo.setAvaiablemoney(vo.getCurrentbalance().subtract(vo.getUsedmargin())
-                                .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
-                                .subtract(vo.getOutamountfreeze()));
-                    }
-                }
-                //根据系统参数计算s1(946	是否可设置收益权市场的交易授信 0:不显示 1:显示 默认0)
-                //946 = 0:
-                //s1=期末余额-交易占用-交易冻结-手续费冻结-出金冻结-其它冻结-授信金额-其它授信金额+浮动盈亏-[平仓盈利(正值)](当日平仓盈利不可出)-[浮动盈利(正值)](当日浮动盈利不可出)
-                //946 = 1:
-                //s1=期末余额-交易占用-交易冻结-手续费冻结-出金冻结-其它冻结-授信金额-其它授信金额+浮动盈亏-[平仓盈利(正值)](当日平仓盈利不可出)-[浮动盈利(正值)](当日浮动盈利不可出)
-                //s2=期初余额+子账号期初余额汇总+当日出金(负值)-出金冻结+[当日入金](当日入金可出)
-                //可出资金=min(s1,s2)
-                BigDecimal s1 = BigDecimal.ZERO;
-                if ("1".equals(creditFlag)) {
-                    s1 = vo.getCurrentbalance().subtract(vo.getUsedmargin())
-                            .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
-                            .subtract(vo.getOutamountfreeze()).subtract(vo.getOthercredit()).add(vo.getFloatpl());
-
-                } else {
-                    s1 = vo.getCurrentbalance().subtract(vo.getUsedmargin())
-                            .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
-                            .subtract(vo.getOutamountfreeze()).subtract(vo.getMortgagecredit()).subtract(vo.getOthercredit())
-                            .add(vo.getFloatpl());
-                }
-                if ("0".equals(closeplFlag) && vo.getClosepl().compareTo(BigDecimal.ZERO) > 0) {
-                    s1 = s1.subtract(vo.getClosepl());
-                }
-                if ("0".equals(floatplFlag) && vo.getFloatpl().compareTo(BigDecimal.ZERO) > 0) {
-                    s1 = s1.subtract(vo.getFloatpl());
-                }
-                BigDecimal s2 = vo.getBalance();
-                if (vo.getOutamount().compareTo(BigDecimal.ZERO) < 0) {
-                    s2 = s2.add(vo.getOutamount());
-                }
-                s2.subtract(vo.getOutamountfreeze());
-                if ("1".equals(inamountFlag)) {
-                    s2 = s2.add(vo.getInamount());
-                }
-                if ("0".equals(closeplFlag)) {
-                    vo.setAvaiableoutmoney(s1.compareTo(s2) > 0 ? s2 : s1);
-                } else {
-                    vo.setAvaiableoutmoney(s1);
-                }
 
-                if (vo.getOutthreshold() != null) {
-                    if (vo.getOutthreshold().compareTo(vo.getAvaiableoutmoney()) > -1) {
-                        vo.setAvaiableoutmoney(BigDecimal.ZERO);
-                    } else {
-                        vo.setAvaiableoutmoney(vo.getAvaiableoutmoney().subtract(vo.getOutthreshold()));
-                    }
-                }
-
-                if (BigDecimal.ZERO.compareTo(vo.getAvaiableoutmoney()) > -1) {
-                    vo.setAvaiableoutmoney(BigDecimal.ZERO);
-                }
-
-                //当前净值= 期末余额+浮动盈亏(收益权)
-                vo.setFloatnetvalue(vo.getCurrentbalance().add(vo.getFloatpl()));
+            byte[] valuebts = redisServiceUtil.getBytes("risk:" + record.getAccountid());
+            AccountRedis.AccRiskInfo accRiskInfo = null;
+            if (valuebts != null) {
+                accRiskInfo = AccountRedis.AccRiskInfo.newBuilder().mergeFrom(valuebts).build();
+                logger.info("risk:" + record.getAccountid() + "--------------accRiskInfo:" + accRiskInfo);
 
+                record.setCur_risk_rate(BigDecimal.valueOf(accRiskInfo.getCURRISKRATE()).multiply(BigDecimal.valueOf(100d)).setScale(2, RoundingMode.DOWN));
+                record.setFloatpl(BigDecimal.valueOf(accRiskInfo.getTOTALFLOATPL()));
             } else {
-                vo.setAvaiablemoney(vo.getCurrentbalance().subtract(vo.getUsedmargin())
-                        .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
-                        .subtract(vo.getOutamountfreeze()));
-
-                BigDecimal s1;
+                // Redis无记录,风险率、浮动盈亏设置为0
+                record.setCur_risk_rate(BigDecimal.ZERO);
+                record.setFloatpl(BigDecimal.ZERO);
+            }
 
-                if ("1".equals(creditFlag)) {
-                    s1 = vo.getCurrentbalance().subtract(vo.getUsedmargin())
-                            .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
-                            .subtract(vo.getOutamountfreeze()).subtract(vo.getOthercredit());
-                } else {
-                    s1 = vo.getCurrentbalance().subtract(vo.getUsedmargin())
-                            .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
-                            .subtract(vo.getOutamountfreeze()).subtract(vo.getMortgagecredit()).subtract(vo.getOthercredit());
-                }
-                vo.setCur_risk_rate(new BigDecimal("0.00"));
-                vo.setFloatpl(BigDecimal.ZERO);
-                //当前净值= 期末余额+浮动盈亏(收益权)
-                vo.setFloatnetvalue(vo.getCurrentbalance().add(vo.getFloatpl()));
+            // 更新可用
+            setAvaliableAmount(record, floatplFlag);
 
-                if ("0".equals(closeplFlag) && vo.getClosepl().compareTo(BigDecimal.ZERO) > 0) {
-                    s1 = s1.subtract(vo.getClosepl());
-                }
-
-                BigDecimal s2 = vo.getBalance();
-                if (vo.getOutamount().compareTo(BigDecimal.ZERO) < 0) {
-                    s2 = s2.add(vo.getOutamount());
-                }
-                s2.subtract(vo.getOutamountfreeze());
-                if ("1".equals(inamountFlag)) {
-                    s2 = s2.add(vo.getInamount());
-                }
-                if ("0".equals(closeplFlag)) {
-                    vo.setAvaiableoutmoney(s1.compareTo(s2) > 0 ? s2 : s1);
-                } else {
-                    vo.setAvaiableoutmoney(s1);
-                }
+            // 更新可出
+            setAvaliableOutAmount(record, floatplFlag, creditFlag, closeplFlag, inamountFlag);
 
+            // 更新当前净值= 期末余额+浮动盈亏(收益权)
+            record.setFloatnetvalue(record.getCurrentbalance().add(record.getFloatpl()));
 
-                if (vo.getOutthreshold() != null) {
-                    if (vo.getOutthreshold().compareTo(vo.getAvaiableoutmoney()) > -1) {
-                        vo.setAvaiableoutmoney(BigDecimal.ZERO);
-                    } else {
-                        vo.setAvaiableoutmoney(vo.getAvaiableoutmoney().subtract(vo.getOutthreshold()));
-                    }
-                }
-                if (BigDecimal.ZERO.compareTo(vo.getAvaiableoutmoney()) > -1) {
-                    vo.setAvaiableoutmoney(BigDecimal.ZERO);
-                }
-            }
             //获取子账户信息
-            List<Taaccount> taaccounts = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>().eq("parentaccountid", vo.getAccountid()));
+            List<Taaccount> taaccounts = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>().eq("parentaccountid", record.getAccountid()));
             if (CollectionUtils.isNotEmpty(taaccounts)) {
                 for (int j = 0; j < taaccounts.size(); j++) {
                     String accountid_ = taaccounts.get(j).getAccountid().toString();
                     byte[] valuebtsChild = redisServiceUtil.getBytes("risk:" + accountid_);
                     if (valuebtsChild != null) {
-                        AccRiskInfo accRiskInfo = AccRiskInfo.newBuilder().mergeFrom(AccRiskInfo.parseFrom(valuebtsChild)).build();
-                        taaccounts.get(j).setCur_risk_rate(BigDecimal.valueOf(accRiskInfo.getCURRISKRATE()).multiply(BigDecimal.valueOf(100d)).setScale(2, BigDecimal.ROUND_DOWN));
+                        AccRiskInfo accRiskInfo1 = AccRiskInfo.newBuilder().mergeFrom(AccRiskInfo.parseFrom(valuebtsChild)).build();
+                        taaccounts.get(j).setCur_risk_rate(BigDecimal.valueOf(accRiskInfo1.getCURRISKRATE()).multiply(BigDecimal.valueOf(100d)).setScale(2, RoundingMode.DOWN));
                     }
                 }
             }
-            vo.setChildren(taaccounts);
         } catch (Exception e) {
-            e.printStackTrace();
-            logger.error("资金账户获取详情信息失败。失败原因:" + e);
+            logger.error("设置风险率失败,请检查!");
+        }
+    }
+
+    private void setAvaliableOutAmount(Taaccount vo, String floatplFlag, String creditFlag, String closeplFlag, String inamountFlag) {
+        //根据系统参数计算s1(946	是否可设置收益权市场的交易授信 0:不显示 1:显示 默认0)
+        //946 = 0:
+        //s1=期末余额-交易占用-交易冻结-手续费冻结-出金冻结-其它冻结-授信金额-其它授信金额+浮动盈亏-[平仓盈利(正值)](当日平仓盈利不可出112)-[浮动盈利(正值)](当日浮动盈利不可出113)
+        //946 = 1:
+        //s1=期末余额-交易占用-交易冻结-手续费冻结-出金冻结-其它冻结-授信金额-其它授信金额+浮动盈亏-[平仓盈利(正值)](当日平仓盈利不可出112)-[浮动盈利(正值)](当日浮动盈利不可出113)
+        //s2=期初余额+子账号期初余额汇总+当日出金(负值)-出金冻结+[当日入金](当日入金可出111)
+        //可出资金=min(s1,s2)
+        BigDecimal s1 = BigDecimal.ZERO;
+        if ("1".equals(creditFlag)) {
+            s1 = vo.getCurrentbalance().subtract(vo.getUsedmargin())
+                    .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
+                    .subtract(vo.getOutamountfreeze()).subtract(vo.getOthercredit()).add(vo.getFloatpl());
+
+        } else {
+            s1 = vo.getCurrentbalance().subtract(vo.getUsedmargin())
+                    .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
+                    .subtract(vo.getOutamountfreeze()).subtract(vo.getMortgagecredit()).subtract(vo.getOthercredit())
+                    .add(vo.getFloatpl());
+        }
+
+        if ("0".equals(closeplFlag) && vo.getClosepl().compareTo(BigDecimal.ZERO) > 0) {
+            s1 = s1.subtract(vo.getClosepl());
+        }
+        if ("0".equals(floatplFlag) && vo.getFloatpl().compareTo(BigDecimal.ZERO) > 0) {
+            s1 = s1.subtract(vo.getFloatpl());
+        }
+        BigDecimal s2 = vo.getBalance();
+        if (vo.getOutamount().compareTo(BigDecimal.ZERO) < 0) {
+            s2 = s2.add(vo.getOutamount());
+        }
+        s2.subtract(vo.getOutamountfreeze());
+        if ("1".equals(inamountFlag)) {
+            s2 = s2.add(vo.getInamount());
+        }
+
+        if ("0".equals(closeplFlag)) {
+            vo.setAvaiableoutmoney(s1.compareTo(s2) > 0 ? s2 : s1);
+        } else {
+            vo.setAvaiableoutmoney(s1);
+        }
+
+        // 减去账户出金阀值
+        if (vo.getOutthreshold() != null) {
+            if (vo.getOutthreshold().compareTo(vo.getAvaiableoutmoney()) > -1) {
+                vo.setAvaiableoutmoney(BigDecimal.ZERO);
+            } else {
+                vo.setAvaiableoutmoney(vo.getAvaiableoutmoney().subtract(vo.getOutthreshold()));
+            }
+        }
+
+        // 可出小于0,显示时强制值为0
+        if (BigDecimal.ZERO.compareTo(vo.getAvaiableoutmoney()) > -1) {
+            vo.setAvaiableoutmoney(BigDecimal.ZERO);
+        }
+    }
+
+    private void setAvaliableAmount(Taaccount vo, String floatplFlag) {
+        //可用资金:
+        //      账户总浮动盈亏为负:
+        //      =期末余额+总浮动盈亏(收益权)-占用-冻结-其它冻结-手续费冻结-出金冻结
+        //		账户总浮动盈亏为正 且 113 = 0 :
+        //		=期末余额-占用-冻结-其它冻结-手续费冻结-出金冻结
+        //		账户总浮动盈亏为正 且 113 = 1 :
+        //		=期末余额+总浮动盈亏(收益权)-占用-冻结-其它冻结-手续费冻结-出金冻结
+        //		*系统参数”113“(当日浮动盈利是否可用) 0:不可用 1:可用
+        if (vo == null) return;
+
+        if (floatplFlag.equals("1") || vo.getFloatpl().compareTo(new BigDecimal(0)) < 0) {
+            vo.setAvaiablemoney(vo.getCurrentbalance().add(vo.getFloatpl()).subtract(vo.getUsedmargin())
+                    .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
+                    .subtract(vo.getOutamountfreeze()));
+        } else {
+            vo.setAvaiablemoney(vo.getCurrentbalance().subtract(vo.getUsedmargin())
+                    .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
+                    .subtract(vo.getOutamountfreeze()));
         }
     }
 

+ 1 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/TradingAccountServiceImpl.java

@@ -309,7 +309,7 @@ public class TradingAccountServiceImpl implements ITradingAccountService {
         return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
     }
 
-    private Long getNewLoginIdByUserid(Long userid, int type) {
+    public Long getNewLoginIdByUserid(Long userid, int type) {
         if (type == 1) {
             //投资者
             //生成投资者时会初始化一个登录账户 后面的直接 +1

+ 8 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/UseraccountServiceImpl.java

@@ -1468,6 +1468,8 @@ public class UseraccountServiceImpl extends ServiceImpl<IUseraccountMapper, User
         //先按类型
         Map<Integer, List<Accounttradeconfig>> type = new HashMap<>();
         for (Accounttradeconfig fig : list) {
+            fig.setAccountname(iUseraccountMapper.selectOrganName(fig.getUserid()));
+            fig.setGoodsname(iGoodsMapper.selectOne(new QueryWrapper<Goods>().eq("goodsid",fig.getGoodsid())).getGoodsname());
             Integer key = fig.getTradetype();
             if (type.containsKey(key)) {
                 type.get(key).add(fig);
@@ -1583,6 +1585,12 @@ public class UseraccountServiceImpl extends ServiceImpl<IUseraccountMapper, User
         return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
     }
 
+    @Override
+    public AjaxResult<InvestorInitBZResult> initBZList(Long goodsid, HttpServletRequest request) {
+        List<InvestorInitBZResult> result = iUseraccountMapper.getCustomerTypeByGoodsid(goodsid, null);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+    }
+
     private List<RulesConfigVo> getTradeRuleDescriptions(Long marketid, Long goodsid, Long areauserid) {
         List<RulesConfigVo> list = iUseraccountMapper.getTradeRuleDescriptions(marketid, goodsid, areauserid, null);
 

+ 3 - 7
mtp3-century/src/main/resources/mapper/AccounttradeconfigMapper.xml

@@ -26,14 +26,10 @@
 
 
     <select id="getListForTree"  resultType="com.muchinfo.mtp3pojos.entity.Accounttradeconfig">
-        select a.*,g.goodsname,m.marketname,t.userid || '/' || t.accountname as accountname
-        from accounttradeconfig a
-        left join goods g on g.goodsid=a.goodsid
-        left join MARKET m on  m.marketid = a.marketid
-        left join useraccount t on t.userid = a.userid
+        select a.*,( select g.goodsname from goods g   where g.goodsid=a.goodsid ) goodsnamess from accounttradeconfig a
         <where>
-            <if test="memberuserid != null ">
-                and memberuserid = #{memberuserid}
+            <if test="areauserid != null ">
+                and memberuserid = #{areauserid}
             </if>
         </where>
         order by userid,goodsnamess asc

+ 16 - 0
mtp3-century/src/main/resources/mapper/ArearoleMapper.xml

@@ -33,4 +33,20 @@
         from AreaRole t
         where t.UserID = #{userid}
     </select>
+
+    <select id="queryMarketsForOperate" resultType="com.muchinfo.mtp3pojos.entity.Market">
+        select t.marketid , t.marketname
+        from market t
+        where t.trademode not in (41,48,51,52,97,99)
+          and t.marketid in (select distinct marketid from goods)
+        order by t.marketid
+    </select>
+    <select id="queryGoodsAndMarketInfo" resultType="com.muchinfo.mtp3pojos.entity.Goods">
+        select g.goodsid , g.marketid,
+               g.goodscode , g.goodsname
+        from goods g
+                 inner join market m on m.marketid = g.marketid
+        where m.trademode not in (41,48,51,52,97,99)
+        order by m.marketid, g.goodscode
+    </select>
 </mapper>

+ 17 - 1
mtp3-century/src/main/resources/mapper/ArearolemarketMapper.xml

@@ -17,8 +17,14 @@
     <sql id="Base_Column_List">
         AREAUSERID, ROLETYPE, MARKETID, MODIFYTIME, MODIFIERID, SPOTRIGHTTYPE, BUYSPOTRIGHTTYPE
     </sql>
+
+    <delete id="deleteOperateGoodsConfig" parameterType="java.lang.Long">
+        delete from AreaGoodsConfig t
+        where roletype = 2 and userid = #{userid}
+    </delete>
+
     <select id="getMarketsNameByUseridAndrole" parameterType="map"
-            resultType="Long">
+            resultType="java.lang.Long">
         select m.marketid
         from market m ,arearolemarket o
         where m.marketid = o.marketid and o.areauserid = #{areauserid}
@@ -28,4 +34,14 @@
             #{item}
         </foreach>
     </select>
+
+    <insert id="insertOperateGoodsConfigBatch" parameterType="java.util.List">
+        begin
+        <foreach collection="list" item="vo" separator="">
+            insert into AreaGoodsConfig (userid, roletype, goodsid)
+            values (#{vo.userid},#{vo.roletype},#{vo.goodsid});
+        </foreach>
+        commit;
+        end;
+    </insert>
 </mapper>

+ 20 - 0
mtp3-century/src/main/resources/mapper/BankAccountsignMapper.xml

@@ -104,4 +104,24 @@
         from Bank_BankInfo bc
         where bc.bankid = #{bankid,jdbcType=VARCHAR}
     </select>
+
+    <select id="query" resultType="com.muchinfo.mtp3pojos.vo.organ.UserAccountSignlogResult">
+        select '--' as histradedate, t.* from Bank_AccountSignLog t
+        <where>
+            <if test="accountcode != null and accountcode != ''">
+                and t.accountcode=#{accountcode}
+            </if>
+        </where>
+        order by t.createtime desc
+    </select>
+
+    <select id="queryhis" resultType="com.muchinfo.mtp3pojos.vo.organ.UserAccountSignlogResult">
+        select t.* from His_Bank_AccountSignLog t
+        <where>
+            <if test="accountcode != null and accountcode != ''">
+                and t.accountcode=#{accountcode}
+            </if>
+        </where>
+        order by t.createtime desc
+    </select>
 </mapper>

+ 9 - 0
mtp3-century/src/main/resources/mapper/GoodsMapper.xml

@@ -204,4 +204,13 @@
         </where>
         order by t.tradeqty desc
     </select>
+
+    <select id="queryAreaGoodsConfig" resultType="com.muchinfo.mtp3pojos.vo.organ.GoodsForRoleVo">
+        select g.goodsid , g.marketid ,
+        g.goodscode , g.goodsname
+        from  goods g
+        inner join AreaGoodsConfig t on g.goodsid = t.goodsid
+        where t.userid = #{userid}
+        order by g.goodscode
+    </select>
 </mapper>

+ 29 - 2
mtp3-century/src/main/resources/mapper/MarketMapper.xml

@@ -64,13 +64,27 @@
         MARKETID, MARKETNAME, EXCHAREAID, MARKETTYPE, TRADEMODE, TRADEPROPERTY, OPENMETHOD, RECKONPRICEALGORITHM, RECKONPRICEPARAM, MARKETSTATUS, MARKETSERVICEID, MARGINFORMULA, PERFORMANCETEMPID, CLEARINTERVAL, MATCHERMODE, RECKONORDER, CANPREEXERCISE, CANGOODSEXERCISE, GOODSTYPE, ROLEPRIORITYTYPE, ISRECORDSOURCE, MARGINFORMULA2, HASWR, PREMIUMQUOTEMODE, CANGOODSEXERCISETYPE, CANACCEPTQUOTE, CANMUTISTAGE, ISDEDUCTMARGIN, CANMANUALQUOTESTRIKE, TRADETYPE, PENDINGFLAG, PENDINGTIME, RECKONTIME, HASTRADECREDIT, CONTRACTTMP, HASREBATE, REBATERATIO, OTCUSERID, OUTERSYNCTIME, AUCTIONWRTYPE, ISRELEASEMARGIN, SELLLISTINGAUDITFLAG, TRADEMARKETTYPE, PAYLATERFLAG, ISUPDATERECKONPRICE, UPDATERECKONPRICEINTERVAL, FINANCEMARKETID, FORCECLOSEMODE, FORCECLOSEVALUE, DELIVERYMODE, ISDELIVERYSELLERCANAPPLY, ISDELIVERYBUYERPAYONLINE, RISKCONTROLMODE
     </sql>
 
-    <select id="getMarketsNameByUseridAndrole" resultType="com.muchinfo.mtp3pojos.vo.profitshar.Marketvo">
+    <update id="updateExchareaid">
+        update market set exchareaid = #{exchareaid}
+        where marketid in
+        <foreach collection="marketids" open="(" close=")" separator="," item="item">
+            #{item}
+        </foreach>
+    </update>
+    <update id="updateExchareaidNull" parameterType="java.lang.Long">
+        update market set exchareaid = null where exchareaid = #{userid}
+    </update>
+
+    <select id="getMarketsNameByUseridAndrole" resultType="com.muchinfo.mtp3pojos.entity.Market">
         select m.marketid,m.marketname,m.trademode,o.roletype,o.spotrighttype ,
         o.buyspotrighttype,m.tradeproperty
         from market m ,arearolemarket o
         where m.marketid = o.marketid and o.areauserid = #{uid}
         and m.marketstatus = 2
-        and o.roletype = #{roletype}
+        and roletype in
+        <foreach collection="roletype" close=")" open="(" separator="," item="item">
+            #{item}
+        </foreach>
         group by m.marketid,m.marketname,m.trademode,o.roletype,
         o.spotrighttype,o.buyspotrighttype,m.tradeproperty
     </select>
@@ -98,4 +112,17 @@
         <if test="areauserid != null">u.memberuserid=#{areauserid} and</if>
         t.autoid = u.usergroupid)
     </select>
+
+    <select id="queryAreaGoodsMarkets" resultMap="BaseResultMap">
+        select m.marketid ,m.marketname , m.trademode
+        from market m
+        where m.markettype = 2 and m.marketstatus != 1
+        <if test="userid != null and userid != '' and userid != 1">
+            and m.marketid in
+            (select g.marketid from AreaGoodsConfig t
+            left join goods g on t.goodsid = g.goodsid
+            where t.userid = #{userid})
+        </if>
+        order by m.marketid
+    </select>
 </mapper>

+ 35 - 0
mtp3-century/src/main/resources/mapper/SystemmanagerMapper.xml

@@ -206,4 +206,39 @@
         </where>
         order by t.logintime desc
     </select>
+
+    <select id="getAllUserByOrgan2" resultType="com.muchinfo.mtp3pojos.vo.organ.UserAccountOrgan2UserResult">
+        select o.* from SystemManager o,UserAccount t
+        where o.areauserid=t.userid and t.usertype !=5 and (t.userid= #{userid} or t.memberuserid =#{userid})
+        order by t.userid,o.logincode
+    </select>
+
+    <update id="updateorgan2User">
+        update SystemManager o set o.managerstatus= #{status}
+        where o.areauserid in (select userid from UserAccount t where t.usertype !=5
+          and (t.memberuserid =#{userid} or t.userid= #{userid})
+    </update>
+
+    <select id="queryselfsupport" resultType="com.muchinfo.mtp3pojos.vo.organ.UserAccountSelfsupportResult">
+        select t.*,s.username,smr.rolename,
+        (select listagg(uai.authid, ',') within group(order by uai.authtype,uai.authid)
+        from userauthinfo uai where uai.loginid=t.loginid and uai.userid=t.userid) "auth",
+        (select listagg(uai.authtype, ',') within group(order by uai.authtype,uai.authid)
+        from userauthinfo uai where uai.loginid=t.loginid and uai.userid=t.userid) "authtype"
+        from loginaccount t
+        left join systemmanager s on t.logincode = s.logincode
+        left join SystemManagerRole smr on t.clientroleid = smr.autoid
+        <where>
+            <if test="vo.loginusertype != null">
+                and t.loginusertype = #{vo.loginusertype}
+            </if>
+            <if test="vo.loginid !=null">
+                and t.loginid = #{vo.loginid}
+            </if>
+            <if test="vo.userid != null">
+                and t.userid = #{vo.userid}
+            </if>
+        </where>
+        order by t.loginstatus,t.loginid
+    </select>
 </mapper>

+ 3 - 1
mtp3-century/src/main/resources/mapper/SystemmanagerroleMapper.xml

@@ -38,8 +38,10 @@
 
     <select id="selectByPage" parameterType="com.muchinfo.mtp3pojos.vo.SystemRoleVo" resultMap="ResultVoMap">
         select
-            smr.*
+            smr.*, nvl(la.logincode, sm.username) modifiername, decode(smr.rolestatus, 1, 1, 0) isvalid
         from SystemManagerRole smr
+        left join loginaccount la on smr.modifierid = la.loginid
+        left join systemmanager sm on smr.modifierid = sm.autoid
         <where>
             <!-- 任务 #90190  错误 #91980 (相冲)-->
             <choose>

+ 54 - 0
mtp3-century/src/main/resources/mapper/TaaccountMapper.xml

@@ -119,6 +119,19 @@
     <sql id="Base_Column_List">
         ACCOUNTID, USERID, CURRENCYID, CHANGEFLAG, PASSWORD, TRADESTATUS, SIGNSTATUS, ISMAIN, PARENTACCOUNTID, RELATEDUSERID, RELATEDACCOUNTSTATUS, TAACCOUNTTYPE, ISRECKONACCOUNT, ISMARKETACCOUNT, BALANCE, ORIFREEZEMARGIN, ORIUSEDMARGIN, ORIOTHERFREEZEMARGIN, ORIFREEZECHARGE, ORIMORTGAGECREDIT, ORIOTHERCREDIT, ORIOUTAMOUNTFREEZE, FREEZEMARGIN, USEDMARGIN, OTHERFREEZEMARGIN, FREEZECHARGE, MORTGAGECREDIT, OTHERCREDIT, OUTAMOUNTFREEZE, INAMOUNT, CURRENTBALANCE, OUTAMOUNT, PAYCHARGE, CLOSEPL, CREDITINCREASE, CREDITDECREASE, OTHERCREDITINCREASE, OTHERCREDITDECREASE, TRANSFERAMOUNT, OTHERPAY, OTHERINCOME, OUTTHRESHOLD, TRADESTATUSCHANGETIME, CHANGETIME, THIRDINAMOUNT, THIRDOUTAMOUNT, CAPITALBALANCE, FROMACCOUNTID, SUBLEVELPATH, SERIVCEGROUP, ACCOUNTNAME, ACCOUNTFLAG, ORIDEBT, CURDEBT, MODIFYTIME, MODIFYSRC, MODIFIERID
     </sql>
+
+    <delete id="deleteUserMarket">
+        delete from TaaccountMarket t where t.accountid in
+        (select a.accountid
+        from taaccount a where a.userid = #{userid})
+        <if test="marketids!=null">
+            and t.marketid not in
+            <foreach collection="marketids" open="(" separator="," close=")"
+                     item="item">
+                #{item}
+            </foreach>
+        </if>
+    </delete>
     <select id="queryTaAccountPage" resultMap="PageResultMap"
             parameterType="com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryParam">
         select t.accountid, t.ismain,t.taaccounttype, t.parentaccountid
@@ -325,4 +338,45 @@
         </if>
     </select>
 
+    <select id="queryRoleOrganPage" resultType="com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult">
+        with tmp as (
+        SELECT T.USERID, LISTAGG(T.ACCOUNTID, ',') WITHIN GROUP (ORDER BY T.ACCOUNTID) AS ACCOUNTID FROM TAACCOUNT T GROUP BY T.USERID
+        )
+        select o.*, r.modifytime rolemodifytime, r.creatorid operatorid, tmp.accountid
+        from arearole r,useraccount o
+        left join tmp on o.userid = tmp.userid
+        <where>
+            r.userid = o.userid and o.usertype = 2
+            <if test="vo.roleid != null">
+                and r.roletype = #{vo.roleid}
+            </if>
+            <if test="vo.accountname != null and vo.accountname != '' ">
+                and ((o.accountname like
+                '%'||#{vo.accountname,jdbcType=VARCHAR}||'%')
+                or(o.userid like '%'||#{vo.accountname,jdbcType=VARCHAR}||'%'))
+            </if>
+            <if test="vo.parentuserid != null">
+                and o.parentuserid = #{vo.parentuserid}
+            </if>
+        </where>
+        order by o.accountstatus,o.userid
+    </select>
+
+    <select id="queryWarehouseOrganPage" resultType="com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult">
+        with tmp as (
+        SELECT T.USERID, LISTAGG(T.ACCOUNTID, ',') WITHIN GROUP (ORDER BY T.ACCOUNTID) AS ACCOUNTID FROM TAACCOUNT T GROUP BY T.USERID
+        )
+        select o.*, r.modifytime rolemodifytime, tmp.accountid
+        from arearole r, useraccount o
+        left join tmp on o.userid = tmp.userid
+        <where>
+            r.userid = o.userid and r.roletype = 4 and o.usertype = 2
+            <if test="vo.accountname != null and vo.accountname != '' ">
+                and ((o.accountname like
+                '%'||#{vo.accountname,jdbcType=VARCHAR}||'%')
+                or(o.userid like '%'||#{vo.accountname,jdbcType=VARCHAR}||'%'))
+            </if>
+        </where>
+        order by o.accountstatus,o.userid
+    </select>
 </mapper>

+ 22 - 9
mtp3-century/src/main/resources/mapper/UseraccountMapper.xml

@@ -48,6 +48,8 @@
         <association property="userName" column="CREATORID"
                      jdbcType="DECIMAL"
                      select="com.muchinfo.mtp3interface.mapper.ISystemmanagerMapper.selectUsersName"></association>
+        <association property="parentname" column="PARENTUSERID"
+                     jdbcType="VARCHAR" select="selectOrganName"></association>
         <association property="roleIds" column="USERID" jdbcType="VARCHAR"
                      javaType="java.lang.String"
                      select="com.muchinfo.mtp3interface.mapper.IArearoleMapper.getRolesByAreaid"></association>
@@ -203,23 +205,25 @@
 
     <select id="queryOrganPage" resultMap="PageResultMap"
             parameterType="com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam">
+        with tmp as (
+        SELECT T.userid, (LISTAGG(T.accountid, ',') WITHIN GROUP (ORDER BY T.accountid)) AS ACCOUNTID FROM taaccount T GROUP BY T.userid
+        )
         select
         (select max(t.modifytime) from arearole t where t.userid=o.userid) rolemodifytime,
-        o.*,t.signstatus,t.accountid,t.changetime from useraccount o
-        left join taaccount t on o.reckonaccountid = t.accountid
+        tmp.accountid, o.*
+        from useraccount o
+        left join tmp on o.userid = tmp.userid
         <where>
-            1=1
-            and o.reckonaccountid = t.accountid
-            <if test="vo.accountname != null and vo.accountname != '' ">
+            <if test="vo.accountName != null and vo.accountName != '' ">
                 and ((o.accountname like
-                '%'||#{vo.accountname,jdbcType=VARCHAR}||'%')
-                or(o.userid like '%'||#{vo.accountname,jdbcType=VARCHAR}||'%'))
+                '%'||#{vo.accountName}||'%')
+                or(o.userid like '%'||#{vo.accountName}||'%'))
             </if>
             <if test="vo.usertype != null">
                 and o.usertype = #{vo.usertype}
             </if>
-            <if test="vo.accountstatus != null">
-                and o.accountstatus = #{vo.accountstatus}
+            <if test="vo.accountStatus != null">
+                and o.accountstatus = #{vo.accountStatus}
             </if>
             <if test="vo.parentuserid != null">
                 and o.parentuserid = #{vo.parentuserid}
@@ -769,4 +773,13 @@
         start with ua.userid in (SELECT ar.USERID FROM AREAROLE ar WHERE AR.ROLETYPE = 7)
         connect by prior ua.userid = ua.parentuserid and ua.usertype = 3
     </select>
+
+    <select id="queryUra" resultType="com.muchinfo.mtp3pojos.entity.Userreckonaccount">
+        select t.*, e.enumdicname
+        from userreckonaccount t
+                 left join enumdicitem e on e.enumitemname = t.currencyid
+        where e.enumdiccode = 'currency'
+          and t.userid = #{areaid}
+          and t.defaultaccounttype = 2
+    </select>
 </mapper>

+ 10 - 0
mtp3-century/src/main/resources/message_en.properties

@@ -76,6 +76,16 @@ organ_error_code_022=Non pending review status, unable to withdraw
 organ_error_code_023=The member is in an abnormal state and cannot be approved for review
 organ_error_code_024=The affiliated institution is in an abnormal state and cannot be approved for review
 organ_error_code_025=The broker is in an abnormal state and cannot be approved for review
+organ_error_code_026=There are subordinate broker members, unable to delete
+organ_error_code_027=There is a subordinate warehouse that cannot be deleted
+organ_error_code_028=Market making member has signed up and cannot be deleted
+organ_error_code_029=Market making members are default quote providers and cannot be deleted
+organ_error_code_030=The market making member has configured a secondary counterparty relationship and cannot be deleted
+organ_error_code_031=Market making member referenced by over-the-counter options market making and cannot be deleted
+organ_error_code_032=There is a point type that cannot be deleted
+organ_error_code_033=The quotation agency has been cited and cannot be deleted
+organ_error_code_034=Superiors cannot do it for themselves
+organ_error_code_035=The ratio value cannot be greater than 100
 
 profit_shar_error_code_001=Please delete the profit sharing configuration first
 profit_shar_error_code_002=Please delete the group members first

+ 11 - 0
mtp3-century/src/main/resources/message_th.properties

@@ -76,6 +76,17 @@ organ_error_code_022=ไม่มีสถานะรอการตรวจ
 organ_error_code_023=สมาชิกที่สังกัดอยู่ในสถานะไม่ปกติและไม่สามารถตรวจสอบผ่าน
 organ_error_code_024=หน่วยงานที่สังกัดอยู่ในสถานะไม่ปกติไม่สามารถตรวจสอบผ่าน
 organ_error_code_025=โบรกเกอร์ที่อยู่ในสถานะไม่ปกติและไม่สามารถตรวจสอบได้ ผ่าน
+organ_error_code_026=มีสมาชิกเป็นนายหน้าซื้อขายหลักทรัพย์ระดับล่างและไม่สามารถลบได้
+organ_error_code_027=มีคลังสินค้าระดับล่างและไม่สามารถลบออกได้
+organ_error_code_028=สมาชิกผู้ดูแลสภาพคล่องได้ลงนามและไม่สามารถลบได้
+organ_error_code_029=สมาชิกผู้ดูแลสภาพคล่องเป็นผู้อ้างอิงเริ่มต้นและไม่สามารถลบได้
+organ_error_code_030=สมาชิกผู้ดูแลสภาพคล่องได้กำหนดค่าความสัมพันธ์ของคู่แข่งระดับที่สองและไม่สามารถลบได้
+organ_error_code_031=สมาชิก Marketmaker ถูกอ้างอิงโดย OTC Options Marketmaker และไม่สามารถลบได้
+organ_error_code_032=มีประเภทของคะแนนและไม่สามารถลบออกได้
+organ_error_code_033=อ้างสถาบันไม่สามารถลบได้
+organ_error_code_034=ผู้บังคับบัญชาไม่สามารถทำเพื่อตนเองได้
+organ_error_code_035=ค่าอัตราส่วนต้องไม่เกิน 100
+
 
 profit_shar_error_code_001=กรุณาลบการกำหนดค่าการแบ่งงานก่อน
 profit_shar_error_code_002=กรุณาลบคนกลุ่มออกก่อน

+ 11 - 0
mtp3-century/src/main/resources/message_zh-CN.properties

@@ -76,6 +76,17 @@ organ_error_code_022=非待审核状态,无法撤回
 organ_error_code_023=所属会员为非正常状态,无法审核通过
 organ_error_code_024=所属机构为非正常状态,无法审核通过
 organ_error_code_025=所属经纪人为非正常状态,无法审核通过
+organ_error_code_026=存在下级经纪会员,无法删除
+organ_error_code_027=存在下级仓库,无法删除
+organ_error_code_028=做市会员已签约,无法删除
+organ_error_code_029=做市会员是默认报价商,无法删除
+organ_error_code_030=做市会员已配置二级对手关系,无法删除
+organ_error_code_031=做市会员被场外期权做市引用,无法删除
+organ_error_code_032=存在积分类型,无法删除
+organ_error_code_033=报价机构被引用,无法删除
+organ_error_code_034=上级不能为自己
+organ_error_code_035=比率值不能大于100
+
 
 profit_shar_error_code_001=请先删除分润配置
 profit_shar_error_code_002=请先删除分组人员

+ 11 - 0
mtp3-century/src/main/resources/message_zh-HK.properties

@@ -76,6 +76,17 @@ organ_error_code_022=非待稽核狀態,無法撤回
 organ_error_code_023=所屬會員為非正常狀態,無法稽核通過
 organ_error_code_024=所屬機构為非正常狀態,無法稽核通過
 organ_error_code_025=所屬經紀人為非正常狀態,無法稽核通過
+organ_error_code_026=存在下級經紀會員,無法删除
+organ_error_code_027=存在下級倉庫,無法删除
+organ_error_code_028=做市會員已簽約,無法删除
+organ_error_code_029=做市會員是默認報價商,無法删除
+organ_error_code_030=做市會員已配寘二級對手關係,無法删除
+organ_error_code_031=做市會員被場外期權做市引用,無法删除
+organ_error_code_032=存在積分類型,無法删除
+organ_error_code_033=報價機构被引用,無法删除
+organ_error_code_034=上級不能為自己
+organ_error_code_035=比率值不能大於100
+
 
 profit_shar_error_code_001=請先删除分潤配寘
 profit_shar_error_code_002=請先删除分組人員

+ 11 - 0
mtp3-century/src/main/resources/message_zh-TW.properties

@@ -76,6 +76,17 @@ organ_error_code_022=非待稽核狀態,無法撤回
 organ_error_code_023=所屬會員為非正常狀態,無法稽核通過
 organ_error_code_024=所屬機构為非正常狀態,無法稽核通過
 organ_error_code_025=所屬經紀人為非正常狀態,無法稽核通過
+organ_error_code_026=存在下級經紀會員,無法删除
+organ_error_code_027=存在下級倉庫,無法删除
+organ_error_code_028=做市會員已簽約,無法删除
+organ_error_code_029=做市會員是默認報價商,無法删除
+organ_error_code_030=做市會員已配寘二級對手關係,無法删除
+organ_error_code_031=做市會員被場外期權做市引用,無法删除
+organ_error_code_032=存在積分類型,無法删除
+organ_error_code_033=報價機构被引用,無法删除
+organ_error_code_034=上級不能為自己
+organ_error_code_035=比率值不能大於100
+
 
 profit_shar_error_code_001=請先删除分潤配寘
 profit_shar_error_code_002=請先删除分組人員

+ 10 - 0
mtp3-common/src/main/java/com/muchinfo/mtp3common/enumtype/MessageType.java

@@ -81,6 +81,16 @@ public enum MessageType {
     ORGAN_ERROR_CODE_023("organ_error_code_023", "所属会员为非正常状态,无法审核通过"),
     ORGAN_ERROR_CODE_024("organ_error_code_024", "所属机构为非正常状态,无法审核通过"),
     ORGAN_ERROR_CODE_025("organ_error_code_025", "所属经纪人为非正常状态,无法审核通过"),
+    ORGAN_ERROR_CODE_026("organ_error_code_026", "存在下级经纪会员,无法删除"),
+    ORGAN_ERROR_CODE_027("organ_error_code_027", "存在下级仓库,无法删除"),
+    ORGAN_ERROR_CODE_028("organ_error_code_028", "做市会员已签约,无法删除"),
+    ORGAN_ERROR_CODE_029("organ_error_code_029", "做市会员是默认报价商,无法删除"),
+    ORGAN_ERROR_CODE_030("organ_error_code_030", "做市会员已配置二级对手关系,无法删除"),
+    ORGAN_ERROR_CODE_031("organ_error_code_031", "做市会员被场外期权做市引用,无法删除"),
+    ORGAN_ERROR_CODE_032("organ_error_code_032", "存在积分类型,无法删除"),
+    ORGAN_ERROR_CODE_033("organ_error_code_033", "报价机构被引用,无法删除"),
+    ORGAN_ERROR_CODE_034("organ_error_code_034", "上级不能为自己"),
+    ORGAN_ERROR_CODE_035("organ_error_code_035", "比率值不能大于100"),
 
     PROFIT_SHAR_ERROR_CODE_001("profit_shar_error_code_001", "请先删除分润配置"),
     PROFIT_SHAR_ERROR_CODE_002("profit_shar_error_code_002", "请先删除分组人员"),

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IAccountriskconfigMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Accountriskconfig;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Accountriskconfig;
  * @author XKF
  * @since 2024-09-05
  */
+@Mapper
 public interface IAccountriskconfigMapper extends BaseMapper<Accountriskconfig> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IAccounttradeconfigMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Accounttradeconfig;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -14,6 +15,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-09-10
  */
+@Mapper
 public interface IAccounttradeconfigMapper extends BaseMapper<Accounttradeconfig> {
 
     List<Accounttradeconfig> getListForTree(@Param("areauserid") Long areauserid);

+ 9 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IArearoleMapper.java

@@ -2,8 +2,12 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Arearole;
+import com.muchinfo.mtp3pojos.entity.Goods;
+import com.muchinfo.mtp3pojos.entity.Market;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 机构角色表 Mapper 接口
@@ -16,4 +20,9 @@ import org.apache.ibatis.annotations.Mapper;
 public interface IArearoleMapper extends BaseMapper<Arearole> {
 
     String getRolesByAreaid(Long areauserid);
+
+    List<Market> queryMarketsForOperate();
+
+    List<Goods> queryGoodsAndMarketInfo();
+
 }

+ 18 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IArearoledivideconfigMapper.java

@@ -0,0 +1,18 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.Arearoledivideconfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 机构角色分成配置表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Mapper
+public interface IArearoledivideconfigMapper extends BaseMapper<Arearoledivideconfig> {
+
+}

+ 5 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IArearolemarketMapper.java

@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -20,4 +21,8 @@ import java.util.List;
 public interface IArearolemarketMapper extends BaseMapper<Arearolemarket> {
 
     List<Long> getMarketsNameByUseridAndrole(@Param("areauserid") Long areauserid,@Param("types") Integer[] types);
+
+    void deleteOperateGoodsConfig(@Param("userid") Long userid);
+
+    void insertOperateGoodsConfigBatch(@Param("list") List<Map<String, Object>> insertList);
 }

+ 18 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IArearolemarketmakerMapper.java

@@ -0,0 +1,18 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.Arearolemarketmaker;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 机构角色市场权限表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Mapper
+public interface IArearolemarketmakerMapper extends BaseMapper<Arearolemarketmaker> {
+
+}

+ 5 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankAccountsignMapper.java

@@ -6,6 +6,7 @@ import com.muchinfo.mtp3pojos.entity.BankAccountsign;
 import com.muchinfo.mtp3pojos.vo.bankaccountsign.AccountSignQueryParam;
 import com.muchinfo.mtp3pojos.vo.bankaccountsign.AccountSignQueryResult;
 import com.muchinfo.mtp3pojos.vo.common.CusBankInfoResult;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountSignlogResult;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -25,4 +26,8 @@ public interface IBankAccountsignMapper extends BaseMapper<BankAccountsign> {
     List<AccountSignQueryResult> selectByParam(@Param("vo") AccountSignQueryParam accountSignQueryParam);
 
     IPage<AccountSignQueryResult> selectByParam(IPage<AccountSignQueryResult> page, @Param("vo") AccountSignQueryParam accountSignQueryParam);
+
+    IPage<UserAccountSignlogResult> query(IPage<UserAccountSignlogResult> page, @Param("accountcode")Long accountcode);
+
+    IPage<UserAccountSignlogResult> queryhis(IPage<UserAccountSignlogResult> page,@Param("accountcode") Long accountcode);
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ICptradePositionapplyMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.CptradePositionapply;
 import com.muchinfo.mtp3pojos.vo.presale.*;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -16,6 +17,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-11-25
  */
+@Mapper
 public interface ICptradePositionapplyMapper extends BaseMapper<CptradePositionapply> {
 
     IPage<ForwardOrderApplyResult> queryForward(IPage<ForwardOrderApplyResult> page, @Param("vo") ForwardOrderApplyParam param);

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ICptradePositioncancelMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.CptradePositioncancel;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.CptradePositioncancel;
  * @author XKF
  * @since 2024-11-26
  */
+@Mapper
 public interface ICptradePositioncancelMapper extends BaseMapper<CptradePositioncancel> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ICptradePresalegoodsexMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.CptradePresalegoodsex;
 import com.muchinfo.mtp3pojos.vo.presale.*;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -16,6 +17,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-11-11
  */
+@Mapper
 public interface ICptradePresalegoodsexMapper extends BaseMapper<CptradePresalegoodsex> {
 
     IPage<PresaleQueryResult> query(IPage<PresaleQueryResult> page, @Param("vo") PresaleQueryParam param);

+ 18 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ICustomertypeareadetailMapper.java

@@ -0,0 +1,18 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.Customertypeareadetail;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 客户类别做市明细表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Mapper
+public interface ICustomertypeareadetailMapper extends BaseMapper<Customertypeareadetail> {
+
+}

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IDeliverygoodsMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Deliverygoods;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Deliverygoods;
  * @author XKF
  * @since 2024-08-07
  */
+@Mapper
 public interface IDeliverygoodsMapper extends BaseMapper<Deliverygoods> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IDeliveryrelationMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Deliveryrelation;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Deliveryrelation;
  * @author XKF
  * @since 2024-11-26
  */
+@Mapper
 public interface IDeliveryrelationMapper extends BaseMapper<Deliveryrelation> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IDgfactoryitemMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Dgfactoryitem;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Dgfactoryitem;
  * @author XKF
  * @since 2024-11-29
  */
+@Mapper
 public interface IDgfactoryitemMapper extends BaseMapper<Dgfactoryitem> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IDgfactoryitemtypeMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Dgfactoryitemtype;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Dgfactoryitemtype;
  * @author XKF
  * @since 2024-11-29
  */
+@Mapper
 public interface IDgfactoryitemtypeMapper extends BaseMapper<Dgfactoryitemtype> {
 
 }

+ 6 - 2
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IGoodsMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Goods;
 import com.muchinfo.mtp3pojos.vo.common.GoodsSelectParam;
 import com.muchinfo.mtp3pojos.vo.common.GoodsSelectResult;
+import com.muchinfo.mtp3pojos.vo.organ.GoodsForRoleVo;
 import com.muchinfo.mtp3pojos.vo.reportform.GoodsReportParam;
 import com.muchinfo.mtp3pojos.vo.reportform.GoodsReportResult;
 import org.apache.ibatis.annotations.Mapper;
@@ -22,11 +23,14 @@ import java.util.List;
 @Mapper
 public interface IGoodsMapper extends BaseMapper<Goods> {
 
-    List<GoodsSelectResult> queryGoodsSelect(@Param("split") String[] split,@Param("tradeModeSplit") String[] tradeModeSplit, @Param("vo")GoodsSelectParam param);
+    List<GoodsSelectResult> queryGoodsSelect(@Param("split") String[] split, @Param("tradeModeSplit") String[] tradeModeSplit, @Param("vo") GoodsSelectParam param);
 
-    List<Goods> getNoTradeConfigGoods(@Param("areauserid")Long areauserid,@Param("usergroupid") Long usergroupid,@Param("marketid") Long marketid);
+    List<Goods> getNoTradeConfigGoods(@Param("areauserid") Long areauserid, @Param("usergroupid") Long usergroupid, @Param("marketid") Long marketid);
 
     List<GoodsReportResult> queryByDate(@Param("vo") GoodsReportParam param);
 
     List<GoodsReportResult> queryByOther(@Param("vo") GoodsReportParam param);
+
+    List<GoodsForRoleVo> queryAreaGoodsConfig(@Param("userid") Long userid);
+
 }

+ 18 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHedgeaccountMapper.java

@@ -0,0 +1,18 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.Hedgeaccount;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 对冲账号配置表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Mapper
+public interface IHedgeaccountMapper extends BaseMapper<Hedgeaccount> {
+
+}

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHisPerformancebreachMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.HisPerformancebreach;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.HisPerformancebreach;
  * @author XKF
  * @since 2024-11-20
  */
+@Mapper
 public interface IHisPerformancebreachMapper extends BaseMapper<HisPerformancebreach> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHisTradeExercisedetailMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.HisTradeExercisedetail;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.HisTradeExercisedetail;
  * @author XKF
  * @since 2024-11-21
  */
+@Mapper
 public interface IHisTradeExercisedetailMapper extends BaseMapper<HisTradeExercisedetail> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHisWrtradeOrderdetailMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.HisWrtradeOrderdetail;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.HisWrtradeOrderdetail;
  * @author XKF
  * @since 2024-08-06
  */
+@Mapper
 public interface IHisWrtradeOrderdetailMapper extends BaseMapper<HisWrtradeOrderdetail> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IHisWrtradeTradedetailMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.HisWrtradeTradedetail;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.HisWrtradeTradedetail;
  * @author XKF
  * @since 2024-08-07
  */
+@Mapper
 public interface IHisWrtradeTradedetailMapper extends BaseMapper<HisWrtradeTradedetail> {
 
 }

+ 11 - 4
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMarketMapper.java

@@ -3,11 +3,11 @@ package com.muchinfo.mtp3interface.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Market;
 import com.muchinfo.mtp3pojos.entity.Usergroup;
-import com.muchinfo.mtp3pojos.vo.profitshar.Marketvo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -20,9 +20,16 @@ import java.util.List;
 @Mapper
 public interface IMarketMapper extends BaseMapper<Market> {
 
-    List<Marketvo> getMarketsNameByUseridAndrole(@Param("uid") Long uid, @Param("roletype") int roletype);
+    List<Market> getMarketsNameByUseridAndrole(@Param("uid") Long uid, @Param("roletype") List<Integer> roletype);
 
-    List<Market> getNoTradeConfigMarkets(@Param("areauserid")Long areauserid, @Param("usergroupid")Long usergroupid);
+    List<Market> getNoTradeConfigMarkets(@Param("areauserid") Long areauserid, @Param("usergroupid") Long usergroupid);
+
+    List<Usergroup> getNoTradeConfigGroups(@Param("areauserid") Long areauserid);
+
+    List<Market> queryAreaGoodsMarkets(@Param("userid") Long userid);
+
+    void updateExchareaid(@Param("marketids") List<Integer> marketids, @Param("exchareaid") Long exchareaid);
+
+    void updateExchareaidNull(@Param("userid") Long userid);
 
-    List<Usergroup> getNoTradeConfigGroups(@Param("areauserid")Long areauserid);
 }

+ 18 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMmrelation2Mapper.java

@@ -0,0 +1,18 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.Mmrelation2;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 二级做市关系配置表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Mapper
+public interface IMmrelation2Mapper extends BaseMapper<Mmrelation2> {
+
+}

+ 18 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMsExtendroleMapper.java

@@ -0,0 +1,18 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.MsExtendrole;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 扩展角色表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-16
+ */
+@Mapper
+public interface IMsExtendroleMapper extends BaseMapper<MsExtendrole> {
+
+}

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancebreachMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Performancebreach;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Performancebreach;
  * @author XKF
  * @since 2024-11-15
  */
+@Mapper
 public interface IPerformancebreachMapper extends BaseMapper<Performancebreach> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancebreachapplyMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Performancebreachapply;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Performancebreachapply;
  * @author XKF
  * @since 2024-11-21
  */
+@Mapper
 public interface IPerformancebreachapplyMapper extends BaseMapper<Performancebreachapply> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformanceplanMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.Performanceplan;
 import com.muchinfo.mtp3pojos.vo.performance.*;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -14,6 +15,7 @@ import org.apache.ibatis.annotations.Param;
  * @author XKF
  * @since 2024-11-08
  */
+@Mapper
 public interface IPerformanceplanMapper extends BaseMapper<Performanceplan> {
 
     IPage<PayPerformanceResult> query(IPage<PayPerformanceResult> page, @Param("vo") PayPerformanceParam param);

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformanceplantemplateMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Performanceplantemplate;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Performanceplantemplate;
  * @author XKF
  * @since 2024-08-07
  */
+@Mapper
 public interface IPerformanceplantemplateMapper extends BaseMapper<Performanceplantemplate> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancestepMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Performancestep;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Performancestep;
  * @author XKF
  * @since 2024-11-20
  */
+@Mapper
 public interface IPerformancestepMapper extends BaseMapper<Performancestep> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancesteptemplateMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Performancesteptemplate;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Performancesteptemplate;
  * @author XKF
  * @since 2024-08-07
  */
+@Mapper
 public interface IPerformancesteptemplateMapper extends BaseMapper<Performancesteptemplate> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformancesteptypeMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Performancesteptype;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,6 +13,7 @@ import com.muchinfo.mtp3pojos.entity.Performancesteptype;
  * @author XKF
  * @since 2024-11-20
  */
+@Mapper
 public interface IPerformancesteptypeMapper extends BaseMapper<Performancesteptype> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IQuoterMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Quoter;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Quoter;
  * @author XKF
  * @since 2024-08-09
  */
+@Mapper
 public interface IQuoterMapper extends BaseMapper<Quoter> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReckonDayaccountppMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.ReckonDayaccountpp;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.ReckonDayaccountpp;
  * @author XKF
  * @since 2024-08-16
  */
+@Mapper
 public interface IReckonDayaccountppMapper extends BaseMapper<ReckonDayaccountpp> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReckonDaydividecountMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.ReckonDaydividecount;
 import com.muchinfo.mtp3pojos.vo.settlement.*;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -17,6 +18,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-08-02
  */
+@Mapper
 public interface IReckonDaydividecountMapper extends BaseMapper<ReckonDaydividecount> {
 
     IPage<SecondProfitSharResult> queryShareDayList(IPage<SecondProfitSharResult> page, @Param("areauserid") Long areauserid, @Param("areatype")Integer areatype, @Param("tradedate")String tradedate);

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReckonDaydividecountdetailMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.ReckonDaydividecountdetail;
 import com.muchinfo.mtp3pojos.vo.reportform.*;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
@@ -21,6 +22,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-08-12
  */
+@Mapper
 public interface IReckonDaydividecountdetailMapper extends BaseMapper<ReckonDaydividecountdetail> {
 
     IPage<ShareAmountQueryResult> queryDayDivide(IPage<ShareAmountQueryResult> page, @Param("vo") ShareAmountQueryParam param);

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReckonDaytaaccountMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.ReckonDaytaaccount;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.ReckonDaytaaccount;
  * @author XKF
  * @since 2024-08-16
  */
+@Mapper
 public interface IReckonDaytaaccountMapper extends BaseMapper<ReckonDaytaaccount> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReportPlateformppMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.ReportPlateformpp;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.ReportPlateformpp;
  * @author XKF
  * @since 2024-08-21
  */
+@Mapper
 public interface IReportPlateformppMapper extends BaseMapper<ReportPlateformpp> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IReportTaaccountMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.ReportTaaccount;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.ReportTaaccount;
  * @author XKF
  * @since 2024-08-21
  */
+@Mapper
 public interface IReportTaaccountMapper extends BaseMapper<ReportTaaccount> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IRiskratiotypeMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Riskratiotype;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Riskratiotype;
  * @author XKF
  * @since 2024-09-04
  */
+@Mapper
 public interface IRiskratiotypeMapper extends BaseMapper<Riskratiotype> {
 
 }

+ 18 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IScoretypeMapper.java

@@ -0,0 +1,18 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.Scoretype;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 积分类型表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Mapper
+public interface IScoretypeMapper extends BaseMapper<Scoretype> {
+
+}

+ 12 - 3
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ISystemmanagerMapper.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.Systemmanager;
 import com.muchinfo.mtp3pojos.vo.marketrun.MarketRunLoginUserResult;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountOrgan2UserResult;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountSelfsupportParam;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountSelfsupportResult;
 import com.muchinfo.mtp3pojos.vo.systemsetup.SystemLoginErrorParam;
 import com.muchinfo.mtp3pojos.vo.systemsetup.SystemLoginErrorResult;
 import com.muchinfo.mtp3pojos.vo.systemsetup.SystemUserLogParam;
@@ -28,13 +31,19 @@ public interface ISystemmanagerMapper extends BaseMapper<Systemmanager> {
 
     IPage<SystemUserResResult> selectByPageVo(IPage<SystemUserResResult> page, @Param("systemParam") SystemUserReqParam systemParam);
 
-    List<Systemmanager> getSystemManagerByRole(@Param("autoId")Integer autoId);
+    List<Systemmanager> getSystemManagerByRole(@Param("autoId") Integer autoId);
 
-    IPage<SystemUserLogResult> selectLogByParam(IPage<SystemUserLogResult> page,@Param("vo") SystemUserLogParam param);
+    IPage<SystemUserLogResult> selectLogByParam(IPage<SystemUserLogResult> page, @Param("vo") SystemUserLogParam param);
 
     IPage<SystemLoginErrorResult> queryUserLoginFlow(IPage<SystemLoginErrorResult> page, @Param("vo") SystemLoginErrorParam param);
 
     List<SystemLoginErrorResult> queryUserLoginFlow(@Param("vo") SystemLoginErrorParam param);
 
-    IPage<MarketRunLoginUserResult> queryUserOnlineByPage(IPage<MarketRunLoginUserResult> page,@Param("loginid") String loginid, @Param("memberuserid")Long memberuserid,@Param("parentuserid") Long parentuserid);
+    IPage<MarketRunLoginUserResult> queryUserOnlineByPage(IPage<MarketRunLoginUserResult> page, @Param("loginid") String loginid, @Param("memberuserid") Long memberuserid, @Param("parentuserid") Long parentuserid);
+
+    IPage<UserAccountOrgan2UserResult> getAllUserByOrgan2(IPage<UserAccountOrgan2UserResult> page, @Param("userid") Long userid);
+
+    void updateorgan2User(@Param("userid") Long userid, @Param("status") Integer status);
+
+    IPage<UserAccountSelfsupportResult> queryselfsupport(IPage<UserAccountSelfsupportResult> page, @Param("vo") UserAccountSelfsupportParam param);
 }

+ 12 - 4
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITaaccountMapper.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.Taaccount;
 import com.muchinfo.mtp3pojos.vo.common.TAAccountChildrenResult;
 import com.muchinfo.mtp3pojos.vo.marketrun.TaaccountMonitorVo;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRoleParam;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
 import com.muchinfo.mtp3pojos.vo.reportform.RefUserResult;
 import com.muchinfo.mtp3pojos.vo.reportform.TAAccountChildrenSelect;
 import com.muchinfo.mtp3pojos.vo.taaccount.*;
@@ -31,13 +33,19 @@ public interface ITaaccountMapper extends BaseMapper<Taaccount> {
 
     IPage<TaAccountAmountStreamResult> selectAmountStream(IPage<TaAccountAmountStreamResult> page, @Param("vo") TaAccountAmountStreamParam param);
 
-    List<TaAccountAmountStreamResult> selectAmountStream( @Param("vo") TaAccountAmountStreamParam param);
+    List<TaAccountAmountStreamResult> selectAmountStream(@Param("vo") TaAccountAmountStreamParam param);
 
-    List<TAAccountChildrenResult> queryTAAccountChildren(@Param("accountName") String accountName,@Param("areaUserId")  Long areaUserId);
+    List<TAAccountChildrenResult> queryTAAccountChildren(@Param("accountName") String accountName, @Param("areaUserId") Long areaUserId);
 
-    List<RefUserResult> queryRefUserSelect(@Param("searchcode")String searchcode,@Param("refereeuserid") Long refereeuserid);
+    List<RefUserResult> queryRefUserSelect(@Param("searchcode") String searchcode, @Param("refereeuserid") Long refereeuserid);
 
     List<TAAccountChildrenSelect> queryChildren(@Param("searchcode") String searchcode, @Param("relateduserid") Long relateduserid);
 
-    TaaccountMonitorVo getMonitorInvestor(@Param("accountid")Long accountid, @Param("puserid")Long puserid);
+    TaaccountMonitorVo getMonitorInvestor(@Param("accountid") Long accountid, @Param("puserid") Long puserid);
+
+    IPage<UserAccountRspResult> queryRoleOrganPage(IPage<UserAccountRspResult> page, @Param("vo") UserAccountRoleParam param);
+
+    IPage<UserAccountRspResult> queryWarehouseOrganPage(IPage<UserAccountRspResult> page, @Param("vo") UserAccountRoleParam param);
+
+    void deleteUserMarket(@Param("userid") Long userid, @Param("marketids") List<Long> marketids);
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IThjSpotgoodsdepositMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.ThjSpotgoodsdeposit;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.ThjSpotgoodsdeposit;
  * @author XKF
  * @since 2024-12-04
  */
+@Mapper
 public interface IThjSpotgoodsdepositMapper extends BaseMapper<ThjSpotgoodsdeposit> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITradeExercisedetailMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.TradeExercisedetail;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.TradeExercisedetail;
  * @author XKF
  * @since 2024-11-21
  */
+@Mapper
 public interface ITradeExercisedetailMapper extends BaseMapper<TradeExercisedetail> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITradeHolderdetailexMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.TradeHolderdetailex;
 import com.muchinfo.mtp3pojos.vo.query.order.*;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -16,6 +17,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-10-15
  */
+@Mapper
 public interface ITradeHolderdetailexMapper extends BaseMapper<TradeHolderdetailex> {
 
     IPage<OrderQueryResult> query(IPage<OrderQueryResult> page, @Param("vo") OrderQueryParam param);

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITradepositionMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Tradeposition;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -14,6 +15,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-07-31
  */
+@Mapper
 public interface ITradepositionMapper extends BaseMapper<Tradeposition> {
 
     List<Tradeposition> queryAmount(@Param("areaid") Long areaid);

+ 4 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUseraccountMapper.java

@@ -3,12 +3,14 @@ package com.muchinfo.mtp3interface.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.Useraccount;
+import com.muchinfo.mtp3pojos.entity.Userreckonaccount;
 import com.muchinfo.mtp3pojos.vo.common.InvestorSelectParam;
 import com.muchinfo.mtp3pojos.vo.common.InvestorSelectResult;
 import com.muchinfo.mtp3pojos.vo.common.OrganSelectParam;
 import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
 import com.muchinfo.mtp3pojos.vo.investor.*;
 import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRoleParam;
 import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
 import com.muchinfo.mtp3pojos.vo.profitshar.ProfitSharGroupOrganResult;
 import org.apache.ibatis.annotations.Mapper;
@@ -81,4 +83,6 @@ public interface IUseraccountMapper extends BaseMapper<Useraccount> {
     List<OrganSelectResult> queryOrganSelect2And3(@Param("vo") OrganSelectParam param);
 
     List<Useraccount> queryUserAccount(@Param("userid") Long userid);
+
+    List<Userreckonaccount> queryUra(@Param("userid")Long userid);
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUseresignrecordMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Useresignrecord;
+import org.apache.ibatis.annotations.Mapper;
 
 import java.util.Map;
 
@@ -13,6 +14,7 @@ import java.util.Map;
  * @author XKF
  * @since 2024-07-17
  */
+@Mapper
 public interface IUseresignrecordMapper extends BaseMapper<Useresignrecord> {
 
     void insertUserESignRecordFromConfig(Map<String, Object> map);

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUsergroupMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Usergroup;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,6 +13,7 @@ AreaUserID = 1为平台对机构分组 Mapper 接口
  * @author XKF
  * @since 2024-09-04
  */
+@Mapper
 public interface IUsergroupMapper extends BaseMapper<Usergroup> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUsergroupdetailMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Usergroupdetail;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Usergroupdetail;
  * @author XKF
  * @since 2024-09-05
  */
+@Mapper
 public interface IUsergroupdetailMapper extends BaseMapper<Usergroupdetail> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUsergrouptradeconfigMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Usergrouptradeconfig;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,6 +13,7 @@ import com.muchinfo.mtp3pojos.entity.Usergrouptradeconfig;
  * @author XKF
  * @since 2024-09-05
  */
+@Mapper
 public interface IUsergrouptradeconfigMapper extends BaseMapper<Usergrouptradeconfig> {
 
 }

+ 18 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUsermarkettradeconfigMapper.java

@@ -0,0 +1,18 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.Usermarkettradeconfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 会员费用个性化配置表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-16
+ */
+@Mapper
+public interface IUsermarkettradeconfigMapper extends BaseMapper<Usermarkettradeconfig> {
+
+}

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWarehouseinfoMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Warehouseinfo;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Warehouseinfo;
  * @author XKF
  * @since 2024-08-08
  */
+@Mapper
 public interface IWarehouseinfoMapper extends BaseMapper<Warehouseinfo> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrcategoryMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wrcategory;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Wrcategory;
  * @author XKF
  * @since 2024-12-02
  */
+@Mapper
 public interface IWrcategoryMapper extends BaseMapper<Wrcategory> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrfactortypeMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wrfactortype;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Wrfactortype;
  * @author XKF
  * @since 2024-08-06
  */
+@Mapper
 public interface IWrfactortypeMapper extends BaseMapper<Wrfactortype> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrfactortypeitemMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wrfactortypeitem;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Wrfactortypeitem;
  * @author XKF
  * @since 2024-10-08
  */
+@Mapper
 public interface IWrfactortypeitemMapper extends BaseMapper<Wrfactortypeitem> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrholdlbMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wrholdlb;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,6 +13,7 @@ import com.muchinfo.mtp3pojos.entity.Wrholdlb;
  * @author XKF
  * @since 2024-12-02
  */
+@Mapper
 public interface IWrholdlbMapper extends BaseMapper<Wrholdlb> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutinapplyMapper.java

@@ -7,6 +7,7 @@ import com.muchinfo.mtp3pojos.entity.Wrcategory;
 import com.muchinfo.mtp3pojos.entity.Wroutinapply;
 import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
 import com.muchinfo.mtp3pojos.vo.warehouse.*;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -19,6 +20,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-11-27
  */
+@Mapper
 public interface IWroutinapplyMapper extends BaseMapper<Wroutinapply> {
 
     IPage<WarehouseQueryResult> queryWROutInApplyPage(IPage<WarehouseQueryResult> page, @Param("vo") WarehouseQueryParam param);

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutindetailMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wroutindetail;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Wroutindetail;
  * @author XKF
  * @since 2024-11-29
  */
+@Mapper
 public interface IWroutindetailMapper extends BaseMapper<Wroutindetail> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutinexpressMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wroutinexpress;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Wroutinexpress;
  * @author XKF
  * @since 2024-11-29
  */
+@Mapper
 public interface IWroutinexpressMapper extends BaseMapper<Wroutinexpress> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutinfactorydetailMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wroutinfactorydetail;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Wroutinfactorydetail;
  * @author XKF
  * @since 2024-11-29
  */
+@Mapper
 public interface IWroutinfactorydetailMapper extends BaseMapper<Wroutinfactorydetail> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrstandardMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wrstandard;
 import com.muchinfo.mtp3pojos.vo.query.deliveryorder.DeliveryOrderWrsParam;
 import com.muchinfo.mtp3pojos.vo.query.deliveryorder.DeliveryOrderWrsResult;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -16,6 +17,7 @@ import java.util.List;
  * @author XKF
  * @since 2024-08-07
  */
+@Mapper
 public interface IWrstandardMapper extends BaseMapper<Wrstandard> {
 
     List<DeliveryOrderWrsResult> queryWRStandard(@Param("vo") DeliveryOrderWrsParam param);

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrstandardfactoryitemMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Wrstandardfactoryitem;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.Wrstandardfactoryitem;
  * @author XKF
  * @since 2024-12-02
  */
+@Mapper
 public interface IWrstandardfactoryitemMapper extends BaseMapper<Wrstandardfactoryitem> {
 
 }

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWrtradeTradedetailMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.WrtradeTradedetail;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.muchinfo.mtp3pojos.entity.WrtradeTradedetail;
  * @author XKF
  * @since 2024-08-07
  */
+@Mapper
 public interface IWrtradeTradedetailMapper extends BaseMapper<WrtradeTradedetail> {
 
 }

+ 84 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Arearoledivideconfig.java

@@ -0,0 +1,84 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 机构角色分成配置表
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("AREAROLEDIVIDECONFIG")
+@ApiModel(value="Arearoledivideconfig对象", description="机构角色分成配置表")
+public class Arearoledivideconfig extends Model<Arearoledivideconfig> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "机构用户ID 其他做市关系,都设置为 1 ")
+    private Long userid;
+
+    @ApiModelProperty(value = "市场ID(此项为0时,为通用设置)")
+    @TableField("MARKETID")
+    private Long marketid;
+
+    @ApiModelProperty(value = "商品ID(此项为0时,为通用设置)")
+    @TableField("GOODSID")
+    private Long goodsid;
+
+    @ApiModelProperty(value = "角色类型 -  1:交易所 2:运营机构 3:营销中心 4:仓库机构 5:三方服务机构 6:自营会员 7:纪经会员 8:做市会员 9:产业会员 10:金融机构")
+    @TableField("ROLETYPE")
+    private Integer roletype;
+
+    @ApiModelProperty(value = "费用类型 - 101建仓(买)手续费 102平仓(卖)手续费 103买递延费(仓储费) 104卖递延费 105买交割手续费 106 卖交割手续费   107 调期费 ")
+    @TableField("TRADEFEEID")
+    private Integer tradefeeid;
+
+    @ApiModelProperty(value = "费用算法 1:比率 2:固定")
+    @TableField("FEEALGORITHM")
+    private Integer feealgorithm;
+
+    @ApiModelProperty(value = "分润值")
+    @TableField("DIVIDEVALUE")
+    private BigDecimal dividevalue;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("CREATETIME")
+    private Date createtime;
+
+    @ApiModelProperty(value = "创建人ID")
+    @TableField("CREATORID")
+    private Long creatorid;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField("MODIFYTIME")
+    private Date modifytime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("MODIFIERID")
+    private Long modifierid;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.userid;
+    }
+
+}

+ 60 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Arearolemarketmaker.java

@@ -0,0 +1,60 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 机构角色市场权限表
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("AREAROLEMARKETMAKER")
+@ApiModel(value="Arearolemarketmaker对象", description="机构角色市场权限表")
+public class Arearolemarketmaker extends Model<Arearolemarketmaker> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "机构用户ID")
+    private Long areauserid;
+
+    @ApiModelProperty(value = "角色类型 -  19:场外期权做市商")
+    @TableField("ROLETYPE")
+    private Integer roletype;
+
+    @ApiModelProperty(value = "做市会员用户ID")
+    @TableField("MMUSERID")
+    private Long mmuserid;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField("MODIFYTIME")
+    private Date modifytime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("MODIFIERID")
+    private Long modifierid;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.areauserid;
+    }
+
+}

+ 1 - 1
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankSystemconfig.java

@@ -33,7 +33,7 @@ public class BankSystemconfig extends Model<BankSystemconfig> {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "参数ID")
-      @TableId(value = "CONFIGID")
+    @TableId(value = "CONFIGID")
     private Integer configid;
 
     @ApiModelProperty(value = "参数代码")

+ 51 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Customertypeareadetail.java

@@ -0,0 +1,51 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 客户类别做市明细表
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("CUSTOMERTYPEAREADETAIL")
+@ApiModel(value="Customertypeareadetail对象", description="客户类别做市明细表")
+public class Customertypeareadetail extends Model<Customertypeareadetail> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "机构客户类别")
+    private Integer customertype;
+
+    @ApiModelProperty(value = "机构UserID")
+    @TableField("USERID")
+    private Long userid;
+
+    @ApiModelProperty(value = "角色类型 - 8:做市会员")
+    @TableField("AREAROLEID")
+    private Integer arearoleid;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.customertype;
+    }
+
+}

+ 80 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Hedgeaccount.java

@@ -0,0 +1,80 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 对冲账号配置表
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("HEDGEACCOUNT")
+@ApiModel(value="Hedgeaccount对象", description="对冲账号配置表")
+public class Hedgeaccount extends Model<Hedgeaccount> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "账号代码")
+    private String code;
+
+    @ApiModelProperty(value = "接口类型 - 1:对冲接口 2:交易接口")
+    @TableField("APITYPE")
+    private Integer apitype;
+
+    @ApiModelProperty(value = "账号名称")
+    @TableField("NAME")
+    private String name;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("CREATEDATE")
+    private Date createdate;
+
+    @ApiModelProperty(value = "是否有效 - 0:无效 1:有效")
+    @TableField("ACCOUNTSTATUS")
+    private Integer accountstatus;
+
+    @ApiModelProperty(value = "登录密码(MD5)")
+    @TableField("LOGINPWD")
+    private String loginpwd;
+
+    @ApiModelProperty(value = "是否发送行情 - 0:不发送 1:发送")
+    @TableField("ISSENDQUOTATION")
+    private Integer issendquotation;
+
+    @ApiModelProperty(value = "主Key")
+    @TableField("MASTERKEY")
+    private String masterkey;
+
+    @ApiModelProperty(value = "最后操作时间")
+    @TableField("LASTOPERATEDATE")
+    private Date lastoperatedate;
+
+    @ApiModelProperty(value = "报价商用户ID")
+    @TableField("QUOTERUSERID")
+    private Long quoteruserid;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.code;
+    }
+
+}

+ 8 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Market.java

@@ -245,6 +245,14 @@ public class Market extends Model<Market> {
     @TableField("RISKCONTROLMODE")
     private Integer riskcontrolmode;
 
+    @TableField(select = false)
+    private Integer roletype;
+
+    @TableField(select = false)
+    private Integer spotrighttype;
+
+    @TableField(select = false)
+    private Integer buyspotrighttype;
     @Override
     public Serializable pkVal() {
         return this.marketid;

+ 60 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Mmrelation2.java

@@ -0,0 +1,60 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 二级做市关系配置表
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("MMRELATION2")
+@ApiModel(value="Mmrelation2对象", description="二级做市关系配置表")
+public class Mmrelation2 extends Model<Mmrelation2> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "做市会员ID")
+    private Long memberuserid;
+
+    @ApiModelProperty(value = "接单做市会员ID")
+    @TableField("MATCHUSERID")
+    private Long matchuserid;
+
+    @ApiModelProperty(value = "接单顺序")
+    @TableField("MATCHSEQ")
+    private Long matchseq;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField("MODIFYTIME")
+    private Date modifytime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("MODIFIERID")
+    private Long modifierid;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.memberuserid;
+    }
+
+}

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio