Compare commits

...

4 Commits

Author SHA1 Message Date
a361b59d74 配置
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
2025-09-23 20:57:01 +08:00
f779b0e040 计算 2025-09-23 20:53:22 +08:00
78c4548d02 文字 2025-09-23 17:54:49 +08:00
842310f73c ignore 2025-09-23 14:34:32 +08:00
5 changed files with 15 additions and 11 deletions

1
.gitignore vendored
View File

@@ -4,3 +4,4 @@ target/
.serena
.claude
.vscode
*.jpg

View File

@@ -196,7 +196,7 @@ public class AppOrderV2Controller {
if (cachedResult.getFinalAmount().compareTo(request.getExpectedFinalAmount()) != 0) {
log.warn("移动端下单:价格不匹配, cached={}, expected={}, userId={}, scenicId={}",
cachedResult.getFinalAmount(), request.getExpectedFinalAmount(), currentUserId, scenicId);
return ApiResponse.fail("请重新下单");
return ApiResponse.fail("价格信息变化,请退出后重新查询价格");
}
// 验证原价是否匹配(可选)
@@ -215,6 +215,7 @@ public class AppOrderV2Controller {
Long orderId = oldOrderService.createOrderCompact(currentUserId, request, cachedResult);
return ApiResponse.success(String.valueOf(orderId));
} catch (Exception e) {
log.warn("移动端下单:订单创建失败, userId={}, scenicId={}, error={}", currentUserId, scenicId, e.getMessage(), e);
return ApiResponse.fail("订单创建失败,请稍后重试");
}

View File

@@ -51,18 +51,18 @@ public class AppStatisticsFunnelVO {
return "-"; // TODO: REAL
}
// 扫码访问人数_上传头像人数_转化率
// 扫码访问人数_推送订阅人数_转化率
@JsonProperty("scaom_ufom")
public String getScaom_ufom() {
if (uploadFaceOfMemberNum == 0 || scanCodeVisitorOfMemberNum == 0) {
if (scanCodeVisitorOfMemberNum == 0 || pushOfMemberNum == 0) {
return "0.00";
}
return new BigDecimal(uploadFaceOfMemberNum)
return new BigDecimal(pushOfMemberNum)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(scanCodeVisitorOfMemberNum), 2, RoundingMode.HALF_UP)
.toString();
}
// 上传头像人数_推送订阅人数_转化率
// 推送订阅人数_上传头像人数_转化率
@JsonProperty("ufom_pom")
public String getUfom_pom() {
if (pushOfMemberNum == 0 || uploadFaceOfMemberNum == 0) {
@@ -76,12 +76,12 @@ public class AppStatisticsFunnelVO {
// 上传头像人数_生成视频人数_转化率
@JsonProperty("pom_cvom")
public String getPom_cvom() {
if (uploadFaceOfMemberNum == 0 || pushOfMemberNum == 0) {
if (uploadFaceOfMemberNum == 0 || completeVideoOfMemberNum == 0) {
return "0.00";
}
return new BigDecimal(completeVideoOfMemberNum)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(pushOfMemberNum), 2, RoundingMode.HALF_UP)
.divide(new BigDecimal(uploadFaceOfMemberNum), 2, RoundingMode.HALF_UP)
.toString();
}
// 生成视频人数_预览视频人数_转化率

View File

@@ -14,4 +14,5 @@ public class TemplateConfigEntity {
private Date createDate;
private Integer minimalPlaceholderFill;
private Integer automaticPlaceholderFill;
private Integer duplicateEnable;
}

View File

@@ -6,8 +6,8 @@
values (#{id}, #{scenicId}, #{name}, #{pid}, #{isPlaceholder}, #{sourceUrl}, #{effects}, #{luts}, #{overlays}, #{audios}, #{coverUrl}, #{frameRate}, #{speed}, #{price}, #{slashPrice}, #{sort}, #{cropEnable}, #{zoomCut}, #{onlyIf}, #{resolution}, now())
</insert>
<insert id="addConfig">
insert into template_config(id, template_id, create_time)
values (#{id}, #{templateId}, now())
insert into template_config(id, template_id, duplicate_enable, create_time)
values (#{id}, #{templateId}, #{duplicateEnable}, now())
</insert>
<update id="update">
update template
@@ -52,7 +52,8 @@
<set>
<if test="isDefault!= null">is_default = #{isDefault}, </if>
minimal_placeholder_fill = #{minimalPlaceholderFill},
automatic_placeholder_fill = #{automaticPlaceholderFill}
automatic_placeholder_fill = #{automaticPlaceholderFill},
duplicate_enable = #{duplicateEnable}
</set>
where id = #{id}
</update>