@@ -44,7 +44,7 @@ public class AiVideoServiceImpl implements AiVideoService { | |||||
material.setImage(Base64Util.imageUrlToBase64(material.getImage())); | material.setImage(Base64Util.imageUrlToBase64(material.getImage())); | ||||
} | } | ||||
} | } | ||||
//TODO 本地部署的视频文件怎么处理 | |||||
AiVideoResult video = AiVideoHelper.createVideo(aiVideoParam); | AiVideoResult video = AiVideoHelper.createVideo(aiVideoParam); | ||||
if (video.isSuccess()) { | if (video.isSuccess()) { | ||||
// 记录时长 | // 记录时长 | ||||
@@ -18,6 +18,7 @@ import com.iformall.service.pay.service.pay.PayAdapterService; | |||||
import com.iformall.service.pay.service.pay.entity.PayAdapterResult; | import com.iformall.service.pay.service.pay.entity.PayAdapterResult; | ||||
import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; | import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; | ||||
import com.iformall.service.pay.service.refund.RefundPayAdapterService; | import com.iformall.service.pay.service.refund.RefundPayAdapterService; | ||||
import com.iformall.service.project.ProjectFactory; | |||||
import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
import com.iformall.utils.RedisLock; | import com.iformall.utils.RedisLock; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
@@ -64,6 +65,9 @@ public class ProductOrderPayServiceImpl implements ProductOrderPayService { | |||||
@Autowired | @Autowired | ||||
PayServiceFactory payServiceFactory; | PayServiceFactory payServiceFactory; | ||||
@Autowired | |||||
ProjectFactory projectFactory; | |||||
@Autowired | @Autowired | ||||
RedisLock redisLock; | RedisLock redisLock; | ||||
@@ -265,12 +269,15 @@ public class ProductOrderPayServiceImpl implements ProductOrderPayService { | |||||
productOrderMapper.orderPayUpdStatus(order); | productOrderMapper.orderPayUpdStatus(order); | ||||
Product product = productMapper.selectById(order.getProductId()); | Product product = productMapper.selectById(order.getProductId()); | ||||
if(EnumProductType.product_1.getCode().equals(product.getType())){ | |||||
userBasicPropertyService.updUserGlod(order.getUserId(),product.getProjectType(),EnumPropertyLogType.RECHARGE.getCode(), | |||||
order.getId(),product.getGlod(),now); | |||||
}else if(EnumProductType.product_2.getCode().equals(product.getType())){ | |||||
//todo 处理套餐 | |||||
//智象 | |||||
if (product.getProjectType().intValue() == EnumProject.PROJECT_5.getCode().intValue()) { | |||||
if(EnumProductType.product_1.getCode().equals(product.getType())){ | |||||
userBasicPropertyService.updUserGlod(order.getUserId(),product.getProjectType(),EnumPropertyLogType.RECHARGE.getCode(), | |||||
order.getId(),product.getGlod(),now); | |||||
}else if(EnumProductType.product_2.getCode().equals(product.getType())){ | |||||
} | |||||
}else { | |||||
projectFactory.getProjectService(product.getProjectType()).handlePaidOrder(order.getUserId(),order.getFinalTenantId(),product); | |||||
} | } | ||||
}catch(MallinkException e){ | }catch(MallinkException e){ | ||||
throw e; | throw e; | ||||
@@ -1,6 +1,7 @@ | |||||
package com.iformall.service.project.service; | package com.iformall.service.project.service; | ||||
import com.iformall.domain.po.Product; | import com.iformall.domain.po.Product; | ||||
import com.iformall.domain.po.WxCUserBasicInfo; | |||||
import com.iformall.service.project.entity.CreateBilling; | import com.iformall.service.project.entity.CreateBilling; | ||||
public interface ProjectService { | public interface ProjectService { | ||||
@@ -13,8 +14,15 @@ public interface ProjectService { | |||||
public Object getPayProductExtroInfo(Product product); | public Object getPayProductExtroInfo(Product product); | ||||
/** | /** | ||||
* 计算生成视频账单 | |||||
* 处理充值成功 | |||||
*/ | |||||
public void handlePaidOrder(Long cUserId,String cUserFinalTenantId,Product product); | |||||
/** | |||||
* 处理生成视频账单 | |||||
* @return | * @return | ||||
*/ | */ | ||||
public CreateBilling calcuteVideoBilling(String videoSeconds,Long videoSize); | |||||
public CreateBilling handleCreateVideoBilling(Long cUserId,String cUserFinalTenantId,String videoSeconds,Long videoSize); | |||||
} | } |
@@ -3,6 +3,7 @@ package com.iformall.service.project.service.impl; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import com.iformall.domain.po.Product; | import com.iformall.domain.po.Product; | ||||
import com.iformall.domain.po.WxCUserBasicInfo; | |||||
import com.iformall.service.project.entity.CreateBilling; | import com.iformall.service.project.entity.CreateBilling; | ||||
import com.iformall.service.project.service.ProjectService; | import com.iformall.service.project.service.ProjectService; | ||||
@@ -16,9 +17,17 @@ public class CommonProjectService extends BaseProjectService implements ProjectS | |||||
} | } | ||||
@Override | @Override | ||||
public CreateBilling calcuteVideoBilling(String videoSeconds, Long videoSize) { | |||||
public void handlePaidOrder(Long cUserId,String cUserFinalTenantId,Product product) { | |||||
// TODO Auto-generated method stub | |||||
} | |||||
@Override | |||||
public CreateBilling handleCreateVideoBilling(Long cUserId,String cUserFinalTenantId,String videoSeconds, Long videoSize) { | |||||
// TODO Auto-generated method stub | // TODO Auto-generated method stub | ||||
return null; | return null; | ||||
} | } | ||||
} | } |
@@ -3,6 +3,7 @@ package com.iformall.service.project.service.impl; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import com.iformall.domain.po.Product; | import com.iformall.domain.po.Product; | ||||
import com.iformall.domain.po.WxCUserBasicInfo; | |||||
import com.iformall.service.project.entity.CreateBilling; | import com.iformall.service.project.entity.CreateBilling; | ||||
import com.iformall.service.project.service.ProjectService; | import com.iformall.service.project.service.ProjectService; | ||||
@@ -16,8 +17,16 @@ public class HBProjectService extends BaseProjectService implements ProjectServi | |||||
} | } | ||||
@Override | @Override | ||||
public CreateBilling calcuteVideoBilling(String videoSeconds, Long videoSize) { | |||||
public void handlePaidOrder(Long cUserId,String cUserFinalTenantId,Product product) { | |||||
// TODO Auto-generated method stub | |||||
} | |||||
@Override | |||||
public CreateBilling handleCreateVideoBilling(Long cUserId,String cUserFinalTenantId,String videoSeconds, Long videoSize) { | |||||
return null; | return null; | ||||
} | } | ||||
} | } |
@@ -3,6 +3,7 @@ package com.iformall.service.project.service.impl; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import com.iformall.domain.po.Product; | import com.iformall.domain.po.Product; | ||||
import com.iformall.domain.po.WxCUserBasicInfo; | |||||
import com.iformall.service.project.entity.CreateBilling; | import com.iformall.service.project.entity.CreateBilling; | ||||
import com.iformall.service.project.service.ProjectService; | import com.iformall.service.project.service.ProjectService; | ||||
@@ -16,9 +17,17 @@ public class HKProjectService extends BaseProjectService implements ProjectServi | |||||
} | } | ||||
@Override | @Override | ||||
public CreateBilling calcuteVideoBilling(String videoSeconds, Long videoSize) { | |||||
public void handlePaidOrder(Long cUserId,String cUserFinalTenantId,Product product) { | |||||
// TODO Auto-generated method stub | |||||
} | |||||
@Override | |||||
public CreateBilling handleCreateVideoBilling(Long cUserId,String cUserFinalTenantId,String videoSeconds, Long videoSize) { | |||||
// TODO Auto-generated method stub | // TODO Auto-generated method stub | ||||
return null; | return null; | ||||
} | } | ||||
} | } |
@@ -1,14 +1,23 @@ | |||||
package com.iformall.service.project.service.impl; | package com.iformall.service.project.service.impl; | ||||
import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.context.annotation.Lazy; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import com.iformall.domain.po.Product; | import com.iformall.domain.po.Product; | ||||
import com.iformall.domain.po.WxCUserBasicInfo; | |||||
import com.iformall.service.WxCUserBasicInfoService; | |||||
import com.iformall.service.project.entity.CreateBilling; | import com.iformall.service.project.entity.CreateBilling; | ||||
import com.iformall.service.project.service.ProjectService; | import com.iformall.service.project.service.ProjectService; | ||||
//慧影 | //慧影 | ||||
@Service | @Service | ||||
public class HYProjectService extends BaseProjectService implements ProjectService{ | public class HYProjectService extends BaseProjectService implements ProjectService{ | ||||
@Lazy | |||||
@Autowired | |||||
WxCUserBasicInfoService wxCUserBasicInfoService; | |||||
@Override | @Override | ||||
public Object getPayProductExtroInfo(Product product) { | public Object getPayProductExtroInfo(Product product) { | ||||
@@ -17,14 +26,24 @@ public class HYProjectService extends BaseProjectService implements ProjectServi | |||||
} | } | ||||
@Override | @Override | ||||
public CreateBilling calcuteVideoBilling(String videoSeconds, Long videoSize) { | |||||
public void handlePaidOrder(Long cUserId,String cUserFinalTenantId,Product product) { | |||||
//更新用户的币 | |||||
wxCUserBasicInfoService.reducePoints(cUserId, cUserFinalTenantId,-product.getGlod()); | |||||
} | |||||
@Override | |||||
public CreateBilling handleCreateVideoBilling(Long cUserId,String cUserFinalTenantId,String videoSeconds, Long videoSize) { | |||||
//慧影视频按照时长来扣币 | //慧影视频按照时长来扣币 | ||||
CreateBilling cb = new CreateBilling(); | CreateBilling cb = new CreateBilling(); | ||||
//每秒扣币 | //每秒扣币 | ||||
float poinsPerSeconds = 0.008F; | float poinsPerSeconds = 0.008F; | ||||
cb.setTotalCostPoins(new BigDecimal(videoSeconds).multiply(new BigDecimal(poinsPerSeconds)).intValue()); | cb.setTotalCostPoins(new BigDecimal(videoSeconds).multiply(new BigDecimal(poinsPerSeconds)).intValue()); | ||||
cb.setDetail("每秒扣币"+poinsPerSeconds+"个,总共时长"+videoSeconds+"秒"); | cb.setDetail("每秒扣币"+poinsPerSeconds+"个,总共时长"+videoSeconds+"秒"); | ||||
//扣去当前用户的币 | |||||
wxCUserBasicInfoService.reducePoints(cUserId, cUserFinalTenantId,cb.getTotalCostPoins()); | |||||
return cb; | return cb; | ||||
} | } | ||||
} | } |
@@ -3,6 +3,7 @@ package com.iformall.service.project.service.impl; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import com.iformall.domain.po.Product; | import com.iformall.domain.po.Product; | ||||
import com.iformall.domain.po.WxCUserBasicInfo; | |||||
import com.iformall.service.project.entity.CreateBilling; | import com.iformall.service.project.entity.CreateBilling; | ||||
import com.iformall.service.project.service.ProjectService; | import com.iformall.service.project.service.ProjectService; | ||||
@@ -16,9 +17,17 @@ public class HYuProjectService extends BaseProjectService implements ProjectServ | |||||
} | } | ||||
@Override | @Override | ||||
public CreateBilling calcuteVideoBilling(String videoSeconds, Long videoSize) { | |||||
public void handlePaidOrder(Long cUserId,String cUserFinalTenantId,Product product) { | |||||
// TODO Auto-generated method stub | |||||
} | |||||
@Override | |||||
public CreateBilling handleCreateVideoBilling(Long cUserId,String cUserFinalTenantId,String videoSeconds, Long videoSize) { | |||||
// TODO Auto-generated method stub | // TODO Auto-generated method stub | ||||
return null; | return null; | ||||
} | } | ||||
} | } |
@@ -3,6 +3,7 @@ package com.iformall.service.project.service.impl; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import com.iformall.domain.po.Product; | import com.iformall.domain.po.Product; | ||||
import com.iformall.domain.po.WxCUserBasicInfo; | |||||
import com.iformall.service.project.entity.CreateBilling; | import com.iformall.service.project.entity.CreateBilling; | ||||
import com.iformall.service.project.service.ProjectService; | import com.iformall.service.project.service.ProjectService; | ||||
@@ -16,9 +17,17 @@ public class ZXProjectService extends BaseProjectService implements ProjectServi | |||||
} | } | ||||
@Override | @Override | ||||
public CreateBilling calcuteVideoBilling(String videoSeconds, Long videoSize) { | |||||
public void handlePaidOrder(Long cUserId,String cUserFinalTenantId,Product product) { | |||||
// TODO Auto-generated method stub | |||||
} | |||||
@Override | |||||
public CreateBilling handleCreateVideoBilling(Long cUserId,String cUserFinalTenantId,String videoSeconds, Long videoSize) { | |||||
// TODO Auto-generated method stub | // TODO Auto-generated method stub | ||||
return null; | return null; | ||||
} | } | ||||
} | } |
@@ -483,12 +483,11 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||||
videoUpd.setVideoMsg("视频上传成功"); | videoUpd.setVideoMsg("视频上传成功"); | ||||
videoUpd.setUpdateDate(new Date()); | videoUpd.setUpdateDate(new Date()); | ||||
//设置扣费,当前方法是慧影项目专用的 | //设置扣费,当前方法是慧影项目专用的 | ||||
CreateBilling cb = projectFactory.getProjectService(EnumProject.PROJECT_2.getCode()).calcuteVideoBilling(videoUpd.getVideoTime(), videoUpd.getVideoSize()); | |||||
CreateBilling cb = projectFactory.getProjectService(EnumProject.PROJECT_2.getCode()) | |||||
.handleCreateVideoBilling(userMouldVideo.getUserId(), userMouldVideo.getFinalTenantId(), videoUpd.getVideoTime(), videoUpd.getVideoSize()); | |||||
if (null != cb) { | if (null != cb) { | ||||
videoUpd.setCostPoints(cb.getTotalCostPoins()); | videoUpd.setCostPoints(cb.getTotalCostPoins()); | ||||
videoUpd.setCostPointsDetail(cb.getDetail()); | videoUpd.setCostPointsDetail(cb.getDetail()); | ||||
//扣去当前用户的币 | |||||
wxCUserBasicInfoService.reducePoints(mouldVideo.getUserId(), mouldVideo.getFinalTenantId(),cb.getTotalCostPoins()); | |||||
} | } | ||||
this.updateById(videoUpd); | this.updateById(videoUpd); | ||||
break; | break; | ||||