| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- # -*- coding: utf-8 -*-
- """给自动生成的实体补充关联字段与 PHP 获取器等值实现(在类尾插入)。"""
- from pathlib import Path
- from _root import ROOT
- ENT = Path(str(ROOT / "yoshop-java/src/main/java/cn/yoshop/common/entity"))
- PATCHES = {
- "UserGrade.java": """
- // ------------------------------------------------------------ 获取器
- @JsonIgnore
- private String upgradeRaw;
- @JsonIgnore
- private String equityRaw;
- /** 升级条件:库内 json 字符串,出参为对象 */
- @com.fasterxml.jackson.annotation.JsonProperty("upgrade")
- public Object getUpgradeJson() {
- return cn.yoshop.common.util.PhpStr.jsonDecodeArray(upgrade);
- }
- /** 等级权益:库内 json 字符串,出参为对象 */
- @com.fasterxml.jackson.annotation.JsonProperty("equity")
- public Object getEquityJson() {
- return cn.yoshop.common.util.PhpStr.jsonDecodeArray(equity);
- }
- """,
- "Coupon.java": """
- /** 适用范围配置:库内 json 字符串,出参为数组/对象 */
- @com.fasterxml.jackson.annotation.JsonProperty("apply_range_config")
- public Object getApplyRangeConfigJson() {
- return cn.yoshop.common.util.PhpStr.jsonDecodeArray(applyRangeConfig);
- }
- """,
- "Category.java": """
- // ------------------------------------------------------------ 关联
- /** 分类图片(image_id=0 时 null) */
- @TableField(exist = false)
- private UploadFile image;
- /** 子分类(仅非空时输出,对齐 PHP getTreeData 的 !empty($children) && $item['children']) */
- @com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)
- @TableField(exist = false)
- private java.util.List<Category> children;
- """,
- "UploadGroup.java": """
- @com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)
- @TableField(exist = false)
- private java.util.List<UploadGroup> children;
- """,
- "StoreAddress.java": """
- // ------------------------------------------------------------ 组装字段
- /** 省市区 ID 级联数组 */
- @TableField(exist = false)
- private java.util.List<Integer> cascader;
- /** 省市区名称 */
- @TableField(exist = false)
- private java.util.Map<String, String> region;
- /** 完整地址 */
- @TableField(exist = false)
- private String fullAddress;
- """,
- "OrderGoods.java": """
- // ------------------------------------------------------------ 关联
- @TableField(exist = false)
- private UploadFile image;
- /** 商品封面图(image.preview_url) */
- @com.fasterxml.jackson.annotation.JsonProperty("goods_image")
- public String getGoodsImage() {
- return image == null ? null : image.getPreviewUrl();
- }
- """,
- }
- def main():
- for name, snippet in PATCHES.items():
- path = ENT / name
- text = path.read_text(encoding="utf-8")
- idx = text.rstrip().rfind("}")
- head = text.rstrip()[:idx].rstrip("\n")
- # 补充必要 import
- imports = []
- if "TableField" in snippet and "import com.baomidou.mybatisplus.annotation.TableField;" not in text:
- imports.append("import com.baomidou.mybatisplus.annotation.TableField;")
- if imports:
- head = head.replace("import com.baomidou.mybatisplus.annotation.TableName;",
- "import com.baomidou.mybatisplus.annotation.TableName;\n" + "\n".join(imports), 1)
- out = head + "\n" + snippet + "}\n"
- path.write_text(out, encoding="utf-8")
- print("patched", name)
- if __name__ == "__main__":
- main()
|