package project.user.kyc.internal; import java.text.MessageFormat; import java.util.Date; import org.springframework.beans.BeanUtils; import org.springframework.jdbc.core.JdbcTemplate; import kernel.exception.BusinessException; import kernel.web.ApplicationUtil; import project.redis.RedisHandler; import project.user.UserRedisKeys; import project.user.kyc.KycHighLevel; import project.user.kyc.KycHighLevelService; public class KycHighLevelServiceImpl implements KycHighLevelService { private JdbcTemplate jdbcTemplate; private RedisHandler redisHandler; @Override public KycHighLevel get(String partyId) { KycHighLevel kycHighLevel = (KycHighLevel) redisHandler.get(UserRedisKeys.KYC_HIGHLEVEL_PARTY_ID + partyId); if (kycHighLevel != null) return kycHighLevel; KycHighLevel obj = new KycHighLevel(); obj.setPartyId(partyId); return obj; } @Override public void save(KycHighLevel entity) { KycHighLevel kycHighLevel = get(entity.getPartyId().toString()); if(entity.getStatus()==1) { entity.setApply_time(new Date()); }else { entity.setOperation_time(new Date()); } if (kycHighLevel.getId() == null) { entity.setId(ApplicationUtil.getCurrentTimeUUID()); Object[] jdbcParams = ApplicationUtil.getInsertStatement(entity); String insertUserSql = (String)jdbcParams[0]; Object[] sqlParameters = (Object[])jdbcParams[1]; jdbcTemplate.update(insertUserSql, sqlParameters); redisHandler.setSync(UserRedisKeys.KYC_HIGHLEVEL_PARTY_ID + entity.getPartyId().toString(), entity); } else { entity.setId(kycHighLevel.getId()); BeanUtils.copyProperties(entity, kycHighLevel); Object[] jdbcParams = ApplicationUtil.getUpdateStatement(kycHighLevel, "WHERE UUID=?", new Object[] {kycHighLevel.getId()}); String updateUserSql = (String)jdbcParams[0]; Object[] sqlParameters = (Object[])jdbcParams[1]; jdbcTemplate.update(updateUserSql, sqlParameters); redisHandler.setSync(UserRedisKeys.KYC_HIGHLEVEL_PARTY_ID + kycHighLevel.getPartyId().toString(), kycHighLevel); } } /** * 验证审核结果 */ public String checkApplyResult(String partyId) throws BusinessException { KycHighLevel kycHighLevel = get(partyId); if (null == kycHighLevel.getId()) return ""; String msg = ""; switch (kycHighLevel.getStatus()) { case 0: msg = "已经提交申请,请等待审核"; break; case 1: msg = "审核中"; break; case 2: msg = "审核已通过"; break; case 3: msg = MessageFormat.format("审核未通过,原因:{0}", kycHighLevel.getMsg()); break; default: msg = "审核状态异常请联系客服"; break; } if (kycHighLevel.getStatus() != 3) { throw new BusinessException(msg); } else { return msg; } } public void delete(String partyId) { KycHighLevel kycHighLevel = get(partyId); if (kycHighLevel != null) { jdbcTemplate.update("DELETE FROM T_KYC_HIGH_LEVEL WHERE UUID=?", partyId); redisHandler.remove(UserRedisKeys.KYC_HIGHLEVEL_PARTY_ID + partyId); } } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void setRedisHandler(RedisHandler redisHandler) { this.redisHandler = redisHandler; } }