提交 d77916c3 编写于 作者: F fengyw

增加点播私有化功能

上级 28d93861
......@@ -6,7 +6,7 @@ import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 交易下单通知
* 上传接口
*
* @author LYQ
*/
......
......@@ -16,7 +16,7 @@
<dependencies>
<dependency>
<groupId>com.roncoo</groupId>
<artifactId>roncoo-education-common-core</artifactId>
<artifactId>roncoo-education-common-service</artifactId>
</dependency>
</dependencies>
......
package com.roncoo.education.system.feign.interfaces;
import com.roncoo.education.common.core.sms.SmsConfig;
import com.roncoo.education.system.feign.interfaces.vo.SysConfigViewVO;
import com.roncoo.education.system.feign.interfaces.vo.PayConfig;
import com.roncoo.education.system.feign.interfaces.vo.SysConfig;
import com.roncoo.education.system.feign.interfaces.vo.VodConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.Map;
/**
* 系统配置 接口
......@@ -18,15 +16,15 @@ import java.util.Map;
@FeignClient(value = "system-service", path = "/system/sys/config")
public interface IFeignSysConfig {
@GetMapping(value = "/getMapByConfigType/{type}")
Map<String, String> getMapByConfigType(@PathVariable(value = "type") Integer configType);
@GetMapping(value = "/getSys")
SysConfig getSys();
@GetMapping(value = "/getPay")
PayConfig getPay();
@GetMapping(value = "/getSms")
SmsConfig getSms();
@GetMapping(value = "/getVod")
VodConfig getVod();
@GetMapping(value = "/getByConfigKey/{key}")
SysConfigViewVO getByConfigKey(@PathVariable(value = "key") String configKey);
}
package com.roncoo.education.system.feign.interfaces.vo;
import com.roncoo.education.common.pay.util.AliPayConfig;
import com.roncoo.education.common.pay.util.WxPayConfig;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 支付配置
*
* @author LYQ
*/
@Data
@Accessors(chain = true)
public class PayConfig implements Serializable {
private static final long serialVersionUID = 1L;
private AliPayConfig aliPayConfig;
private WxPayConfig wxPayConfig;
}
package com.roncoo.education.system.feign.interfaces.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 系统配置
*
* @author LYQ
*/
@Data
@Accessors(chain = true)
public class SysConfig implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 网关域名
*/
private String websiteDomain;
}
package com.roncoo.education.system.feign.interfaces.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 系统配置
*
* @author wujing
* @date 2022-08-25
*/
@Data
@Accessors(chain = true)
public class SysConfigViewVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
private Long id;
/**
* 配置类型(1:站点信息,2:系统信息、3:其他)
*/
private Integer configType;
/**
* 内容类型(1:文本、2:富文本、3图片、4布尔、5枚举)
*/
private Integer contentType;
/**
* 参数名称
*/
private String configName;
/**
* 参数键名
*/
private String configKey;
/**
* 参数键值
*/
private String configValue;
/**
* 配置展示(0:隐藏、1:显示)
*/
private Boolean configShow;
/**
* 备注
*/
private String remark;
/**
* 排序,默认值:100
*/
private Integer sort;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
}
......@@ -3,15 +3,14 @@ package com.roncoo.education.system.feign;
import com.roncoo.education.common.core.sms.SmsConfig;
import com.roncoo.education.system.feign.biz.FeignSysConfigBiz;
import com.roncoo.education.system.feign.interfaces.IFeignSysConfig;
import com.roncoo.education.system.feign.interfaces.vo.SysConfigViewVO;
import com.roncoo.education.system.feign.interfaces.vo.PayConfig;
import com.roncoo.education.system.feign.interfaces.vo.SysConfig;
import com.roncoo.education.system.feign.interfaces.vo.VodConfig;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* 系统配置
......@@ -27,10 +26,14 @@ public class FeignSysConfigController implements IFeignSysConfig {
@NotNull
private final FeignSysConfigBiz biz;
@Override
public SysConfig getSys() {
return biz.getSys();
}
@Override
public Map<String, String> getMapByConfigType(@PathVariable(value = "type") Integer configType) {
return biz.getMapByConfigType(configType);
public PayConfig getPay() {
return biz.getPay();
}
@Override
......@@ -43,8 +46,4 @@ public class FeignSysConfigController implements IFeignSysConfig {
return biz.getVod();
}
@Override
public SysConfigViewVO getByConfigKey(@PathVariable(value = "key") String configKey) {
return biz.getByConfigKey(configKey);
}
}
package com.roncoo.education.system.feign.biz;
import cn.hutool.core.collection.CollUtil;
import com.roncoo.education.common.core.sms.SmsConfig;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.pay.util.AliPayConfig;
import com.roncoo.education.common.pay.util.WxPayConfig;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.system.dao.SysConfigDao;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfig;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfigExample;
import com.roncoo.education.system.feign.interfaces.vo.SysConfigViewVO;
import com.roncoo.education.system.feign.interfaces.vo.PayConfig;
import com.roncoo.education.system.feign.interfaces.vo.SysConfig;
import com.roncoo.education.system.feign.interfaces.vo.VodConfig;
import com.roncoo.education.system.service.biz.SysConfigCommonBiz;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 系统配置
......@@ -28,36 +23,26 @@ import java.util.stream.Collectors;
public class FeignSysConfigBiz extends BaseBiz {
@NotNull
private final SysConfigDao dao;
private final SysConfigCommonBiz sysConfigCommonBiz;
public SmsConfig getSms() {
SysConfigExample example = new SysConfigExample();
List<SysConfig> sysConfigs = dao.listByExample(example);
Map<String, String> map = sysConfigs.stream().collect(Collectors.toMap(SysConfig::getConfigKey, SysConfig::getConfigValue));
return BeanUtil.objToBean(map, SmsConfig.class);
public SysConfig getSys() {
return sysConfigCommonBiz.getSysConfig(SysConfig.class);
}
public VodConfig getVod() {
SysConfigExample example = new SysConfigExample();
List<SysConfig> sysConfigs = dao.listByExample(example);
Map<String, String> map = sysConfigs.stream().collect(Collectors.toMap(SysConfig::getConfigKey, SysConfig::getConfigValue));
return BeanUtil.objToBean(map, VodConfig.class);
public PayConfig getPay() {
PayConfig payConfig = new PayConfig();
payConfig.setAliPayConfig(sysConfigCommonBiz.getSysConfig(AliPayConfig.class));
payConfig.setWxPayConfig(sysConfigCommonBiz.getSysConfig(WxPayConfig.class));
return payConfig;
}
public Map<String, String> getMapByConfigType(Integer configType) {
SysConfigExample example = new SysConfigExample();
example.createCriteria().andConfigTypeEqualTo(configType);
List<SysConfig> sysConfigs = dao.listByExample(example);
return sysConfigs.stream().collect(Collectors.toMap(SysConfig::getConfigKey, SysConfig::getConfigValue));
public SmsConfig getSms() {
return sysConfigCommonBiz.getSysConfig(SmsConfig.class);
}
public SysConfigViewVO getByConfigKey(String configKey) {
SysConfigExample example = new SysConfigExample();
example.createCriteria().andConfigKeyEqualTo(configKey);
List<SysConfig> sysConfigs = dao.listByExample(example);
if (CollUtil.isNotEmpty(sysConfigs)) {
return BeanUtil.copyProperties(sysConfigs.get(0), SysConfigViewVO.class);
}
return null;
public VodConfig getVod() {
return sysConfigCommonBiz.getSysConfig(VodConfig.class);
}
}
......@@ -2,22 +2,18 @@ package com.roncoo.education.system.service.admin.biz;
import cn.hutool.json.JSONObject;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.core.enums.VodPlatformEnum;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.common.video.impl.polyv.PolyvVodUtil;
import com.roncoo.education.system.dao.SysConfigDao;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfig;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfigExample;
import com.roncoo.education.system.feign.interfaces.vo.VodConfig;
import com.roncoo.education.system.service.admin.resp.StatVodResp;
import com.roncoo.education.system.service.biz.SysConfigCommonBiz;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 点播直播统计
......@@ -30,27 +26,24 @@ public class AdminStatBiz extends BaseBiz {
@Autowired
private SysConfigDao dao;
@Autowired
private SysConfigCommonBiz sysConfigCommonBiz;
public Result<StatVodResp> vod() {
StatVodResp resp = new StatVodResp();
VodConfig vodConfig = sysConfigCommonBiz.getSysConfig(VodConfig.class);
try {
VodConfig vodConfig = getVod();
if (VodPlatformEnum.POLYV.getCode().equals(vodConfig.getVodPlatform())) {
JSONObject result = PolyvVodUtil.getUserMain(vodConfig.getPolyvUserId(), vodConfig.getPolyvSecretKey());
resp.setTotalSpace(result.getBigDecimal("totalSpace").divide(BigDecimal.valueOf(1024 * 1024 * 1024)).setScale(2, BigDecimal.ROUND_HALF_UP));
resp.setUsedSpace(result.getBigDecimal("usedSpace").divide(BigDecimal.valueOf(1024 * 1024 * 1024)).setScale(2, BigDecimal.ROUND_HALF_UP));
resp.setTotalFlow(result.getBigDecimal("totalFlow").divide(BigDecimal.valueOf(1024 * 1024 * 1024)).setScale(2, BigDecimal.ROUND_HALF_UP));
resp.setUsedFlow(result.getBigDecimal("usedFlow").divide(BigDecimal.valueOf(1024 * 1024 * 1024)).setScale(2, BigDecimal.ROUND_HALF_UP));
//resp.setEmail(result.getStr("email"));
// resp.setEmail(result.getStr("email"));
}
} catch (Exception e) {
log.error("获取异常", e);
}
return Result.success(resp);
}
private VodConfig getVod() {
SysConfigExample example = new SysConfigExample();
List<SysConfig> sysConfigs = dao.listByExample(example);
Map<String, String> map = sysConfigs.stream().collect(Collectors.toMap(SysConfig::getConfigKey, SysConfig::getConfigValue));
return BeanUtil.objToBean(map, VodConfig.class);
}
}
......@@ -6,21 +6,16 @@ package com.roncoo.education.system.service.admin.biz;
import cn.hutool.core.util.ObjectUtil;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.core.enums.StoragePlatformEnum;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.upload.Upload;
import com.roncoo.education.common.upload.UploadFace;
import com.roncoo.education.system.dao.SysConfigDao;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfig;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfigExample;
import com.roncoo.education.system.service.biz.SysConfigCommonBiz;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 上传接口
......@@ -35,10 +30,10 @@ public class AdminUploadBiz {
private Map<String, UploadFace> uploadFaceMap;
@Autowired
private SysConfigDao sysConfigDao;
private SysConfigCommonBiz sysConfigCommonBiz;
public Result<String> uploadPic(MultipartFile picFile) {
Upload upload = getUploadForSysConfig();
Upload upload = sysConfigCommonBiz.getSysConfig(Upload.class);
if (ObjectUtil.isNotEmpty(upload) || StringUtils.isEmpty(upload.getStoragePlatform())) {
UploadFace uploadFace = uploadFaceMap.get(StoragePlatformEnum.byCode(Integer.valueOf(upload.getStoragePlatform())).getMode());
String fileUrl = uploadFace.uploadPic(picFile, upload);
......@@ -51,10 +46,4 @@ public class AdminUploadBiz {
return null;
}
private Upload getUploadForSysConfig() {
SysConfigExample example = new SysConfigExample();
List<SysConfig> sysConfigs = sysConfigDao.listByExample(example);
Map<String, String> map = sysConfigs.stream().collect(Collectors.toMap(SysConfig::getConfigKey, SysConfig::getConfigValue));
return BeanUtil.objToBean(map, Upload.class);
}
}
package com.roncoo.education.system.service.api.biz;
import com.roncoo.education.common.cache.CacheRedis;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.system.dao.SysConfigDao;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfig;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfigExample;
import com.roncoo.education.system.service.api.resp.ApiSysConfigWebsiteResp;
import com.roncoo.education.system.service.biz.SysConfigCommonBiz;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* AUTH-系统配置
......@@ -31,16 +24,11 @@ import java.util.stream.Collectors;
public class ApiSysConfigBiz extends BaseBiz {
@NotNull
private final SysConfigDao dao;
@NotNull
private final CacheRedis cacheRedis;
private final SysConfigCommonBiz sysConfigCommonBiz;
@Cacheable
public Result<ApiSysConfigWebsiteResp> website() {
SysConfigExample example = new SysConfigExample();
List<SysConfig> sysConfigs = dao.listByExample(example);
Map<String, String> map = sysConfigs.stream().collect(Collectors.toMap(SysConfig::getConfigKey, SysConfig::getConfigValue));
ApiSysConfigWebsiteResp resp = BeanUtil.objToBean(map, ApiSysConfigWebsiteResp.class);
ApiSysConfigWebsiteResp resp = sysConfigCommonBiz.getSysConfig(ApiSysConfigWebsiteResp.class);
// 公安网备案号处理
resp.setWebsitePrnNo(getNumeric(resp.getWebsitePrn()));
return Result.success(resp);
......@@ -48,11 +36,12 @@ public class ApiSysConfigBiz extends BaseBiz {
/**
* 从字符串获取数字
*
* @param str
* @return
*/
private static String getNumeric(String str) {
String regEx="[^0-9]";
String regEx = "[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
......
package com.roncoo.education.system.service.biz;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.system.dao.SysConfigDao;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfig;
import com.roncoo.education.system.dao.impl.mapper.entity.SysConfigExample;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 点播直播统计
*
* @author wujing
*/
@Slf4j
@Component
public class SysConfigCommonBiz extends BaseBiz {
@Autowired
private SysConfigDao dao;
public <T> T getSysConfig(Class<T> clazz) {
List<SysConfig> sysConfigs = dao.listByExample(new SysConfigExample());
Map<String, String> map = sysConfigs.stream().collect(Collectors.toMap(SysConfig::getConfigKey, SysConfig::getConfigValue));
return BeanUtil.objToBean(map, clazz);
}
}
......@@ -2,21 +2,17 @@ package com.roncoo.education.user.service.api.biz;
import cn.hutool.core.util.ObjectUtil;
import com.roncoo.education.common.core.enums.BuyTypeEnum;
import com.roncoo.education.common.core.enums.ConfigTypeEnum;
import com.roncoo.education.common.core.enums.OrderStatusEnum;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.core.tools.Constants;
import com.roncoo.education.common.core.tools.JSUtil;
import com.roncoo.education.common.pay.PayFace;
import com.roncoo.education.common.pay.req.TradeNotifyReq;
import com.roncoo.education.common.pay.resp.TradeNotifyResp;
import com.roncoo.education.common.pay.util.AliPayConfig;
import com.roncoo.education.common.pay.util.TradeStatusEnum;
import com.roncoo.education.common.pay.util.WxPayConfig;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.course.feign.interfaces.IFeignUserCourse;
import com.roncoo.education.course.feign.interfaces.qo.UserCourseBindingQO;
import com.roncoo.education.system.feign.interfaces.IFeignSysConfig;
import com.roncoo.education.system.feign.interfaces.vo.PayConfig;
import com.roncoo.education.user.dao.OrderInfoDao;
import com.roncoo.education.user.dao.OrderPayDao;
import com.roncoo.education.user.dao.impl.mapper.entity.OrderInfo;
......@@ -29,7 +25,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
/**
......@@ -102,13 +97,9 @@ public class ApiOrderPayBiz extends BaseBiz {
}
private void getPayConfig(TradeNotifyReq req) {
Map<String, String> payConfig = cacheRedis.getByJson(Constants.RedisPre.PAY + ConfigTypeEnum.PAY.getCode(), HashMap.class);
if (ObjectUtil.isEmpty(payConfig)) {
payConfig = feignSysConfig.getMapByConfigType(ConfigTypeEnum.PAY.getCode());
cacheRedis.set(Constants.RedisPre.PAY + ConfigTypeEnum.PAY.getCode(), payConfig);
}
req.setAliPayConfig(BeanUtil.objToBean(payConfig, AliPayConfig.class));
req.setWxPayConfig(BeanUtil.objToBean(payConfig, WxPayConfig.class));
PayConfig payConfig = feignSysConfig.getPay();
req.setAliPayConfig(payConfig.getAliPayConfig());
req.setWxPayConfig(payConfig.getWxPayConfig());
}
/**
......
......@@ -4,20 +4,21 @@ import cn.hutool.core.util.ObjectUtil;
import com.roncoo.education.common.config.ThreadContext;
import com.roncoo.education.common.core.base.BaseException;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.core.enums.*;
import com.roncoo.education.common.core.enums.OrderStatusEnum;
import com.roncoo.education.common.core.enums.PayTypeEnum;
import com.roncoo.education.common.core.enums.PutawayEnum;
import com.roncoo.education.common.core.enums.StatusIdEnum;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.core.tools.Constants;
import com.roncoo.education.common.core.tools.NOUtil;
import com.roncoo.education.common.pay.PayFace;
import com.roncoo.education.common.pay.req.TradeOrderReq;
import com.roncoo.education.common.pay.resp.TradeOrderResp;
import com.roncoo.education.common.pay.util.AliPayConfig;
import com.roncoo.education.common.pay.util.PayModelEnum;
import com.roncoo.education.common.pay.util.WxPayConfig;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.course.feign.interfaces.IFeignCourse;
import com.roncoo.education.course.feign.interfaces.vo.CourseViewVO;
import com.roncoo.education.system.feign.interfaces.IFeignSysConfig;
import com.roncoo.education.system.feign.interfaces.vo.PayConfig;
import com.roncoo.education.user.dao.OrderInfoDao;
import com.roncoo.education.user.dao.OrderPayDao;
import com.roncoo.education.user.dao.UsersDao;
......@@ -36,9 +37,7 @@ import org.springframework.util.StringUtils;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* AUTH-订单支付信息表
......@@ -186,13 +185,9 @@ public class AuthOrderPayBiz extends BaseBiz {
}
private void getPayConfig(TradeOrderReq orderReq) {
Map<String, String> payConfig = cacheRedis.getByJson(Constants.RedisPre.PAY + ConfigTypeEnum.PAY.getCode(), HashMap.class);
if (ObjectUtil.isEmpty(payConfig)) {
payConfig = feignSysConfig.getMapByConfigType(ConfigTypeEnum.PAY.getCode());
cacheRedis.set(Constants.RedisPre.PAY + ConfigTypeEnum.PAY.getCode(), payConfig);
}
orderReq.setAliPayConfig(BeanUtil.objToBean(payConfig, AliPayConfig.class));
orderReq.setWxPayConfig(BeanUtil.objToBean(payConfig, WxPayConfig.class));
PayConfig payConfig = feignSysConfig.getPay();
orderReq.setAliPayConfig(payConfig.getAliPayConfig());
orderReq.setWxPayConfig(payConfig.getWxPayConfig());
}
/**
......@@ -226,11 +221,6 @@ public class AuthOrderPayBiz extends BaseBiz {
}
private String getNotifyUrl(Integer payModel, String impl) {
String websiteDomain = cacheRedis.get(Constants.RedisPre.DOMAIN);
if (!StringUtils.hasText(websiteDomain)) {
websiteDomain = feignSysConfig.getByConfigKey("websiteDomain").getConfigValue();
cacheRedis.set(Constants.RedisPre.DOMAIN, websiteDomain, 1, TimeUnit.HOURS);
}
return NOTIFYURL.replace("{domain}", websiteDomain).replace("{payModel}", payModel.toString()).replace("{payImpl}", impl);
return NOTIFYURL.replace("{domain}", feignSysConfig.getSys().getWebsiteDomain()).replace("{payModel}", payModel.toString()).replace("{payImpl}", impl);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册