作者 陈志颖

docs:更新README

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