|
@@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.muchinfo.mtp.proto.AkernelMI1;
|
|
|
|
|
+import com.muchinfo.mtp.proto.Common;
|
|
|
|
|
+import com.muchinfo.mtp.proto.ShortMessageMtp1;
|
|
|
import com.muchinfo.mtp.proto.convert.ServiceMemoryCache;
|
|
import com.muchinfo.mtp.proto.convert.ServiceMemoryCache;
|
|
|
import com.muchinfo.mtp3century.exception.GlobalException;
|
|
import com.muchinfo.mtp3century.exception.GlobalException;
|
|
|
import com.muchinfo.mtp3century.service.ICommonService;
|
|
import com.muchinfo.mtp3century.service.ICommonService;
|
|
@@ -14,19 +17,18 @@ import com.muchinfo.mtp3century.service.ISendMsgService;
|
|
|
import com.muchinfo.mtp3century.service.ISystemmanagerService;
|
|
import com.muchinfo.mtp3century.service.ISystemmanagerService;
|
|
|
import com.muchinfo.mtp3century.service.IUseraccountService;
|
|
import com.muchinfo.mtp3century.service.IUseraccountService;
|
|
|
import com.muchinfo.mtp3century.utils.RedisServiceUtil;
|
|
import com.muchinfo.mtp3century.utils.RedisServiceUtil;
|
|
|
-import com.muchinfo.mtp3common.enumtype.Constants;
|
|
|
|
|
-import com.muchinfo.mtp3common.enumtype.MessageType;
|
|
|
|
|
-import com.muchinfo.mtp3common.enumtype.SysConstants;
|
|
|
|
|
-import com.muchinfo.mtp3common.enumtype.SysEnums;
|
|
|
|
|
|
|
+import com.muchinfo.mtp3common.enumtype.*;
|
|
|
import com.muchinfo.mtp3common.utils.*;
|
|
import com.muchinfo.mtp3common.utils.*;
|
|
|
-import com.muchinfo.mtp3common.vo.AjaxResult;
|
|
|
|
|
-import com.muchinfo.mtp3common.vo.ExportResult;
|
|
|
|
|
-import com.muchinfo.mtp3common.vo.PageResult;
|
|
|
|
|
|
|
+import com.muchinfo.mtp3common.vo.*;
|
|
|
import com.muchinfo.mtp3interface.mapper.*;
|
|
import com.muchinfo.mtp3interface.mapper.*;
|
|
|
import com.muchinfo.mtp3pojos.entity.*;
|
|
import com.muchinfo.mtp3pojos.entity.*;
|
|
|
|
|
+import com.muchinfo.mtp3pojos.vo.ProtoErrorCodes;
|
|
|
import com.muchinfo.mtp3pojos.vo.investor.*;
|
|
import com.muchinfo.mtp3pojos.vo.investor.*;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
+import org.springframework.amqp.core.Message;
|
|
|
|
|
+import org.springframework.amqp.core.MessageProperties;
|
|
|
|
|
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -107,6 +109,13 @@ public class UseraccountServiceImpl extends ServiceImpl<IUseraccountMapper, User
|
|
|
private IEnumdicitemMapper iEnumdicitemMapper;
|
|
private IEnumdicitemMapper iEnumdicitemMapper;
|
|
|
@Resource
|
|
@Resource
|
|
|
private IAccounttradeconfigMapper iAccounttradeconfigMapper;
|
|
private IAccounttradeconfigMapper iAccounttradeconfigMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private IUsercancelapplyMapper iUsercancelapplyMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private RabbitTemplate rabbitTemplate;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private IBankAccountsignMapper iBankAccountsignMapper;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public PageResult<DealerQueryResult> queryOrganPage(DealerQueryParam dealerQueryParam, HttpServletRequest request) {
|
|
public PageResult<DealerQueryResult> queryOrganPage(DealerQueryParam dealerQueryParam, HttpServletRequest request) {
|
|
@@ -1588,6 +1597,179 @@ public class UseraccountServiceImpl extends ServiceImpl<IUseraccountMapper, User
|
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public PageResult<InvestorCancelApplyResult> usercancelapply(InvestorCancelApplyParam param, HttpServletRequest request) {
|
|
|
|
|
+ IPage<InvestorCancelApplyResult> page = new Page<>(param.getPageNum(), param.getPageSize());
|
|
|
|
|
+ IPage<InvestorCancelApplyResult> dealerQueryResults = iUseraccountMapper.usercancelapply(page, param);
|
|
|
|
|
+ PageResult<InvestorCancelApplyResult> pageResult = new PageResult<>();
|
|
|
|
|
+ pageResult.setCode(Constants.Success_Code_Design);
|
|
|
|
|
+ pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
|
|
|
|
|
+ pageResult.setPages(dealerQueryResults.getPages());
|
|
|
|
|
+ pageResult.setCurrent(dealerQueryResults.getCurrent());
|
|
|
|
|
+ pageResult.setTotal(dealerQueryResults.getTotal());
|
|
|
|
|
+ pageResult.setPageSize(dealerQueryResults.getSize());
|
|
|
|
|
+ pageResult.setData(dealerQueryResults.getRecords());
|
|
|
|
|
+ return pageResult;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult cancelview(Long autoid, HttpServletRequest request) {
|
|
|
|
|
+ Usercancelapply result = iUsercancelapplyMapper.selectOne(new QueryWrapper<Usercancelapply>().eq("autoid", autoid));
|
|
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
|
|
+ if(!iCommonService.checkUserAccountRole(systemmanager, result.getUserid())){
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult cancelaudit(Long autoid, Integer auditflag, String msg, HttpServletRequest request) {
|
|
|
|
|
+ Usercancelapply temp = iUsercancelapplyMapper.selectOne(new QueryWrapper<Usercancelapply>().eq("autoid", autoid));
|
|
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
|
|
+ if(!iCommonService.checkUserAccountRole(systemmanager, temp.getUserid())){
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!Objects.equals(temp.getHandlestatus(), SysEnums.AccountOffStatusEnum.PENDING.getType())){
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM022.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //判断资金账户
|
|
|
|
|
+ Taaccount ta = iTaaccountMapper.selectOne(new QueryWrapper<Taaccount>().eq("userid", temp.getUserid()));
|
|
|
|
|
+ if(ta == null){
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM023.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", temp.getUserid()));
|
|
|
|
|
+
|
|
|
|
|
+ //审核拒绝
|
|
|
|
|
+ if(auditflag == 2){
|
|
|
|
|
+ temp.setHandlestatus(SysEnums.AccountOffStatusEnum.REFUSED.getType());
|
|
|
|
|
+ temp.setApplystatus(SysEnums.AccountOffApplyEnum.FINISH.getType());
|
|
|
|
|
+ temp.setAuditid(systemmanager.getAutoid());
|
|
|
|
|
+ temp.setAudittime(new Date());
|
|
|
|
|
+ temp.setAuditremark(msg);
|
|
|
|
|
+ iUsercancelapplyMapper.update(temp,new QueryWrapper<Usercancelapply>().eq("autoid", temp.getAutoid()));
|
|
|
|
|
+
|
|
|
|
|
+ sendSMS(ua.getAccountname(), temp.getUserid(), 15);
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM024.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //校验账户类型
|
|
|
|
|
+ if(ua.getUsertype() != 5){
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM025.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //判断资金账户签约信息
|
|
|
|
|
+ BankAccountsign sign = iBankAccountsignMapper.selectOne(new QueryWrapper<BankAccountsign>().eq("accountcode", ta.getAccountid().toString()));
|
|
|
|
|
+ if(sign != null && sign.getSignstatus() != 1 && sign.getSignstatus() != 7){
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM026.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //审核通过
|
|
|
|
|
+ //判断是否是干净账户
|
|
|
|
|
+ if(ta.getTradestatus() != 7){
|
|
|
|
|
+ Long accountuuid = SerialNumberUtils.getNewSerialNumber(SerialNumberUtils.prefix_account);
|
|
|
|
|
+ AkernelMI1.AccountFundInfoReq.Builder accountbuilder = AkernelMI1.AccountFundInfoReq.newBuilder();
|
|
|
|
|
+ Common.MessageHead.Builder accounthd = Common.MessageHead.newBuilder();
|
|
|
|
|
+ accounthd.setAccountID(ta.getAccountid());
|
|
|
|
|
+ accounthd.setClientTime(System.currentTimeMillis());
|
|
|
|
|
+ accounthd.setResponseTopic(SysConstants.RabbitMoneyReqKey);
|
|
|
|
|
+ accounthd.setFunCode(FunCodeConstants.FunCode_Trade_AccountFundInfoReq);
|
|
|
|
|
+ accountbuilder.setOrderId(accountuuid);
|
|
|
|
|
+ accountbuilder.setAccountId(ta.getAccountid());
|
|
|
|
|
+ accountbuilder.setQueryBitMask(4);
|
|
|
|
|
+ byte[] accountbody = ProtoHelper.getNTAS(accountbuilder.build().toByteArray(),
|
|
|
|
|
+ FunCodeConstants.FunCode_Trade_AccountFundInfoReq);
|
|
|
|
|
+ //卡住
|
|
|
|
|
+ Calculator accountca = new Calculator(accountuuid);
|
|
|
|
|
+ SerialNumberUtils.lockMap.put(accountuuid, accountca);
|
|
|
|
|
+ rabbitTemplate.send(SysConstants.RabbitMoneyReqKey,new Message(accountbody, new MessageProperties()));
|
|
|
|
|
+
|
|
|
|
|
+ synchronized(accountca){
|
|
|
|
|
+ try {
|
|
|
|
|
+ accountca.wait(6000);
|
|
|
|
|
+ Object o = accountca.obj;
|
|
|
|
|
+ if(o != null){
|
|
|
|
|
+ AkernelMI1.AccountFundInfoRsp accountrsp = (AkernelMI1.AccountFundInfoRsp)o;
|
|
|
|
|
+ if(accountrsp.getRetCode() == 0){
|
|
|
|
|
+ if(accountrsp.getIsCleanAccount() == 1){
|
|
|
|
|
+ //干净账户
|
|
|
|
|
+ }else{
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_004.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, "[" + accountrsp.getRetCode() + "]" + ProtoErrorCodes.resultMsg(accountrsp.getRetCode()), "");
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.INVESTOR_ERROR_CODE_005.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (InterruptedException e) {
|
|
|
|
|
+ log.error("mq接收出入金返回信息失败,失败信息:" + e);
|
|
|
|
|
+ }finally {
|
|
|
|
|
+ SerialNumberUtils.lockMap.remove(accountuuid);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ temp.setApplystatus(SysEnums.AccountOffApplyEnum.HANDLING.getType());
|
|
|
|
|
+ temp.setAuditremark(msg);
|
|
|
|
|
+ iUsercancelapplyMapper.update(temp,new QueryWrapper<Usercancelapply>().eq("autoid", temp.getAutoid()));
|
|
|
|
|
+
|
|
|
|
|
+ //判断并发送积分
|
|
|
|
|
+ //result = sendClearScore(temp, ta, user);
|
|
|
|
|
+
|
|
|
|
|
+ // 发送用户注销消息给中心\银行接口
|
|
|
|
|
+ List<Taaccount> tas = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>()
|
|
|
|
|
+ .eq("userid", temp.getUserid())
|
|
|
|
|
+ .eq("ismain", 1));
|
|
|
|
|
+ iSendMsgService.sendM2BUnregistCustomerInfo(tas);
|
|
|
|
|
+
|
|
|
|
|
+ /*if(auditflag == 1){
|
|
|
|
|
+ if(result.get("userid") != null && result.get("accountid") != null){
|
|
|
|
|
+ sendMsgService.sendUserChangeMsg(
|
|
|
|
|
+ Long.parseLong(result.get("accountid").toString()),
|
|
|
|
|
+ Long.parseLong(result.get("userid").toString()),
|
|
|
|
|
+ SysEnums.UserOperateTypeEnum.DEL.getType(),
|
|
|
|
|
+ SysEnums.AccountOperateTypeEnum.DEL.getType(),
|
|
|
|
|
+ SysEnums.NotifyModeEnum.UNICAST.getType());
|
|
|
|
|
+
|
|
|
|
|
+ List<Long> loginids = userCancelApplyService.queryLoginidByUserid(Long.parseLong(result.get("userid").toString()));
|
|
|
|
|
+ if(loginids != null && loginids.size() > 0){
|
|
|
|
|
+ Set<Long> set_logid = new HashSet<>();
|
|
|
|
|
+ set_logid.addAll(loginids);
|
|
|
|
|
+ sendMsgService.sendLoginMsg(set_logid, SysEnums.UserOperateTypeEnum.DEL.getType(), SysEnums.NotifyModeEnum.UNICAST.getType());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }*/
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void sendSMS(String accountname, Long userid, int templateid){
|
|
|
|
|
+ Userinfo info = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", userid));
|
|
|
|
|
+ if(info == null || info.getMobile() == null)
|
|
|
|
|
+ return;
|
|
|
|
|
+ ShortMessageMtp1.ShortMsgSendReq.Builder builder = ShortMessageMtp1.ShortMsgSendReq.newBuilder();
|
|
|
|
|
+ builder.setMsgType(2);
|
|
|
|
|
+ builder.setTemplateID(templateid);
|
|
|
|
|
+ builder.setPriority(2);
|
|
|
|
|
+ builder.setScheduledTime("");
|
|
|
|
|
+ builder.addRecvPhone(EncryptionUtils.decryptForAES(info.getMobile()));
|
|
|
|
|
+ builder.addParamValues(accountname);
|
|
|
|
|
+
|
|
|
|
|
+ Common.MessageHead.Builder headBuil = Common.MessageHead.newBuilder();
|
|
|
|
|
+ headBuil.setFunCode(FunCodeConstants.FunCode_Trade_ShortMsgSendReq);
|
|
|
|
|
+ builder.setHeader(headBuil.build());
|
|
|
|
|
+ byte[] body = ProtoHelper.getNTAS(builder.build().toByteArray(), FunCodeConstants.FunCode_Trade_ShortMsgSendReq);
|
|
|
|
|
+ MessageProperties msgProperties = new MessageProperties();
|
|
|
|
|
+ msgProperties.setHeader("messageType", "protoBuf");
|
|
|
|
|
+ rabbitTemplate.send(SysConstants.RabbitShortMessage,new Message(body, msgProperties));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult<UserAccountDetailVo> getUserAccountDetail(Long userid, HttpServletRequest request) {
|
|
|
|
|
+ UserAccountDetailVo userAccountDetailVo = iUseraccountMapper.selectDetail(userid);
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), userAccountDetailVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private List<RulesConfigVo> getTradeRuleDescriptions(PersonalizationDelParam param) {
|
|
private List<RulesConfigVo> getTradeRuleDescriptions(PersonalizationDelParam param) {
|
|
|
List<RulesConfigVo> list = iUseraccountMapper.getTradeRuleDescriptions(param);
|
|
List<RulesConfigVo> list = iUseraccountMapper.getTradeRuleDescriptions(param);
|
|
|
|
|
|