| @@ -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; | ||||