Parcourir la source

通知公告更改

xie.kaifeng il y a 5 mois
Parent
commit
737a71fe49

+ 15 - 8
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/BankAccountController.java

@@ -38,11 +38,11 @@ public class BankAccountController {
     @ApiOperation("资金账户管理->银行签约-->初始化托管银行")
     @RequestMapping(method = RequestMethod.GET, value = "/dealAccountSignInit")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
-    private AjaxResult<BankCusbankinfo> dealAccountSignInit(Long accountid ,HttpServletRequest request) {
-        return iBankAccountSignService.dealAccountSignInit(accountid,request);
+    private AjaxResult<BankCusbankinfo> dealAccountSignInit(Long accountid, HttpServletRequest request) {
+        return iBankAccountSignService.dealAccountSignInit(accountid, request);
     }
 
-    @ApiOperation("资金账户管理-->处理银行签约")
+    @ApiOperation("资金账户管理-->处理银行签约/签解约管理 -->修改银行签约")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     @RequestMapping(method = RequestMethod.POST, value = "/dealAccountSign")
     public AjaxResult dealAccountSign(@RequestBody String param, HttpServletRequest request) {
@@ -55,28 +55,35 @@ public class BankAccountController {
         }
     }
 
-    @ApiOperation("获取签约银行详细信息")
+    @ApiOperation("获取签约银行详细信息/签解约管理 -->获取签约银行详细信息")
     @RequestMapping(method = RequestMethod.GET, value = "/getSignBankById")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     private AjaxResult<BankAccountsignResult> getSignBankById(String accountcode, String cusbankid, String applyexchticket, HttpServletRequest request) {
         return iBankAccountSignService.getSignBankById(accountcode, cusbankid, applyexchticket, request);
     }
 
-    @ApiOperation("审核")
+    @ApiOperation("签解约管理 --> 审核")
     @RequestMapping(method = RequestMethod.GET, value = "/audit")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
-    private AjaxResult audit(String applyexchticket, Integer Auditflag, String Msg, HttpServletRequest request) {
-        return iBankAccountSignService.audit(Auditflag, Msg, applyexchticket, request);
+    private AjaxResult audit(String applyexchticket, Integer auditflag, String Msg, HttpServletRequest request) {
+        return iBankAccountSignService.audit(auditflag, Msg, applyexchticket, request);
     }
 
 
-    @ApiOperation("银行业务/查询管理-->出入金查询")
+    @ApiOperation("银行业务/查询管理-->出入金查询/出入金审核查询")
     @ApiResponse(code = 200, message = "成功", response = PageResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/queryPutOrIn")
     public PageResult<PutOrInAmountQueryResult> queryPutOrIn(PutOrInAmountQueryParam param, HttpServletRequest request) {
         return iBankAccountSignService.queryPutOrIn(param, request);
     }
 
+    @ApiOperation("出入金审核 --> 审核/复核")
+    @RequestMapping(method = RequestMethod.GET, value = "/accountoutinaudit")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    private AjaxResult accountoutinaudit(String auditid, Integer auditflag, String msg, HttpServletRequest request) {
+        return iBankAccountSignService.accountoutinaudit(auditid, auditflag, msg, request);
+    }
+
     @ApiOperation("银行业务/查询管理-->出入金查询详情")
     @ApiResponse(code = 200, message = "成功", response = PageResult.class)
     @RequestMapping(method = RequestMethod.GET, value = "/queryPutOrInDetail")

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

@@ -23,4 +23,6 @@ public interface IBankAccountSignService {
     AjaxResult<BankCusbankinfo> dealAccountSignInit(Long accountid, HttpServletRequest request);
 
     AjaxResult audit(Integer auditflag, String msg, String applyexchticket, HttpServletRequest request);
+
+    AjaxResult accountoutinaudit(String auditid, Integer auditflag, String msg, HttpServletRequest request);
 }

+ 79 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/BankAccountSignServiceImpl.java

@@ -431,6 +431,85 @@ public class BankAccountSignServiceImpl implements IBankAccountSignService {
         return null;
     }
 
+    @Override
+    public AjaxResult accountoutinaudit(String auditid, Integer auditflag, String msg, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        BankAccountoutinapply bAccountOutInApply = iBankAccountoutinapplyMapper.selectOne(new QueryWrapper<BankAccountoutinapply>()
+                .eq("exchticket", auditid));
+
+        Long uuid = SerialNumberUtils.getNewSerialNumber(SerialNumberUtils.prefix_bank);
+        Calculator ca = new Calculator(uuid);
+        SerialNumberUtils.lockMap.put(uuid, ca);
+        // 平台审核结果通知请求(t2bExchConfirmBusinessReq)
+        log.info("--------出入金审核请求--------");
+        BankMI2.t2bExchConfirmBusinessReq.Builder builder = BankMI2.t2bExchConfirmBusinessReq.newBuilder();
+        Common.MessageHead.Builder hd = Common.MessageHead.newBuilder();
+        hd.setFunCode(FunCodeConstants.FunCode_Trade_t2bExchConfirmBusinessReq);
+        builder.setHeader(hd);
+        // 外部操作流水号(发起本次交易的流水,发起方填写)
+        builder.setExtoperatorid(uuid); // 外部操作流水号
+        builder.setCusbankid(bAccountOutInApply.getCusbankid()); // 托管银行编号
+        builder.setAccountCode(bAccountOutInApply.getAccountcode()); // 资金账户
+        if(bAccountOutInApply.getTradedate() != null){
+            builder.setTradedate(bAccountOutInApply.getTradedate()); // 交易日(被审业务发生的交易日)
+        }
+        builder.setExchticket(bAccountOutInApply.getExchticket()); // 平台流水号(被审核的流水)
+        if(bAccountOutInApply.getBankticket() != null){
+            builder.setBankticket(bAccountOutInApply.getBankticket()); // 中心流水号
+        }
+
+        builder.setBusinessconfirmstatus(auditflag==1?1:2); // 审核结果[1:通过;2:拒绝]
+        // ExecuteType申请类型 - 1:出金 2:入金
+        if (bAccountOutInApply.getExecutetype() == 1) {
+            builder.setBusinesstype(2); // 交易类型[1: 入金;2:出金;3:签约;4:解约]
+
+            if(auditflag==1 && ("rgyh".equals(bAccountOutInApply.getCusbankid()) || "manual".equals(bAccountOutInApply.getCusbankid()))
+                    && StringUtils.isNotBlank(msg)
+                    && StringUtils.isNotBlank(bAccountOutInApply.getExtendinfo())){
+                BankSignExtendInfo ei = JSON.parseObject(bAccountOutInApply.getExtendinfo(), BankSignExtendInfo.class);
+                ei.setAttachment(msg);
+                builder.setExtend(JSON.toJSONString(ei));
+            }
+        }else{
+            builder.setBusinesstype(1); // 交易类型[1: 入金;2:出金;3:签约;4:解约]
+        }
+
+        builder.setAuditid(systemmanager.getAutoid());//审核人
+        if (auditflag!=1 && StringUtils.isNotBlank(msg)){
+            builder.setRemark(msg); // 备注
+        }
+
+        log.debug(builder.build().toString());
+        byte[] body = ProtoHelper.getNTAS(builder.build().toByteArray(),
+                FunCodeConstants.FunCode_Trade_t2bExchConfirmBusinessReq);
+        log.debug(builder.build().toString());
+        rabbitTemplate.send(SysConstants.RabbitBankNtfKey, new Message(body, new MessageProperties()));
+
+        synchronized(ca){
+            try {
+                ca.wait(10000);
+                Object rsp = ca.obj;
+                if(rsp != null){
+                    BankMI2.t2bExchConfirmBusinessRsp rsp_ = (BankMI2.t2bExchConfirmBusinessRsp) rsp;
+                    if(rsp_.getStatus() == 0){
+                        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+                    }else if(rsp_.getStatus() == 6076){
+                        return AjaxResult.error(Constants.Error_Code_Design, ProtoErrorCodes.resultMsg(rsp_.getStatus()), "");
+                    }else{
+                        return AjaxResult.error(Constants.Error_Code_Design, ProtoErrorCodes.resultMsg(rsp_.getStatus())+":"+rsp_.getRetDesc(), "");
+                    }
+                }else{
+                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM005.getCode(), request.getHeader("Accept-Language"));
+                }
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }finally {
+                SerialNumberUtils.lockMap.remove(uuid);
+            }
+        }
+        return null;
+    }
+
     private void writelog(AccountSignParam sign, Integer type, Systemmanager user) {
         try {
             Systemmanagerlog syslog = new Systemmanagerlog();

+ 23 - 8
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/NoticeServiceImpl.java

@@ -91,9 +91,14 @@ public class NoticeServiceImpl implements INoticeService {
          * 只推送给投资者
          * 4:按会员广播(仅会员)
          * 只有平台管理员才有此选项,只有选中会员管理员都可以接收消息(不包括其下属投资者)
+         * 5: 全体交易商
+         * 如果是平台管理员, 发给所有交易商
+         * 如果是经纪会员, 发给下属的交易商 -- 经纪会员新增功能 20250612
+         *
+         * 20250612 目录只开放经纪会员 3,5类型,其它会员不开通公告通知功能
          */
         if (SysEnums.SendTypeEnum.ALLSEND.getCode().equals(param.getSendtype())) {
-            saveSendAll(noticeMsg);
+            saveSendAll(noticeMsg,systemmanager);
         } else if (SysEnums.SendTypeEnum.MEMBERSEND.getCode().equals(param.getSendtype())) {
             String[] split = param.getMemberidlist().split(",");
 
@@ -113,7 +118,7 @@ public class NoticeServiceImpl implements INoticeService {
             }
             saveSendOnlyMember(noticeMsg, split);
         } else if (SysEnums.SendTypeEnum.ALLUSER.getCode().equals(param.getSendtype())) {
-            saveSendAllUser(noticeMsg);
+            saveSendAllUser(noticeMsg,systemmanager);
         }
         return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
     }
@@ -552,7 +557,11 @@ public class NoticeServiceImpl implements INoticeService {
     public AjaxResult noticemsgedit(NoticeMsgAddParam addParam, HttpServletRequest request) throws ParseException {
         Noticemsg oldNoticeMsg = iNoticemsgMapper.selectOne(new QueryWrapper<Noticemsg>().eq("AUTOID", addParam.getAutoid()));
         oldNoticeMsg.setTitle(addParam.getTitle());
-        oldNoticeMsg.setContent(addParam.getContent());
+        oldNoticeMsg.setContent2(addParam.getContent2());
+        // 2:审核拒绝的编辑后状态更新为 0:未推送
+        if (oldNoticeMsg.getSentstatus() == 2) {
+            oldNoticeMsg.setSentstatus(0);
+        }
         oldNoticeMsg.setEndtime(DateTimeUtils.parseDate(addParam.getEndtime()));
         oldNoticeMsg.setScheduletime(DateTimeUtils.parseDate(addParam.getScheduletime()));
         iNoticemsgMapper.updateById(oldNoticeMsg);
@@ -575,11 +584,14 @@ public class NoticeServiceImpl implements INoticeService {
         return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
     }
 
-    private void saveSendAllUser(Noticemsg noticeMsg) {
+    private void saveSendAllUser(Noticemsg noticeMsg, Systemmanager systemmanager) {
         iNoticemsgMapper.insert(noticeMsg);
 
         //查所有的全体交易商
-        List<Useraccount> userAccountList = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>().eq("usertype", SysEnums.SZDivideTargetType.INVESTOR.getCode()));
+        List<Useraccount> userAccountList = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
+                .eq("usertype", SysEnums.SZDivideTargetType.INVESTOR.getCode())
+                .eq(systemmanager.getReletype() != 1,"memberuserid", systemmanager.getAreauserid()));
+
         if (CollectionUtils.isNotEmpty(userAccountList)) {
             for (Useraccount ua : userAccountList) {
                 Msgreceiver mr = new Msgreceiver();
@@ -623,11 +635,14 @@ public class NoticeServiceImpl implements INoticeService {
         }
     }
 
-    private void saveSendAll(Noticemsg noticeMsg) {
+    private void saveSendAll(Noticemsg noticeMsg, Systemmanager systemmanager) {
         iNoticemsgMapper.insert(noticeMsg);
 
-        //查所有的管理端用户包括机构用户,平台用户,会员用户
-        List<Systemmanager> users = iSystemmanagerMapper.selectList(new QueryWrapper<Systemmanager>().eq("managerstatus", SysEnums.SysStatus.ok.getCode()));
+        //查所有的管理端平台用户,会员用户用户包括机构用户
+        List<Systemmanager> users = iSystemmanagerMapper.selectList(new QueryWrapper<Systemmanager>()
+                .eq("managerstatus", SysEnums.SysStatus.ok.getCode())
+                .eq(systemmanager.getReletype() != 1,"areauserid", systemmanager.getAreauserid()));
+
         addMsgreceiver(noticeMsg, users);
     }
 

+ 5 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Noticemsg.java

@@ -8,6 +8,7 @@ import lombok.*;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -103,6 +104,10 @@ public class Noticemsg extends Model<Noticemsg> {
     @TableField("ISFORCEDISPLAY")
     private Integer isforcedisplay;
 
+    @ApiModelProperty(value = "内容2")
+    @TableField("CONTENT2")
+    private String content2;
+
     @TableField(select = false)
     private String creatorName;
     @TableField(select = false)

+ 1 - 1
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/notice/NoticeMsgAddParam.java

@@ -37,7 +37,7 @@ public class NoticeMsgAddParam {
     private String endtime;
 
     @ApiModelProperty(value = "内容")
-    private String content;
+    private String content2;
 
     @ApiModelProperty(value = "会员集合")
     private String memberidlist;