作者 陈志颖

fix:修改消息推送

1 # 价值系统后台管理服务 1 # 价值系统后台管理服务
2 -项目使用框架 2 +## 系统架构图
  3 +![diagram](http://gitlab.fjmaimaimai.com/chenzhiying/img-folder/raw/master/diagram.png)
  4 +## 项目使用框架
3 - http框架:beego 5 - http框架:beego
4 - orm框架:go-pg 6 - orm框架:go-pg
5 - 数据存储:postgresql 7 - 数据存储:postgresql
6 - 项目结构分层:基于端口适配器架构(六边形架构)实现领域驱动设计(DDD领域驱动) 8 - 项目结构分层:基于端口适配器架构(六边形架构)实现领域驱动设计(DDD领域驱动)
7 9
8 -项目目录结构 10 +## 项目目录结构
9 ``` 11 ```
10 ├─conf 项目配置文件 12 ├─conf 项目配置文件
11 ├─deploy 项目部署文件 13 ├─deploy 项目部署文件
12 ├─document 接口文档 14 ├─document 接口文档
13 ├─test 业务接口集成测试 15 ├─test 业务接口集成测试
  16 + ├─dsl 领域描述语言文档
14 ├─pkg 17 ├─pkg
15 │ ├─application 应用层 18 │ ├─application 应用层
16 │ │ ├─employee 员工 19 │ │ ├─employee 员工
@@ -25,8 +28,8 @@ @@ -25,8 +28,8 @@
25 │ │ ├─event 注册领域业务事件订阅以及处理 28 │ │ ├─event 注册领域业务事件订阅以及处理
26 │ │ └─factory 工厂类,组装复杂对象或者聚合 29 │ │ └─factory 工厂类,组装复杂对象或者聚合
27 │ ├─domain 领域层(核心业务逻辑建模,实体,聚合根) 30 │ ├─domain 领域层(核心业务逻辑建模,实体,聚合根)
28 - │ │ ├─event/ 领域事件  
29 - │ │ ├─service/ 领域服务 31 + │ │ ├─event 领域事件
  32 + │ │ ├─service 领域服务
30 │ │ ├─domain... 领域对象 33 │ │ ├─domain... 领域对象
31 │ │ └─task 任务状态机实现 34 │ │ └─task 任务状态机实现
32 │ ├─infrastructure 基础设施层 35 │ ├─infrastructure 基础设施层
@@ -42,7 +45,7 @@ @@ -42,7 +45,7 @@
42 └─logs 日志文件 45 └─logs 日志文件
43 ``` 46 ```
44 47
45 -主要业务模块 48 +## 主要业务模块
46 - 企业员工模块(application/employee) 49 - 企业员工模块(application/employee)
47 - 素币模块(application/suMoney) 50 - 素币模块(application/suMoney)
48 - 任务模块(application/task) 51 - 任务模块(application/task)
@@ -50,18 +53,123 @@ @@ -50,18 +53,123 @@
50 - 消息通知模块(application/notification) 53 - 消息通知模块(application/notification)
51 - 适配统一用户中心模块(application/unifiedUserCenter) 54 - 适配统一用户中心模块(application/unifiedUserCenter)
52 55
53 -# 安装与使用  
54 -[价值系统代码仓库地址](http://gitlab.fjmaimaimai.com/linmadan/mmm-worth) 56 +## 任务有限状态机
  57 +![taskFSM]()
  58 +
  59 +## 领域驱动设计-战略建模
  60 +### 领域
  61 +
  62 +### 限界上下文
  63 +
  64 +### 上下文映射
  65 +
  66 +## 领域驱动设计-战术建模
  67 +### 实体
  68 +员工实体:Employee
  69 +
  70 +现金池实体:CashPool
  71 +
  72 +客户价值实体:CustomerValue
  73 +
  74 +素币兑换活动实体:ExchangeCashActivity
  75 +
  76 +素币兑换清单实体:ExchangeCashPerson
  77 +
  78 +排行版时间实体:ListInterval
  79 +
  80 +提醒消息实体:Notification
  81 +
  82 +关闭任务记录实体:OffTaskRecord
  83 +
  84 +项目归属实体:ProjectBelong
  85 +
  86 +引用资源实体:ReferenceResource
  87 +
  88 +驳回任务记录实体:RejectTaskRecord
  89 +
  90 +任务实体:Task
  91 +
  92 +素币事务记录实体:SuMoneyTransactionRecord
  93 +
  94 +任务性质实体:TaskNature
  95 +
  96 +已发送通知实体:SentNotification
  97 +
  98 +### 值对象
  99 +员工信息值对象:EmployeeInfo
  100 +
  101 +竞标任务信息值对象:BidInfo
  102 +
  103 +竞标人值对象:BidderInfo
  104 +
  105 +引用资源项值对象:ReferenceResourceItem
  106 +
  107 +抢单任务信息值对象:RobInfo
  108 +
  109 +任务贡献占比项值对象:TaskPercentageItem
55 110
56 -新建开发分支,如:xxx-dev,下载相应分支代码 111 +解决评分项值对象:SolveScoreItem
  112 +
  113 +### 聚合根
  114 +
  115 +### 领域服务
  116 +验收任务服务
  117 +
  118 +申请完成任务服务
  119 +
  120 +竞标任务服务
  121 +
  122 +选择竞标成功人服务
  123 +
  124 +确认抢单任务服务
  125 +
  126 +兑换素币服务
  127 +
  128 +关闭任务服务
  129 +
  130 +操作素币服务
  131 +
  132 +已读全部消息服务
  133 +
  134 +已读消息服务
  135 +
  136 +驳回任务服务
  137 +
  138 +发布任务服务
  139 +
  140 +抢单任务服务
  141 +
  142 +### 领域事件
  143 +
  144 +## 领域驱动设计工程实现
  145 +### 模块
  146 +
  147 +### 领域对象
  148 +
  149 +### 资源库
  150 +
  151 +### 防腐层
  152 +
  153 +### 领域服务
  154 +
  155 +### 数据流转
  156 +![avatar](http://gitlab.fjmaimaimai.com/chenzhiying/img-folder/raw/master/dto.png)
  157 +### 上下文集成
  158 +
  159 +### 分离领域
  160 +![avatar](http://gitlab.fjmaimaimai.com/chenzhiying/img-folder/raw/master/dispatch.png)
  161 +
  162 +## 安装与使用
  163 +[价值系统代码仓库地址](http://gitlab.fjmaimaimai.com/linmadan/mmm-worth)
  164 +### 新建开发分支,如:xxx-dev,下载相应分支代码
57 ``` 165 ```
58 git clone -b xxx-dev http://gitlab.fjmaimaimai.com/linmadan/mmm-worth.git 166 git clone -b xxx-dev http://gitlab.fjmaimaimai.com/linmadan/mmm-worth.git
59 ``` 167 ```
60 -安装项目依赖: 168 +### 安装项目依赖:
61 ``` 169 ```
62 go mod tidy 170 go mod tidy
63 ``` 171 ```
64 -启动项目 172 +### 启动项目
65 ``` 173 ```
66 bee run 174 bee run
67 ``` 175 ```
@@ -2,6 +2,8 @@ package service @@ -2,6 +2,8 @@ package service
2 2
3 import ( 3 import (
4 "fmt" 4 "fmt"
  5 + "time"
  6 +
5 "github.com/linmadan/egglib-go/core/application" 7 "github.com/linmadan/egglib-go/core/application"
6 "github.com/linmadan/egglib-go/utils/tool_funs" 8 "github.com/linmadan/egglib-go/utils/tool_funs"
7 "github.com/shopspring/decimal" 9 "github.com/shopspring/decimal"
@@ -10,7 +12,6 @@ import ( @@ -10,7 +12,6 @@ import (
10 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/factory" 12 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/factory"
11 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain" 13 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain"
12 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/infrastructure/dao" 14 "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/infrastructure/dao"
13 - "time"  
14 ) 15 )
15 16
16 // 员工服务 17 // 员工服务
@@ -31,7 +31,7 @@ func (subscriber *MmmOpenApiServiceServiceSubscriber) HandleEvent(domainEvent co @@ -31,7 +31,7 @@ func (subscriber *MmmOpenApiServiceServiceSubscriber) HandleEvent(domainEvent co
31 employeeRepository = repository 31 employeeRepository = repository
32 } 32 }
33 uids := make([]int64, 0) 33 uids := make([]int64, 0)
34 - if _, employees, err := employeeRepository.Find(map[string]interface{}{"companyId": taskReleasedEvent.CompanyId}); err != nil { 34 + if _, employees, err := employeeRepository.FindAll(map[string]interface{}{"companyId": taskReleasedEvent.CompanyId, "status": 1}); err != nil {
35 fmt.Println(err.Error()) 35 fmt.Println(err.Error())
36 return nil 36 return nil
37 } else { 37 } else {
@@ -4,11 +4,10 @@ import "os" @@ -4,11 +4,10 @@ import "os"
4 4
5 const SERVICE_NAME = "mmm-worth" 5 const SERVICE_NAME = "mmm-worth"
6 6
7 -var LOG_LEVEL = "debug"  
8 var ABILITY_SERVICE_HOST = "https://suplus-worth-app-gateway-dev.fjmaimaimai.com" 7 var ABILITY_SERVICE_HOST = "https://suplus-worth-app-gateway-dev.fjmaimaimai.com"
9 var MMM_OPEN_API_SERVICE_HOST = "http://mmm-open-api-dev.fjmaimaimai.com" 8 var MMM_OPEN_API_SERVICE_HOST = "http://mmm-open-api-dev.fjmaimaimai.com"
10 9
11 -//var LOG_LEVEL = "debug" 10 +var LOG_LEVEL = "debug"
12 var LOG_File = "logs/app.log" 11 var LOG_File = "logs/app.log"
13 12
14 func init() { 13 func init() {