创建收货地址的过程中, 一共涉及到三张表
一张为PostalAddress  contact_mech    party_contact_mech  
创建的流程  调用createPartyPostalAddress 这个服务,在这个服务里面的simple_method 的分别先后调用了两个service服务,
第一个为createPostalAddress   第二个服务为createPartyContactMech
createPostalAddress服务中调用的simple_method的方法,调用了createContactMech这个服务,固定参数为contactMechTypeId 这个参数的值为POSTAL_ADDRESS,当创建完这个联系方式之后返回的contactMechId 保存postalAdress这个对象,根据返回的这个contactMechId回参,在调用createPartyContactMech这个服务,创建partyId对应的联系方式的数据、创建PartyContactMech这个对象。
设置默认收货地址
针对的是PartyProfileDefault这个对象,这个对象是专门来记录默认收回地址数据的。
大体的流程是判断当前登录的partyId是否设置了默认收货地址,如果设置了默认收货地址,则进行保存操作,如果从来没有设置过这个默认收货地址,则进行创建操作。
修改收货地址的过程
updatePartyPostalAddress这个服务是用来修改收货地址的,该服务调用的updatePartyPostalAddress simpleMethod方法里面分别前后调用了两个updatePostalAddress,updatePartyContactMech 这两个服务,在updatePostalAddress服务里面,根据参数对应出一个新的PostalAdress实体对象newValue,通过主键查询到原来存在数据库里面的数据 封装成对象oldValue,判断两个实体对象是否相等,如果不相等,则调用createContactMech这个服务,去创建一个新的收货地址(在这个服务里面,都会新增两个实体对象,分别为contactMech跟postalAddress),因为创建了两个新的收货地址相关的对象,如果原来这个收货地址已经被设置为默认收货地址,如果在进行过修改,那么原来的默认收货地址将会消失,所以可以在相应的部分添加判断,如果添加了两个新的对象的话,调用一下设置默认地址的服务,传一些必要的参数,这样就能保证修改之后,在用户体验上,让用户看到的是默认地址没有发生变化。
<!-- wqc 修改的时候  会新增一条记录,并且将标识设为1其余的设为空,需要将party的默认地址重新设置一下   --><if-compare-field to-field="parameters.defaultShipAddr" field="oldValue.contactMechId" operator="equals"><set-service-fields service-name="setPartyProfileDefaults" map="parameters" to-map="partyProfileDefaultsCtx"/><set field="partyProfileDefaultsCtx.defaultShipAddr" from-field="newValue.contactMechId"/><set field="partyProfileDefaultsCtx.partyId" from-field="userLogin.partyId"/><set field="partyProfileDefaultsCtx.productStoreId" from-field="parameters.productStoreId"/><set field="partyProfileDefaultsCtx.companyId" from-field="parameters.companyId"/><call-service service-name="setPartyProfileDefaults" in-map-name="partyProfileDefaultsCtx"/></if-compare-field>

在updatePartyContactMech  服务中,根据partyId查询出存在的对象列表,然后取出第一个进行克隆,将原来的party的有效时间设置为当前时间,也就是将原来的数据设置为无效,然后重新创建一个partyContactMech对象。

转载于:https://www.cnblogs.com/wangqc/p/ofbiz_postalAddress.html

收货地址表结构 以及创建修改流程相关推荐

  1. mysql收货地址表_收货地址表结构 以及创建修改流程

    创建收货地址的过程中, 一共涉及到三张表 一张为PostalAddress  contact_mech    party_contact_mech 创建的流程  调用createPartyPostal ...

  2. 新零售系统mysql设计(会员等级表 客户表 收货地址表)二次修改

    作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 sql 会员等级表 数据 客户表 数据 收货地址表 数据 会员等级表(解析) 字段解析: 类型大小 ...

  3. mysql收货地址表_企业内容管理系统-收货地址表 - 数据库设计 - 数据库表结构 - 果创云...

    -- 数据库大全:企业内容管理系统-收货地址表 -- 来源:YesApi.cn CREATE TABLE `yesapi_ey_shop_address` ( `id` bigint(20) unsi ...

  4. 商品属性对应表,商品相册表,用户表,用户收货地址表,地区表,购物车表,送货方式表,订单表,订单明细表的数据库设计

    商品的属性 通用属性: 名称 价格 图片 存放goods表 扩展属性,也叫规格参数,不同类型的商品其规格参数是不一样的,服装有尺码,颜色,材料等,手机有分辨率,内存,存储,摄像头,书籍有作者,出版社 ...

  5. 零售商贩mysql表设计:收货地址表 用户表(关联起来)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 sql sql 收货地址表: CREATE TABLE `user_address` (`id` int(11) NOT N ...

  6. mysql 收货地址表,没法到达的快递地址 一次偷懒表设计带来的惨痛教训

    无法到达的快递地址 一次偷懒表设计带来的惨痛教训 前段时间,商城在做促销活动的时候,我们的测试人员也买了一些商品,但是时隔多天一直没有收到快递,很是纳闷.经过开发同学的确认,该订单的邮递地址为:北京市 ...

  7. MySQL授权修改表结构_MySQL创建修改表结构

    一.数据库的概述 1.什么是数据库 DB,DataBase 数据库:依照某种数据模型进行组织并存放到存储器的数据集合 DBMS,DataBase Management System 数据库管理系统:用 ...

  8. Vue3电商项目实战-结算支付 3【05-结算-收货地址-添加、06-结算-收货地址-修改、07-结算-提交订单】

    文章目录 05-结算-收货地址-添加 06-结算-收货地址-修改 07-结算-提交订单 05-结算-收货地址-添加 目的:实现收货地址的添加. 大致步骤: 独立组件,准备一个对话框 完成表单布局 完成 ...

  9. Django 19购物商城项目(收货地址:添加、修改)

    dDjango 19购物商城项目 1.新建axf_addr,收货地址表 2.路由 3.cart页面,添加默认收货地址 4.视图(主要修改了cart.新建了收货地址相关方法) 5.收货地址列表 6.收货 ...

  10. Django项目实践(商城):十一、收货地址

    (根据居然老师直播课内容整理) 一.页面功能简介 在"用户中心"的任一界面,点击左边"收货地址"后,显示下面界面 此界面包括以下4个功能: 新增收货地址 删除当 ...

最新文章

  1. 李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪
  2. 查看PID 进程是否存在的一个小技巧
  3. valgrind 的使用简介
  4. android ImageSwitcher的使用
  5. 数据可视化|实验一 绘图基础语法和常用参数
  6. Linux初学时的一些常用命令(4)
  7. 源码安装的php如何启动脚本,PHP源码编译安装管理常用脚本
  8. asp.net实现bt和pt—tracker request
  9. vmware 多外网ip
  10. iOS平台下闪退原因汇总(一):Ran out of trampolines of type 0/1/2 运行时间错误
  11. 截屏自动合成一张长图_拼长图有了新姿势,全自动的截图拼接:Tailor
  12. 在线协同编辑excel系统
  13. Android studio中assets文件更换之后不生效
  14. Greenplum在HTAP场景下的优化和应用
  15. yyyy/MM/dd转换成yyyy-MM-dd,yyyy-MM-dd转换成yyyy/MM/dd你会了吗
  16. 悲痛!长安福特AE工程师之死:985高校吉大毕业,入职8年,年仅30岁抑郁跳楼身亡...
  17. pdc-admin 学习心得
  18. 内网穿透工具--NATAPP讲解
  19. 牛客网小白月赛5 H-最大公约数(lcm)
  20. ubuntu桌面之路-续三

热门文章

  1. C语言的奇技淫巧之三
  2. win10安装oracle数据库失败
  3. 怎样把网上的短信发送到手机
  4. 百度将严厉打击熊掌号发布大量与号领域不匹配的内容
  5. 各种快捷键组合操作让Spotlight搜索变得无比强大
  6. 学大数据专业未来应该怎么就业?有什么岗位?
  7. ssm南工二手书交易平台毕业设计源码172334
  8. Oliver的成绩(vector)
  9. 聪明的猴子(BZOJ 2429)
  10. DASCTF X CBCTF 2022九月挑战赛 dino3d