提交 f4ac407c authored 作者: hzh's avatar hzh

代码优化

上级 4d239ca0
...@@ -10,4 +10,9 @@ public interface RemoteWeishiService { ...@@ -10,4 +10,9 @@ public interface RemoteWeishiService {
*/ */
void getToken(); void getToken();
/**
* 更新订单状态
*/
void updateOrderStatus();
} }
...@@ -42,6 +42,10 @@ public class DetailResponse { ...@@ -42,6 +42,10 @@ public class DetailResponse {
* 计划名称 * 计划名称
*/ */
private String PlanName; private String PlanName;
/**
* 保险公司
*/
private String InsurerAbbr;
/** /**
* 保单数量 * 保单数量
*/ */
...@@ -58,6 +62,10 @@ public class DetailResponse { ...@@ -58,6 +62,10 @@ public class DetailResponse {
* 实收保费 * 实收保费
*/ */
private BigDecimal ActPremium; private BigDecimal ActPremium;
/**
* 订单状态
*/
private String status;
/** /**
* 被保人列表 * 被保人列表
*/ */
......
package org.dromara.job.snailjob.mall.weishi;
import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.mall.api.weishi.RemoteWeishiService;
import org.springframework.stereotype.Component;
/**
* 获取token
*
* @author wenhe
*/
@AllArgsConstructor
@Component
@JobExecutor(name = "WeishiOrderUpdateStatusJob")
public class WeishiOrderUpdateStatusJob {
@DubboReference
private RemoteWeishiService weishiService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
weishiService.updateOrderStatus();
return ExecuteResult.success("跟新卫士token成功");
}
}
...@@ -79,6 +79,11 @@ public class InsureBo extends BaseEntity { ...@@ -79,6 +79,11 @@ public class InsureBo extends BaseEntity {
*/ */
private Date endDate; private Date endDate;
/**
* 订单过期时间,格式为YYYY-MM-DD HH:MM:SS
*/
private Date overDate;
/** /**
* 旅行目的地 * 旅行目的地
*/ */
......
...@@ -82,6 +82,11 @@ public class InsureVo implements Serializable { ...@@ -82,6 +82,11 @@ public class InsureVo implements Serializable {
*/ */
private Date endDate; private Date endDate;
/**
* 订单过期时间,格式为YYYY-MM-DD HH:MM:SS
*/
private Date overDate;
/** /**
* 旅行目的地 * 旅行目的地
*/ */
......
...@@ -93,6 +93,11 @@ public class Insure extends TenantEntity { ...@@ -93,6 +93,11 @@ public class Insure extends TenantEntity {
*/ */
private Date endDate; private Date endDate;
/**
* 订单过期时间,格式为YYYY-MM-DD HH:MM:SS
*/
private Date overDate;
/** /**
* 旅行目的地 * 旅行目的地
*/ */
......
...@@ -7,6 +7,7 @@ import org.dromara.common.redis.utils.RedisUtils; ...@@ -7,6 +7,7 @@ import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.weishi.model.res.AuthResponse; import org.dromara.common.weishi.model.res.AuthResponse;
import org.dromara.common.weishi.service.WeishiService; import org.dromara.common.weishi.service.WeishiService;
import org.dromara.mall.api.weishi.RemoteWeishiService; import org.dromara.mall.api.weishi.RemoteWeishiService;
import org.dromara.mall.service.weishi.IInsureService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.Duration; import java.time.Duration;
...@@ -23,6 +24,7 @@ import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN; ...@@ -23,6 +24,7 @@ import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN;
public class RemoteWeishiServiceImpl implements RemoteWeishiService { public class RemoteWeishiServiceImpl implements RemoteWeishiService {
private final WeishiService weishiService; private final WeishiService weishiService;
private final IInsureService insureService;
@Override @Override
public void getToken() { public void getToken() {
...@@ -32,4 +34,9 @@ public class RemoteWeishiServiceImpl implements RemoteWeishiService { ...@@ -32,4 +34,9 @@ public class RemoteWeishiServiceImpl implements RemoteWeishiService {
RedisUtils.setCacheObject(WEISHI_TOKEN, res.getAccess_token(), Duration.ofSeconds(res.getExpires_in().longValue())); RedisUtils.setCacheObject(WEISHI_TOKEN, res.getAccess_token(), Duration.ofSeconds(res.getExpires_in().longValue()));
} }
} }
@Override
public void updateOrderStatus() {
insureService.updateOrderStatus(null);
}
} }
...@@ -51,4 +51,8 @@ public interface IInsureService extends IBaseService<InsureVo, InsureBo, Insure> ...@@ -51,4 +51,8 @@ public interface IInsureService extends IBaseService<InsureVo, InsureBo, Insure>
*/ */
void policyCancel(String policyNum); void policyCancel(String policyNum);
/**
* 更新订单状态
*/
void updateOrderStatus(Integer orderId);
} }
package org.dromara.mall.service.weishi.impl; package org.dromara.mall.service.weishi.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
...@@ -13,10 +15,7 @@ import org.dromara.common.redis.utils.RedisUtils; ...@@ -13,10 +15,7 @@ import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.weishi.constant.OrderStatus; import org.dromara.common.weishi.constant.OrderStatus;
import org.dromara.common.weishi.model.req.ApplyRequest; import org.dromara.common.weishi.model.req.ApplyRequest;
import org.dromara.common.weishi.model.res.ApplyResponse; import org.dromara.common.weishi.model.res.*;
import org.dromara.common.weishi.model.res.AuthResponse;
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.common.weishi.service.WeishiService;
import org.dromara.mall.controller.weishi.admin.bo.InsureBo; import org.dromara.mall.controller.weishi.admin.bo.InsureBo;
import org.dromara.mall.controller.weishi.admin.vo.InsureVo; import org.dromara.mall.controller.weishi.admin.vo.InsureVo;
...@@ -29,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -29,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.Duration; import java.time.Duration;
import java.util.*; import java.util.*;
import static cn.hutool.core.date.DatePattern.NORM_DATETIME_MINUTE_PATTERN;
import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN; import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN;
/** /**
...@@ -122,6 +122,7 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I ...@@ -122,6 +122,7 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I
.setInsuredName(req.getUnits().get(0).getPolicyHolder().getName()) .setInsuredName(req.getUnits().get(0).getPolicyHolder().getName())
.setInsuredAbbr(productsRes.getInsurerAbbr()) .setInsuredAbbr(productsRes.getInsurerAbbr())
.setPlanName(productsRes.getInsurerAbbr() + " - " + Optional.ofNullable(plan).map(ProductResponse.Plan::getPlanName).orElse(null)) .setPlanName(productsRes.getInsurerAbbr() + " - " + Optional.ofNullable(plan).map(ProductResponse.Plan::getPlanName).orElse(null))
.setOverDate(DateUtil.parse(weishiService.insureDetail(token, res.getOrderID()).getOverDate(), NORM_DATETIME_MINUTE_PATTERN))
.setOrderTime(new Date()); .setOrderTime(new Date());
insure.setCreateDept(LoginHelper.getDeptId()); insure.setCreateDept(LoginHelper.getDeptId());
baseMapper.insert(insure); baseMapper.insert(insure);
...@@ -199,4 +200,34 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I ...@@ -199,4 +200,34 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I
} }
@Override
public void updateOrderStatus(Integer orderId) {
//获取订单列表
List<Insure> insureList = orderId != null ?
baseMapper.selectList(Insure::getOrderId, orderId) :
baseMapper.selectList(new LambdaQueryWrapper<Insure>()
.notIn(Insure::getStatus, List.of(OrderStatus.D.getKey(), OrderStatus.A.getKey())));
if (CollectionUtils.isNotEmpty(insureList)) {
List<String> orderNumList = StreamUtils.toList(insureList, Insure::getOrderNum);
//获取投保单位集合
List<InsureUnit> unitList = unitMapper.selectList(new LambdaQueryWrapper<InsureUnit>().in(InsureUnit::getOrderNum, orderNumList));
//获取被保人集合
List<InsureInsureds> insuredsList = insuredsMapper.selectList(new LambdaQueryWrapper<InsureInsureds>().in(InsureInsureds::getOrderNum, orderNumList));
insureList.forEach(i -> {
DetailResponse dr = weishiService.insureDetail(getToken(), i.getOrderId());
if (!StringUtils.equals(i.getStatus(), dr.getStatus())) {
i.setStatus(dr.getStatus());
baseMapper.updateById(i);
//跟新投保单位
List<InsureUnit> iuList = StreamUtils.filter(unitList, u -> StringUtils.equals(u.getOrderNum(), i.getOrderNum()));
iuList.forEach(iu -> iu.setStatus(dr.getStatus()));
unitMapper.updateBatch(iuList);
//跟新被保人信息
List<InsureInsureds> iiList = StreamUtils.filter(insuredsList, insureds -> StringUtils.equals(insureds.getOrderNum(), i.getOrderNum()));
iiList.forEach(ii -> ii.setStatus(dr.getStatus()));
insuredsMapper.updateBatch(iiList);
}
});
}
}
} }
package org.dromara.mall.service.weishi.impl; package org.dromara.mall.service.weishi.impl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.weishi.model.req.AuthRequest; import org.dromara.common.weishi.model.req.AuthRequest;
...@@ -12,6 +13,7 @@ import org.dromara.mall.service.weishi.IThirdWeishiService; ...@@ -12,6 +13,7 @@ import org.dromara.mall.service.weishi.IThirdWeishiService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.Duration; import java.time.Duration;
import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -20,6 +22,7 @@ import java.util.Objects; ...@@ -20,6 +22,7 @@ import java.util.Objects;
**/ **/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j
public class ThirdWeishiServiceImpl implements IThirdWeishiService { public class ThirdWeishiServiceImpl implements IThirdWeishiService {
private final WeishiService weishiService; private final WeishiService weishiService;
...@@ -35,6 +38,11 @@ public class ThirdWeishiServiceImpl implements IThirdWeishiService { ...@@ -35,6 +38,11 @@ public class ThirdWeishiServiceImpl implements IThirdWeishiService {
if (Objects.isNull(account)) { if (Objects.isNull(account)) {
throw new RuntimeException("该部门没有配置"); throw new RuntimeException("该部门没有配置");
} }
String token = updateToken(account);
return token;
}
private String updateToken(Account account) {
String key = StringUtils.format(WEISHI_TOKEN, account.getTenantId(), account.getDeptId()); String key = StringUtils.format(WEISHI_TOKEN, account.getTenantId(), account.getDeptId());
String token = RedisUtils.getCacheObject(key); String token = RedisUtils.getCacheObject(key);
if (StringUtils.isEmpty(token)) { if (StringUtils.isEmpty(token)) {
...@@ -47,6 +55,18 @@ public class ThirdWeishiServiceImpl implements IThirdWeishiService { ...@@ -47,6 +55,18 @@ public class ThirdWeishiServiceImpl implements IThirdWeishiService {
@Override @Override
public void updateToken(Long deptId) { public void updateToken(Long deptId) {
List<Account> accountList;
if (Objects.nonNull(deptId)) {
accountList = accountMapper.selectList(Account::getDeptId, deptId);
} else {
accountList = accountMapper.selectList();
}
accountList.forEach(account -> {
try {
updateToken(account);
} catch (Exception e) {
log.info("旅游卫士token更新失败,部门id:{},账号:{},密码:{}", account.getDeptId(), account.getUsername(), account.getPassword());
}
});
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论