提交 2e19c743 authored 作者: hzh's avatar hzh

代码优化

上级 a6b735e0
......@@ -13,6 +13,7 @@ import org.dromara.common.weishi.service.WeishiService;
import org.dromara.mall.controller.weishi.admin.bo.InsureBo;
import org.dromara.mall.controller.weishi.admin.vo.InsureVo;
import org.dromara.mall.service.weishi.IInsureService;
import org.dromara.mall.service.weishi.IThirdWeishiService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -31,6 +32,7 @@ public class WeishiController {
private final WeishiService weishiService;
private final IInsureService insureService;
private final IThirdWeishiService thirdWeishiService;
/**
* 产品列表
......@@ -181,7 +183,7 @@ public class WeishiController {
* @return token
*/
private String getToken() {
return insureService.getToken();
return thirdWeishiService.getToken(LoginHelper.getDeptId());
}
}
......@@ -2,18 +2,11 @@ package org.dromara.mall.dubbo.weishi;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.weishi.model.res.AuthResponse;
import org.dromara.common.weishi.service.WeishiService;
import org.dromara.mall.api.weishi.RemoteWeishiService;
import org.dromara.mall.service.weishi.IInsureService;
import org.dromara.mall.service.weishi.IThirdWeishiService;
import org.springframework.stereotype.Service;
import java.time.Duration;
import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN;
/**
* @author hzh
* @date 2025-05-13
......@@ -23,16 +16,12 @@ import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN;
@DubboService
public class RemoteWeishiServiceImpl implements RemoteWeishiService {
private final WeishiService weishiService;
private final IThirdWeishiService thirdWeishiService;
private final IInsureService insureService;
@Override
public void getToken() {
String token = RedisUtils.getCacheObject(WEISHI_TOKEN);
if (StringUtils.isEmpty(token)) {
AuthResponse res = weishiService.authorize();
RedisUtils.setCacheObject(WEISHI_TOKEN, res.getAccess_token(), Duration.ofSeconds(res.getExpires_in().longValue()));
}
thirdWeishiService.updateToken(null);
}
@Override
......
package org.dromara.mall.enums.weishi;
public interface WeishiConstants {
/**
* token
*/
String WEISHI_TOKEN = "mall:third:weishi:token";
}
......@@ -15,13 +15,6 @@ import org.dromara.mall.domain.weishi.Insure;
*/
public interface IInsureService extends IBaseService<InsureVo, InsureBo, Insure> {
/**
* 获取token
*
* @return token
*/
String getToken();
/**
* 保存
*
......
......@@ -15,11 +15,13 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.service.AbstractBaseService;
import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.weishi.constant.OrderStatus;
import org.dromara.common.weishi.model.req.ApplyRequest;
import org.dromara.common.weishi.model.res.*;
import org.dromara.common.weishi.model.res.ApplyResponse;
import org.dromara.common.weishi.model.res.DetailResponse;
import org.dromara.common.weishi.model.res.ProductResponse;
import org.dromara.common.weishi.model.res.ProductsResponse;
import org.dromara.common.weishi.service.WeishiService;
import org.dromara.mall.controller.weishi.admin.bo.InsureBo;
import org.dromara.mall.controller.weishi.admin.vo.InsureInsuredsVo;
......@@ -29,14 +31,13 @@ import org.dromara.mall.controller.weishi.admin.vo.InsureVo;
import org.dromara.mall.domain.weishi.*;
import org.dromara.mall.mapper.weishi.*;
import org.dromara.mall.service.weishi.IInsureService;
import org.dromara.mall.service.weishi.IThirdWeishiService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.Duration;
import java.util.*;
import static cn.hutool.core.date.DatePattern.NORM_DATETIME_MINUTE_PATTERN;
import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN;
/**
* 保险订单Service业务层处理
......@@ -53,6 +54,7 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I
private final InsureUnitMapper unitMapper;
private final InsurePolicyHolderMapper policyHolderMapper;
private final InsureInsuredsMapper insuredsMapper;
private final IThirdWeishiService thirdWeishiService;
@Override
public BaseMapperPlus<Insure, InsureVo> mapper() {
......@@ -91,21 +93,12 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I
private final WeishiService weishiService;
@Override
public String getToken() {
String token = RedisUtils.getCacheObject(WEISHI_TOKEN);
if (StringUtils.isEmpty(token)) {
AuthResponse res = weishiService.authorize();
RedisUtils.setCacheObject(WEISHI_TOKEN, res.getAccess_token(), Duration.ofSeconds(res.getExpires_in().longValue()));
token = res.getAccess_token();
}
return token;
}
@Transactional(rollbackFor = Exception.class)
@Override
public void apply(ApplyRequest req, ApplyResponse res) {
String token = getToken();
String token = thirdWeishiService.getToken(LoginHelper.getDeptId());
//获取产品列表
List<ProductsResponse> productList = weishiService.productList(token);
//设置参数
......@@ -228,7 +221,7 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I
//获取被保人集合
List<InsureInsureds> insuredsList = insuredsMapper.selectList(new LambdaQueryWrapper<InsureInsureds>().in(InsureInsureds::getOrderNum, orderNumList));
insureList.forEach(i -> {
DetailResponse dr = weishiService.insureDetail(getToken(), i.getOrderId());
DetailResponse dr = weishiService.insureDetail(thirdWeishiService.getToken(i.getCreateDept()), i.getOrderId());
if (!StringUtils.equals(i.getStatus(), dr.getStatus())) {
i.setStatus(dr.getStatus());
baseMapper.updateById(i);
......
......@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.weishi.exception.WeishiException;
import org.dromara.common.weishi.model.req.AuthRequest;
import org.dromara.common.weishi.model.res.AuthResponse;
import org.dromara.common.weishi.service.WeishiService;
......@@ -32,14 +33,13 @@ public class ThirdWeishiServiceImpl implements IThirdWeishiService {
@Override
public String getToken(Long deptId) {
if (Objects.isNull(deptId)) {
throw new RuntimeException("该账号无部门,请先配置部门在使用旅游产品接口");
throw new WeishiException("该账号无部门,请先配置部门在使用旅游产品接口");
}
Account account = accountMapper.selectOne(Account::getDeptId, deptId);
if (Objects.isNull(account)) {
throw new RuntimeException("该部门没有配置");
throw new WeishiException("该部门没有配置");
}
String token = updateToken(account);
return token;
return updateToken(account);
}
private String updateToken(Account account) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论