作者 陈志颖

docs:更新README

@@ -4,9 +4,12 @@ @@ -4,9 +4,12 @@
4 - 基于REST Full的微服务架构 4 - 基于REST Full的微服务架构
5 5
6 ## 代码仓库及相关文档 6 ## 代码仓库及相关文档
7 -- [仓库地址](http://gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation.git)  
8 -- [项目原型svn](svn://220.250.41.79/repo/标准产品文件) 7 +- [代码仓库地址](http://gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation.git)
  8 +- [DSL文件仓库地址](http://gitlab.fjmaimaimai.com/allied-creation/document)
  9 +- [标准产品文件svn](svn://220.250.41.79/repo/标准产品文件)
9 - [天联共创API(APP)](http://47.97.5.102:36666/project/342/interface/api) 10 - [天联共创API(APP)](http://47.97.5.102:36666/project/342/interface/api)
  11 +- [APP端原型地址](https://9cnuol.axshare.com/)
  12 +- [WEB端原型地址](https://eq4yc2.axshare.com/)
10 13
11 ## 项目规范 14 ## 项目规范
12 - 领域描述语言文档位置:document/allied-creation-cooperation/ 15 - 领域描述语言文档位置:document/allied-creation-cooperation/
@@ -89,6 +92,8 @@ @@ -89,6 +92,8 @@
89 92
90 ### DTO模块开发 93 ### DTO模块开发
91 94
  95 +### REST集成限界上下文
  96 +
92 ## 标准产品组工具使用 97 ## 标准产品组工具使用
93 - 设置全局变量(替换YOUR-USER-PATH为你真实的项目路径) 98 - 设置全局变量(替换YOUR-USER-PATH为你真实的项目路径)
94 99
@@ -122,12 +127,12 @@ @@ -122,12 +127,12 @@
122 127
123 5.生成Http协议接口 128 5.生成Http协议接口
124 129
125 -- Tips 130 +- 调试技巧
126 131
127 1.代码生成器服务端500错误调试技巧 132 1.代码生成器服务端500错误调试技巧
128 133
129 - 在任务管理其中关闭由标准化平台带起的eggcode.exe,在命令行通过命令eggcode.exe http -p 9099启动生成器服务,这样就可以打印出生成器500错误的具体信息,关键还是在编写dsl时要细心,不需要的配置整体删干净,需要的配置写完整,注意属性名不要和golang的关键字或者保留字冲突,例如:type、no 134 + 在任务管理其中关闭由标准化平台启动的eggcode.exe(需要debug版本才能查看日志),在命令行通过命令eggcode.exe http -p 9099启动生成器服务,这样就可以打印出生成器500错误的具体信息,关键还是在编写dsl时要细心,不需要的配置整体删干净,需要的配置写完整,注意属性名不要和golang的关键字或者保留字冲突,例如:type、no
130 135
131 - 2.集成试技巧 136 + 2.集成试技巧
132 137
133 Describe前面添加F可以针对当前用例进行测试,同样的It前面增加F也可以针对一个Describe中的不同IT进行测试,F的意思为Focus,另外还有其他标记如:P(Pending) or X,详情 [参考](https://onsi.github.io/ginkgo/) Ginkgo官方文档The Spec Runner章节 138 Describe前面添加F可以针对当前用例进行测试,同样的It前面增加F也可以针对一个Describe中的不同IT进行测试,F的意思为Focus,另外还有其他标记如:P(Pending) or X,详情 [参考](https://onsi.github.io/ginkgo/) Ginkgo官方文档The Spec Runner章节
@@ -23,3 +23,10 @@ type User struct { @@ -23,3 +23,10 @@ type User struct {
23 // 用户关联公司信息 23 // 用户关联公司信息
24 Company *Company `json:"company"` 24 Company *Company `json:"company"`
25 } 25 }
  26 +
  27 +type UserService interface {
  28 + ReferrerFrom(user *User) (*Referrer, error)
  29 + UndertakerFrom(user *User) (*Undertaker, error)
  30 + RelevantFrom(user *User) (*Relevant, error)
  31 + SalesmanFrom(user *User) (*Salesman, error)
  32 +}
@@ -217,9 +217,45 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai @@ -217,9 +217,45 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai
217 return cooperationContract, err 217 return cooperationContract, err
218 } else { 218 } else {
219 //TODO 更新相关人 219 //TODO 更新相关人
  220 + // 获取相关人列表
  221 + var cooperationContractRelevantModels []*models.CooperationContractRelevant
  222 + cooperationContractRelevantQuery := tx.Model(&cooperationContractRelevantModels)
  223 + if err := cooperationContractRelevantQuery.Where("cooperation_contract_number = ?", cooperationContract.CooperationContractNumber).Select(); err != nil {
  224 + return nil, err
  225 + }
  226 + var cooperationContractRelevantModelsUpdate []*models.CooperationContractRelevant // 待更新的相关人
  227 + var cooperationContractRelevantModelsDelete []*models.CooperationContractRelevant // 待删除的相关人
  228 + var cooperationContractRelevantModelsCreate []*models.CooperationContractRelevant // 待增加的相关人
  229 +
  230 + for _, cooperationContractRelevantModels := range cooperationContractRelevantModels {
  231 + for _, cooperationContractRelevantDomain := range cooperationContract.RelevantPeople {
  232 +
  233 + }
  234 + }
  235 +
220 //TODO 更新承接人 236 //TODO 更新承接人
  237 + // 获取承接人列表
  238 + var cooperationContractUndertakerModels []*models.CooperationContractUndertaker
  239 + cooperationContractUndertakerQuery := tx.Model(&cooperationContractUndertakerModels)
  240 + if err := cooperationContractUndertakerQuery.Where("cooperation_contract_number = ?", cooperationContract.CooperationContractNumber).Select(); err != nil {
  241 + return nil, err
  242 + }
  243 +
221 //TODO 更新分红激励规则 244 //TODO 更新分红激励规则
  245 + // 获取分红激励规则列表
  246 + var dividendsIncentivesRuleModels []*models.DividendsIncentivesRule
  247 + dividendsIncentivesRuleQuery := tx.Model(&dividendsIncentivesRuleModels)
  248 + if err := dividendsIncentivesRuleQuery.Where("cooperation_contract_number = ?", cooperationContract.CooperationContractNumber).Select(); err != nil {
  249 + return nil, err
  250 + }
  251 +
222 //TODO 更新金额激励规则 252 //TODO 更新金额激励规则
  253 + // 获取金额激励规则列表
  254 + var moneyIncentivesRuleModels []*models.MoneyIncentivesRule
  255 + moneyIncentivesRuleQuery := tx.Model(&moneyIncentivesRuleModels)
  256 + if err := moneyIncentivesRuleQuery.Where("cooperation_contract_number = ?", cooperationContract.CooperationContractNumber).Select(); err != nil {
  257 + return nil, err
  258 + }
223 } 259 }
224 } 260 }
225 return cooperationContract, nil 261 return cooperationContract, nil