@Override
@Transactional(rollbackFor = {PartnerException.class, RuntimeException.class})
public void setForgetPwd(String accountPhone, String password) throws PartnerException {
final Broker broker = brokerDao.findByPhoneExcludeTypeZero(accountPhone, 1);
final PartnerAdmin partnerAdmin = partnerAdminDao.findByPhone(accountPhone);
PartnerModificationTime pmt = new PartnerModificationTime();
if (broker != null) {
final boolean flag = false;
broker.setPwd(password);
pmt.setBrokerId(broker.getId());
pmt.setPmtTime(new Date());
if (partnerAdmin != null) {
partnerAdmin.setPwd(password);
partnerAdminMapper.updateById(partnerAdmin);
pmt.setPmtTime(new Date());
pmt.setAdminId(partnerAdmin.getId());
}
partnerModificationTimeMapper.save(pmt);
brokerMapper.updateById(broker);
TransactionSynchronizationManager.registerSynchronization(
new TransactionSynchronizationAdapter() {
public void afterCommit() {
if ("A".equals(broker.getType())) {
sendBrokerForgetPwdMq(broker);
}
if (partnerAdmin != null) {
sendAdminForgetPwdMq(partnerAdmin);
}
}
}
);
} else {
throw new PartnerException("该手机号非合伙人账号!");
}
}
private void sendBrokerForgetPwdMq(Broker broker) {
try {
PartnerStoreBroker psb = new PartnerStoreBroker();
psb.setBrokerId(broker.getId());
psb.setType(2);
List<PartnerStoreBroker> psbList = partnerStoreBrokerMapper.findByCondition(psb);
if (CollectionUtils.isNotEmpty(psbList)) {
psb = psbList.get(0);
PartnerStore ps = partnerStoreMapper.findById(psb.getObjId());
if (ps != null) {
PartnerOrganization organization = partnerOrganizationMapper.findById(ps.getOrgId());
if (organization != null) {
com.haowu.partner.domain.broker.Broker b = new com.haowu.partner.domain.broker.Broker(broker.getId(), broker.getName(),
broker.getPwd(), broker.getPhone(), broker.getPicUrl(), String.valueOf(broker.getGender()), broker.getCityId(), broker.getAreaId(),
broker.getUuid(), organization.getId(), ps.getId());
MQData mqData = new MQData("partner-mobile");
mqData.setExtData(b);
mqSender.publish(MQDest.DATA_BROKER_FORGET_PWD_TOPIC, mqData);
}
}
}
} catch (Exception e) {
logger.error("数据打通经纪人忘记密码发送信息失败", e);
}
}