Open xulayen opened 6 years ago
一些工具和世界五百强都在用的工具和常用工具将陆续更新
1、陈天云:主要负责项目架构搭建(coding ) 与 前后端详细功能设计
2、朱天龙:主要负责项目架构搭建(coding )
3、沈颠颠:前端架构设计、静态页面开发开发
4、金老大:与万文裕确认详细且通俗易懂的功能需求列表
5、徐大腿:完成所有的项目设计功能点设计以及前端架构图设计
1、沈颠颠:主要负责前端架构以及开发(前后端)
2、徐大腿:项目前端nodejs逻辑代码编写
3、陈天云、朱天龙:两位后端架构师同步进入项目架构coding与api技术文档编写
1、服务界面管理化,二期而考虑的功能点 架构师关注
2、ELK日志处理,一期需要考虑的功能点。 架构师及开发人员关注
3、项目架构以CCN.Pgyer打头 开发人员关注
4、在EF框架下,对于类似varchar和nvarchar自动转换导致系统性能慢的问题的调研 架构师关注
5、Redis等基础层、类的封装 架构师关注
6、分表逻辑处理需要在架构中体现 架构师关注
7、代码注释必须加上并且完善 所有devloper关注
8、后端Demo完善 沈敏关注
1、服务界面管理化,二期而考虑的功能点 架构师关注
2、ELK日志处理,一期需要考虑的功能点。 架构师及开发人员关注
3、项目架构以CCN.Pgyer打头 开发人员关注
4、在EF框架下,对于类似varchar和nvarchar自动转换导致系统性能慢的问题的调研 架构师关注
5、Redis等基础层、类的封装 架构师关注
6、分表逻辑处理需要在架构中体现 架构师关注
7、代码注释必须加上并且完善 所有devloper关注
8、后端Demo完善 沈敏关注
1、目前参与项目的成员陈天云、徐磊
2、关于文档,目前已经制作出整体应用架构图、物理机部署架构图、业务逻辑领域驱动图,10大模块的整体模块图已经完成80%,除了日志管理和BI数据中心这两个模块的设计还未编辑完成;关于前端和后端系统功能详细设计还未开始,预计这周可完成30%;数据表设计归档已完成80%
3、关于pgyerUI设计,前端和后端系统目前正在设计,项目进度正常进行:防伪查询、消费者h5、活动弹框(已完成+90%),后台设计预计月底完成;
4、关于数据表,目前已按照上周会议讨论的内容进行了详细的数据模型分模块设计,均已变成了数据表存在pgyer数据库中,注释字段等都已添加完成
5、整体项目进度目前还在设计阶段,整体进度20%。
1、完成项目pgyer表结构字段更新及确认
2、完善项目文档及前端后台详细功能设计30%
1、团队成员需要学习ABP项目开源架构,初步确定使用ABP框架作为项目基础骨架
2、前端项目后端管理系统,需要出一个default页面展示出当前项目的基础样式,类似bootstrap的展示页
3、8月24日再次会议讨论ABP熟悉程度
SetSqlGenerator("MySql.Data.MySqlClient", new CustomMigrationMySQLGenerator());
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
$ Update-Database -verbose
using System.Collections.Generic;
using System.Data.Entity.Migrations.Model;
using System.Data.Entity.Migrations.Sql;
using MySql.Data.Entity;
namespace CCN.Pgyer.Migrations
{
public class CustomMigrationMySQLGenerator : MySqlMigrationSqlGenerator
{
public override IEnumerable<MigrationStatement> Generate(IEnumerable<MigrationOperation> migrationOperations, string providerManifestToken)
{
var statments = new System.Collections.Generic.List<MigrationOperation>();
foreach (var item in migrationOperations)
{
var migration = item as AlterTableOperation;
if (migration == null)
{
statments.Add(item);
}
}
return base.Generate(statments, providerManifestToken);
}
}
}
引入Swashbuckle.core
选择XXX.WebApi,然后添加nuget包(当然你也可以通过命令行添加)。 输入“Swashbuckle.core”
打开XXXWebApiModule.cs文件 创建一个方法“ConfigureSwaggerUi();”
/// <summary>
/// 配置SwaggerUi
/// </summary>
private void ConfigureSwaggerUi()
{
Configuration.Modules.AbpWebApi().HttpConfiguration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "YoYoCMS.PhoneBookAPI文档");
c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
})
.EnableSwaggerUi();
}
首先我们回到 方法:ConfigureSwaggerUi中,对他进行改造。
首先打开application类库的属性设置,然后在生成中找到XML文档文件,启用生成 右键-属性-生成-勾选XML文档文件-bin\YoYoCMS.PhoneBookAPI.XML
然后再对ConfigureSwaggerUi方法进行改造
//将application层中的注释添加到SwaggerUI中
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var commentsFileName = "Bin//XXX.PhoneBook.Application.xml";
var commentsFile = Path.Combine(baseDirectory, commentsFileName);
//将注释的XML文档添加到SwaggerUI中
c.IncludeXmlComments(commentsFile);
支持路由重定向,那么我们就开始改造吧。
在项目对应目录新增swagger.js。 XXX.PhoneBook.SwaggerUi.scripts.swagger.js
.EnableSwaggerUi("doc/{*assetPath}", b =>
{
//对js进行了拓展
b.InjectJavaScript(Assembly.GetExecutingAssembly(), "YoYoCMS.PhoneBook.SwaggerUi.scripts.swagger.js");
});
'use strict';
/**
* Translator for documentation pages.
*
* To enable translation you should include one of language-files in your index.html
* after <script src='lang/translator.js' type='text/javascript'></script>.
* For example - <script src='lang/ru.js' type='text/javascript'></script>
*
* If you wish to translate some new texsts you should do two things:
* 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too.
* 2. Mark that text it templates this way <anyHtmlTag data-sw-translate>New Phrase</anyHtmlTag> or <anyHtmlTag data-sw-translate value='New Phrase'/>.
* The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate.
*
*/
window.SwaggerTranslator = {
_words: [],
translate: function () {
var $this = this;
$('[data-sw-translate]').each(function () {
$(this).html($this._tryTranslate($(this).html()));
$(this).val($this._tryTranslate($(this).val()));
$(this).attr('title', $this._tryTranslate($(this).attr('title')));
});
},
_tryTranslate: function (word) {
return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word;
},
learn: function (wordsMap) {
this._words = wordsMap;
}
};
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated": "警告:已过时",
"Implementation Notes": "实现备注",
"Response Class": "响应类",
"Status": "状态",
"Parameters": "参数",
"Parameter": "参数",
"Value": "值",
"Description": "描述",
"Parameter Type": "参数类型",
"Data Type": "数据类型",
"Response Messages": "响应消息",
"HTTP Status Code": "HTTP状态码",
"Reason": "原因",
"Response Model": "响应模型",
"Request URL": "请求URL",
"Response Body": "响应体",
"Response Code": "响应码",
"Response Headers": "响应头",
"Hide Response": "隐藏响应",
"Headers": "头",
"Try it out!": "试一下!",
"Show/Hide": "显示/隐藏",
"List Operations": "显示操作",
"Expand Operations": "展开操作",
"Raw": "原始",
"can't parse JSON. Raw result": "无法解析JSON. 原始结果",
"Model Schema": "模型架构",
"Model": "模型",
"apply": "应用",
"Username": "用户名",
"Password": "密码",
"Terms of service": "服务条款",
"Created by": "创建者",
"See more at": "查看更多:",
"Contact the developer": "联系开发者",
"api version": "api版本",
"Response Content Type": "响应Content Type",
"fetching resource": "正在获取资源",
"fetching resource list": "正在获取资源列表",
"Explore": "浏览",
"Show Swagger Petstore Example Apis": "显示 Swagger Petstore 示例 Apis",
"Can't read from server. It may not have the appropriate access-control-origin settings.": "无法从服务器读取。可能没有正确设置access-control-origin。",
"Please specify the protocol for": "请指定协议:",
"Can't read swagger JSON from": "无法读取swagger JSON于",
"Finished Loading Resource Information. Rendering Swagger UI": "已加载资源信息。正在渲染Swagger UI",
"Unable to read api": "无法读取api",
"from path": "从路径",
"server returned": "服务器返回"
});
$(function () {
window.SwaggerTranslator.translate();
});
var getCookieValue = function(key) {
var equalities = document.cookie.split('; ');
for (var i = 0; i < equalities.length; i++) {
if (!equalities[i]) {
continue;
}
var splitted = equalities[i].split('=');
if (splitted.length !== 2) {
continue;
}
if (decodeURIComponent(splitted[0]) === key) {
return decodeURIComponent(splitted[1] || '');
}
}
return null;
};
var csrfCookie = getCookieValue("XSRF-TOKEN");
var csrfCookieAuth = new SwaggerClient.ApiKeyAuthorization("X-XSRF-TOKEN", csrfCookie, "header");
swaggerUi.api.clientAuthorizations.add("X-XSRF-TOKEN", csrfCookieAuth);
1、后端架构确定使用ABP领域驱动架构,在官方网站上下载空模版
2、会议确定蒲公英使用自己的“微信开发者平台”,需要魏工在后期协助开发基础API
3、会议确定项目基础模块分工:
朱天龙:身份验证(auth2.0)、api文档、数据库entity总体搭建
陈天云:日志、缓存、分表、数据库以及整体后台项目ABP架构图
徐 磊:测试项目、NODEJS前端整合
金志新:把控全局
4、预计下次会议时间2018年8月28日
一、在上周的工作内容中,通过提到的MyCat、Drds等阿里云的开源或者收费的产品做了测试,但是技术支持和运维要求比较高。通过项目成员的激烈探讨最终确定了不使用任何的开源或者收费的产品来进行有效的分库分表进行大数据的维护与管理,最终确定大数据分库分表形式如下: 1、根据业务模块的不同区分不同的库/表(纵向分表),根据每个模块的标识进行hash分表取模(横向分表) 2、再对每个业务模块的下的日志(行为日志表)进行横向取模分表
二、会议中评审了第一版UI,包括防伪、追溯、营销(砸金蛋、大转盘、基础红包等)、积分商城、营销管理后台的基础色调和模版,并且提出了相应的修改建议
三、目前前端后端的架构体系还没有完全成型:前端架构初步定义为使用vue进行前端页面的开发。
1、在本周工作内容中,在团队成员的积极调研下,确立了使用领域驱动模型架构作为蒲公英基础架构。
2、确定在基础架构之上的基础模块:身份验证(auth2.0)、api文档、数据库、日志、缓存、分表、测试项目、NODEJS前端整合等,并确定基础模块的第一次评审时间。
3、前端架构方面,基本已经了确定项目架构使用VUE+NODE组合形式进行基础架构,并且在下周确定后台项目的基础页面元素
1、目团队成员进入项目基础模块开发阶段,在下周确定基础模块基本完成,并且通过第一次评审。
2、评审前端项目后台管理系统的基础页面元素,并且在UI评审通过的情况下进入静态页面开发。
function counter(){
var n = 0;
return {
count:function(){ return n++;},
rest:function(){ n=0;},
now :function(){ alert("Now n = "+n);}
};
}
1、后台消息管理不做删除操作。 coder关注
2、消息列表在系统分配权限的时候有默认权限,不能看到系统错误日志。 coder关注
3、后台前端新增default页面用来展示页面最基础的表单、表格、Modal等元素 coder关注
4、帮助中心跳转到帮助首页,而且后台需要内容发布系统 coder关注
5、在线客服按钮点击之后跳转到“蒲公英在线客户”系统。需要申请一个在线客服 万文裕关注
6、虚拟卡券默认设置审核发放,默认情况下无需审核直接审核,异常情况下设置审核发放 coder关注
7、积分商场中新增积分商城下线系统、维护转态系统 coder关注
8、后台管理系统可以对用户设置是否是异常用户:可设置禁用启用状态。同时需要服务去确定用户是否是某个级别用户、方便而且进行大数据营销 coder关注
1、需要申请一个在线客服系统。 万文裕关注
2、需要申请一个微信开发者管理平台 万文裕关注
3、需要申请一个微信公众号 万文裕关注
1、设计文档需要重写,并且需要在周三(2018/8月/29日)团队内评审一次 teamer关注
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks (module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
config/paths.js
文件
//遍历public下目录下的html文件生成arry
const globby = require('globby');
const htmlArray = globby.sync([path.join(resolveApp('public'), '/*.html')]);
//module.exports 里面增加
1、entry从原来的数组扩展为对象,每个key代表一个入口;
2、output中的filename要区分输出名,可增加[name]变量,这样会根据entry分别编译出每个entry的js文件。
3、Webpack配置多入口后,只是编译出多个入口的JS,同时入口的HTML文件由HtmlWebpackPlugin生成,也需做配置。chunks,指明哪些webpack入口的JS会被注入到这个HTML页面。如果不配置,则将所有entry的JS文件都注入HTML。filename,指明生成的HTML路径,如果不配置就是build/index.html,admin配置了新的filename,避免与第一个入口的index.html相互覆盖。
// 遍历html
const entryObj = {};
const htmlPluginsAray = paths.htmlArray.map((v)=> {
const fileParse = path.parse(v);
entryObj[fileParse.name] = [
require.resolve('./polyfills'),
require.resolve('react-dev-utils/webpackHotDevClient'),
`${paths.appSrc}/${fileParse.name}.js`,,
]
return new HtmlWebpackPlugin({
inject: true,
chunks:[fileParse.name],
template: `${paths.appPublic}/${fileParse.base}`,
filename: fileParse.base
})
});
<!--entry 替换为entryObj-->
entry:entryObj
//出口增加[name]
output: {
path: paths.appBuild,
pathinfo: true,
filename: 'static/js/[name].js',
chunkFilename: 'static/js/[name].chunk.js',
publicPath: publicPath,
devtoolModuleFilenameTemplate: info =>
path.resolve(info.absoluteResourcePath),
},
<!--替换htmlplugin内容-->
// new HtmlWebpackPlugin({
// inject: true,
// chunks: ["index"],
// template: paths.appPublic + '/index.html',
// }),
...htmlPluginsAray,
上述配置做完后,理论就可以打包出多入口的版本;但使用npm start启动后,发现无论输入/index.html还是/admin.html,好像都>是和原来/index.html显示一样的内容。甚至输入显然不存在的/xxxx.html,也显示为/index.html的内容。 这种现象,初步判断是HTTP服务器把所有请求重定向到了/index.html。对于单页应用,这种做法是没有问题的(本来就一个页 面);但我们新增的/admin.html就不能访问了。发现是webpack dev server的问题,还要额外做一些配置,需修 改/config/webpackDevServer.config.js。
// 增加
const path = require('path');
const htmlPluginsAray = paths.htmlArray.map((v)=> {
const fileParse = path.parse(v);
return {
from: new RegExp(`^\/${fileParse.base}`), to: `/build/${fileParse.base}`
};
});
<!--historyApiFallback 增加 rewrites-->
rewrites: htmlPluginsAray
修改config/webpack.config.prod.js,同开发环境。
修改scripts/build.js
在webpack.config.prod.js
文件中
// 原来的方法是复制public下所有的内容,因为增加了多html 所以不再直接复制过去(直接复制会覆盖html)
function copyPublicFolder() {
fs.copySync(paths.appPublic, paths.appBuild, {
dereference: true,
filter: file => file.indexOf('.html') < 0,
});
}
resolve: {
// This allows you to set a fallback for where Webpack should look for modules.
// We placed these paths second because we want `node_modules` to "win"
// if there are any conflicts. This matches Node resolution mechanism.
// https://github.com/facebookincubator/create-react-app/issues/253
modules: ['node_modules', paths.appNodeModules].concat(
// It is guaranteed to exist because we tweak it in `env.js`
process.env.NODE_PATH.split(path.delimiter).filter(Boolean)
),
// These are the reasonable defaults supported by the Node ecosystem.
// We also include JSX as a common component filename extension to support
// some tools, although we do not recommend using it, see:
// https://github.com/facebookincubator/create-react-app/issues/290
// `web` extension prefixes have been added for better support
// for React Native Web.
extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx'],
alias: {
// Support React Native Web
// https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
'react-native': 'react-native-web',
},
plugins: [
// Prevents users from importing files from outside of src/ (or node_modules/).
// This often causes confusion because we only process files within src/ with babel.
// To fix this, we prevent you from importing files out of src/ -- if you'd like to,
// please link the files into your node_modules/ and let module-resolution kick in.
// Make sure your source files are compiled, as they will not be processed in any way.
new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]),
// //2018年8月28日 16:48:56 xulayen添加
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks(module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
],
},
1、再次确认分表机制:
首先确认可以用厂家进行分表,在此基础上按照维度(用户、数码)进行取模分表(默认32张可配), 最终确认下来的分表表明结构T_模块9999[%32]的形式, 同时,有一个服务会把需要分表的模块(参与日志、积分明细)清洗到一张临时表,此表只保留最近3个月(数值可配)的数据
2、最终确定设计文档雏形,部分细节需要继续修改一下;
3、沈敏后台前端架构的页面元素一览表已经完成,还需要作细节的修改:把组件的源码和组件的展示图放在一起,方便其他开发人员
4、继续上周工作内容,各个Coder继续基础模块开发。
1、在上周工作内容中,在团队成员的积极调研下,确立了使用领域驱动模型架构作为蒲公英基础架构。
2、确定在基础架构之上的基础模块:身份验证(auth2.0)、api文档、数据库、日志、缓存、分表、测试项目、NODEJS前端整合等,并确定基础模块的第一次评审时间。
3、前端架构方面,基本已经了确定项目架构使用VUE+NODE组合形式进行基础架构,并且在下周确定后台项目的基础页面元素
1、对项目需求文档以及项目设计文档进行了内部评审,其中设计文档进行了两次评审,已经做了相应修改。
2、Pgyer整体架构已经完成,基础模块部分已经完成了50%,其中再次确定了分表的模式,以适应未来Pgyer系统对大数据的支持与扩展。
3、后台部分的页面元素引导页已经完成,少部分细节需要修改;前端部分看资源情况进行相应开发。
4、前端NODE端架构已经搭建完成,同时,NODE前端接口文档已经完成50%。
5、UI部分还没完全确定,预计下周做细节性修改。
6、目前Pgyer整体进度完成25%,目前项目进入正式开发阶段。
1、完成基础模块开发,并对基础模块部分编写单元测试项目。
2、前端用户前端界面开发
1、会议确定项目基础模块分工:
朱天龙:身份验证(auth2.0)、api文档、数据库entity总体搭建。已完成60%,其中身份验证(auth2.0)需要周三出实际demo
陈天云:日志、缓存、分表、数据库以及整体后台项目ABP架构图。整体进度75%;目前缓存、分表、框架已经完成100%,
日志模块使用ABP自己自带的日志模块可以配置出ELK;同时系统自带日志还未开发
徐 磊:测试项目、NODEJS前端整合。整体进度80%,其中测试项目已经完成,NODEJS前端API整合已经完成80%。
金志新:把控全局
1、汇报了基础模块的开发进度以及开发中遇到的问题。
2、需要魏工,需要在Pgyer项目进行微信开发者平台,在Pgyer解决方案中提供微信API接口。
3、需要熊工和沈敏一起,优先开发营销活动和防伪部分的用户端前端页面。
4、确定了前端(大熊、沈敏)、node端(徐磊)、后端(陈天云、朱天龙、金志新)、前端数据交互(徐磊)的开发主要人员
1、天龙 营销模块中登录注册的接口后端开发
2、金老大 新老平台的防伪接口整合以及和活动规则维度的整合对接
3、天云/天龙 活动规则、活动维度核心模块的开发
4、天龙 日志模块的开发,需要考虑分表逻辑
5、大熊/沈敏 营销模块和防伪模块前端页面
6、战朋 微信公众平台端的API接口
7、徐磊 后端接口所有基础设施的搭建以及Node端对接前端数据整合
1、在厂家主表中新增是否是新老平台的标识,方便金总做防伪鉴别
2、短信发送模版预留至少5到10个, 大体分为:
> 忘记密码
> 短信验证码
> 中奖提醒
> 短信广告营销推送
> 门店信息下发等模版
3、会议中每个人表达了一下个人在项目中遇到的问题以及建议
在上周工作内容中:
1、对项目需求文档以及项目设计文档进行了内部评审,其中设计文档进行了两次评审,已经做了相应修改。
2、Pgyer整体架构已经完成,基础模块部分已经完成了50%,其中再次确定了分表的模式,以适应未来Pgyer系统对大数据的支持与扩展。
3、后台部分的页面元素引导页已经完成,少部分细节需要修改;前端部分看资源情况进行相应开发。
4、前端NODE端架构已经搭建完成,同时,NODE前端接口文档已经完成50%。
5、UI部分还没完全确定,预计下周做细节性修改。
6、目前Pgyer整体进度完成25%,目前项目进入正式开发阶段。
1、汇总了基础模块的开发进度以及开发中遇到的问题,并且在工作中进行了业务探讨和归档
2、确定了Pgyer项目第一期第一阶段项目主要开发流程:以实现大转盘、砸金蛋、抽红包这样的基础主流程作为第一阶段的开发核心。
A、用户前端登录/微信免登录、微信注册/传统注册
B、新老平台数码防伪核心业务的整合与扩展
C、活动规则、规则维度的动态动态处理,以及用户操作与活动触发机制的有效融合的系统设计
D、异常处理以及日志管理的开发
E、NODEJS前端数据的处理
F、前端静态页面确定以大转盘、砸金蛋、抽红包为主要开发工作
H、每个功能点单元测试开发
1、围绕第一期第一阶段功能点进行开发与单元测
1、短信发送的相关功能,如何开发?是否需要把接口smsinterface.yesno.com.local
发布到外网端口还是独立开发?
把
smsinterface.yesno.com.local
接口发布到外网API,此接口只做发送短信动作,不做任何业务,在abp里面调用,在接口之上封装蒲公英自身的业务。
2、Pgyer
中奖之后的礼品充值是独立开发一套还是调用自动充值系统
?
Pgyer对接
自动充值系统
,由天龙进行对接
1、确定短信下发使用smsinterface.yesno.com.local
接口作为基础接口,在此之上封装一层业务api,不做任何业务;在abp框架里面进行业务处理。徐磊开发
2、Pgyer的礼品充值系统,使用自动充值系统
进行对接。天龙开发
1、天龙,用户模块、oauth权限、对接礼品模块未开始;ABP架构完成100%
2、天云,活动规则,完成20%
3、徐磊,短信服务、基础服务完成30%
4、金总,防伪接口,开发中……
每个人都说了各自项目中遇到的问题,总结下来为
对abp框架不熟
、进度赶不上
1、汇总了基础模块的开发进度以及开发中遇到的问题,并且在工作中进行了业务探讨和归档
2、确定了Pgyer项目第一期第一阶段项目主要开发流程:以实现大转盘、砸金蛋、抽红包这样的基础主流程作为第一阶段的开发核心。
前端部分,静态页面开发完成进度20%
1、前台:防伪溯源模块开发完成、营销模块开发完成。
2、后台:基础部分(导航菜单,商品管理模块列表和编辑框)。
后端主流程部分,完成进度20%
1、前端消费者用户模块已经完成,正在进行单元测试
2、oauth权限验证模块已经完成
3、活动基础配置功能已完成,复杂的业务配置还在开发中。
4、活动基础配置与接口动态对接还未开发
5、短信服务已经完成、基础服务正在开发
NODEJS对接,完成进度10%
还未开始对接
1、继续围绕第一期第一阶段功能点进行开发与单元测试
2、Pgyer系统对接自动充值系统
3、数码防伪接口开发
4、前端静态页面开发
主题,开发者例会
参与人,陈天云、朱天龙、金志新、熊明亮、沈敏、徐磊
持续时间30分钟
会议纪要
确定了Pgyer项目大的事件节点
在2018年12月31日时进行项目发布,而后由测试进行在线测试
1、Pgyer与第三方礼品对接完成时间,预计9月20日完成
2、微信开发者工具接口,要求完成时间国庆节前
3、前端开发后台Demo部分,要求完成时间国庆节前
1、老平台使用00446,进行测试
2、新平台使用
用码
进行测试
确定数据库日志标准 天云完成
前端前台对接接口开发 徐磊完成
前端部分,静态页面开发完成进度20%
1、前台:防伪溯源模块开发完成、营销模块开发完成。
2、后台:基础部分(导航菜单,商品管理模块列表和编辑框)。
后端主流程部分,完成进度20%
1、前端消费者用户模块已经完成,正在进行单元测试
2、oauth权限验证模块已经完成
3、活动基础配置功能已完成,复杂的业务配置还在开发中。
4、活动基础配置与接口动态对接还未开发
5、短信服务已经完成、基础服务正在开发
NODEJS对接,完成进度10%
还未开始对接
前端部分,静态页面开发完成进度80%
前端部分:防伪、营销前端已经完成;积分商城UI已经确认,还未开始开发
后台部分:
1、商品管理,积分商城,礼品中心,订单管理,用户管理表单基本功能已经完成100%;
2、扫码页管理已完成80%;
3、数据中心(每日数据概况)20%
后端主流程部分,完成进度25%
Pgyer系统对接
第三方充值系统
,目前已完成30%。Pgyer礼品库存模块管理,已完成30%
Pgyer兼容新老平台防伪模块,部分功能进入单元测试阶段,已完成30%
活动模块,整体进度45%
1、修改活动规则判断
2、增加规则发奖库存控制
3、增加用户请求日志记录器
4、活动抽奖逻辑进行中
Pgyer微信开发者平台未开始。
NODEJS对接,完成进度30%
接口安全部分,完成80%
业务接口完成,完成进度30%
围绕第一期第一阶段功能点进行开发与单元测试
1、防伪接口部分,周进行新老平台接口防伪认证对接和统一授权对接工作。
2、前端部分,预计下周完成后端静态页面开发。
3、Nodejs部分,下周进行前端接口联调,以及业务接口的完善
4、预计下周完成`自动充值系统`与Pgyer系统的对接
5、下周开始Pgyer微信开发者平台的开发
会议总结了,蒲公英第一阶段项目进展。蒲公英第一阶段工作明细请见会议纪要2018年9月4日 13:54:08 Pgyer会议
。
1、再次确定了第一阶段的工作内容,团队成员达成一致。
2、确定了师琳
、朱玲
开始测试朱天龙
的开发模块礼品中心模块
。
3、确定朱天龙
开始开发积分商城模块
。
前端部分,静态页面开发完成进度80%
前端部分:防伪、营销前端已经完成;积分商城UI已经确认,还未开始开发
后台部分:
1、商品管理,积分商城,礼品中心,订单管理,用户管理表单基本功能已经完成100%;
2、扫码页管理已完成80%;
3、数据中心(每日数据概况)20%
后端主流程部分,完成进度25%
Pgyer系统对接
第三方充值系统
,目前已完成30%。Pgyer礼品库存模块管理,已完成30%
Pgyer兼容新老平台防伪模块,部分功能进入单元测试阶段,已完成30%
活动模块,整体进度45%
1、修改活动规则判断
2、增加规则发奖库存控制
3、增加用户请求日志记录器
4、活动抽奖逻辑进行中
Pgyer微信开发者平台未开始。
NODEJS对接,完成进度30%
接口安全部分,完成80%
业务接口完成,完成进度30%
Pgyer第一阶段工作内容进度80%,部分模块已进入测试阶段。
前端部分,静态页面开发完成进度,除积分商城以外完成100%
前端部分:防伪、营销前端已经完成;积分商城还未开发;
后台部分:完成60%,已经出后端静态页面原型
Nodejs部分,数据安全、数据整合、Http转发已经完成80%
前端活动对接Nodejs接口部分,完成30%
后端部分,
Pgyer微信授权开发中,完成80%
业务基础模块完成100%
活动配置模块完成90%
礼品中心完成100%
前端用户模块模块完成100%
主要工作:围绕Pgyer第一阶段工作内容进行模块测试、开发
积分商城后端接口逻辑部分开始开发。
成员各自说了一下各自的工作进度,并且讨论了关于测试的事情
目前主流程下,缺失的接口主要是微信信息接口、防伪接口,约定在本周完成
开始测试Nodejs接口、礼品发放接口
Pgyer第一阶段工作内容进度80%,部分模块已进入测试阶段。
前端部分,静态页面开发完成进度,除积分商城以外完成50%
前端部分:防伪、营销前端已经完成;积分商城还未开发;
后台部分:完成30%,已经出后端静态页面原型
Nodejs部分,数据安全、数据整合、Http转发已经完成40%
前端活动对接Nodejs接口部分,完成15%
后端部分,
Pgyer微信授权开发中,完成40%
业务基础模块完成50%
活动配置模块完成50%
礼品中心完成50%
前端用户模块模块完成50%
Pgyer第一阶段工作内容进度80%,部分模块已进入测试阶段。
前端部分,静态页面开发完成进度80%
Nodejs部分,数据安全、数据整合、Http转发已经完成80%
前端活动对接Nodejs接口部分,完成30%
后端部分进度50%
主要工作:围绕Pgyer第一阶段工作内容进行模块测试、开发
编写测试用例及测试功能单元
讨论了礼品/库存模块、订单模块中目前存在的问题以及了解了下蒲公英2.0功能模块
在会议中确定了礼品/库存模块需要在天龙基础上重新规划整理
确定了订单模块
了解蒲公英2.0的相关内容
讨论订单数据表、礼品库存表结构;再次确定抽奖逻辑实现方式
Pgyer第一阶段工作内容进度80%,部分模块已进入测试阶段。
前端部分,静态页面开发完成进度80%
Nodejs部分,数据安全、数据整合、Http转发已经完成80%
前端活动对接Nodejs接口部分,完成30%
后端部分进度50%
前端部分
积分商城静态页面完成80%
营销活动对接完成50%
后端部分
活动部分完成60%
礼品、订单、库存完成30%
积分商城完成10%
Nodejs部分
数据接口整合完成60%
继续第一阶段营销活动开发
接口单元测试
主题,开发者例会
参与人,徐磊、朱天龙、陈天云、熊明亮、沈敏、师琳、朱玲、金志新
持续时间2小时
会议纪要
关于进度再次说明:
1、蒲公英整体一期要求完成(系统测试完成,安全测试完成,可进行UAT和使用的时间) 2019年2月底
2、按照进度反推,期望整个平台(含前端活动、积分商城、综合介绍、后台的所有模块)开发完成(经过单元测试)的时间是12月31日。
推进进度:
10月23日-10月31日,完成规则、库存、礼品、订单相关接口的开发(含单元测试) 对应模块负责人 朱天龙、陈天云
10月23日起, 启动综合介绍模块接口部分的接口开发工作 对应模块负责人徐磊
11月1日-11月16日 完成积分商城模块的开发(含单元测试) 对应模块负责人 朱天龙
关于规则讨论的备忘录
1、创建活动后,活动下支持多个规则(多个规则的维度条件可以相同,可以不同,根据排序优先级匹配)
2、规则通过属性[维度]查找匹配规则,规则可排序,按照排序进行优先级匹配
3、匹配后的规则有多个奖项,奖项的匹配通过总规则匹配总人数(参与人数)对奖项阈值进行取模获得,一个规则下允许有多个奖项(常规奖项),奖项可排序,优先大奖。
4、常规奖项下的一个奖项下允许存在多个奖品,按排序获得。
5、除常规奖项下还存在额外奖项,可通过单独配置匹配(属性或者维度)获得,与常规奖项并行,获得常规奖项后可依据额外匹配获得额外奖项,也可以直接获得额外奖项。
例:
包含但不限于: 符合xx规则后,获得一等奖,一等奖包含10元红包+10积分。 在符合xx规则的新用户(或者其他属性条件,如首次查询等其他条件)额外在获得100积分。
主题,开发者例会
参与人,徐磊、朱天龙、陈天云、熊明亮、沈敏、师琳、朱玲、金志新
持续时间0.5小时
会议纪要
关于整理进度的把控询问
后端登录、注册、抽奖、发奖、库存、订单进入联调阶段。目前先测试
红包
、转账
奖项发放,其他奖项等测试金额到位之后陆续联调nodejs接口整合80%
前端对接80%
关于充值测试金额的申请
陈天云
主要负责前端接口和测试的联调,同时完成负责模块(活动、规则、维度、订单)的后台CURD
朱天龙
主要负责积分商城所有模块,同时完成负责模块(礼品、用户、权限、库存)的后台CURD
徐磊
主要负责前端模板化模块开发,同时完成负责模块(三码合一、短信配置、模版配置、活动答复)的后台的CURD
后端部分
活动、库存、订单、抽奖模块开发,完成70%
Nodejs部分
数据接口整合完成70%
接口活动、抽奖、库存、订单、礼品流程联调
积分商城开发
前端模版配置化开发
后台部分功能开发
前端对接Nodejs完成20%
三码合一查询接口、微信授权接口、微信JSSDK接口,对接完成
积分商城后端接口完成30%
用户模块相关接口已完成
图片相关接口已完成
商城礼品相关接口完成50%
后台分模块功能开发部分完成10%
活动信息后台完成,规则信息正在修改
厂家配置信息、基础配置信息、短信配置已完成
积分商城开发
后台功能开发
Nodejs中间件开发,前端对接接口开发
前端对接Nodejs完成20%
三码合一查询接口、微信授权接口、微信JSSDK接口,对接完成
积分商城后端接口完成30%
用户模块相关接口已完成
图片相关接口已完成
商城礼品相关接口完成50%
后台分模块功能开发部分完成10%
活动信息后台完成,规则信息正在修改
厂家配置信息、基础配置信息、短信配置已完成
前端对接Nodejs完成30%
前端记录微信信息接口
数码抽奖接口
更新手机号接口对接完成。
活动模块根据数据展示相应UI以及相关流程基本完成
积分商城后端接口完成60%
接口开发完成95%,正在进行单元测试
测试完成10%
后台分模块功能开发部分完成25%
活动和规则,规则的更新和删除未全部完成,正在修改更改规则或删除后库存如何返还
积分商城联调
后台功能开发
Nodejs中间件开发,前端对接接口开发
商品管理 陈天云
商品信息录入,关联活动
商品码管理 陈天云
CCN商品码属性关联录入
模版管理 陈天云
防伪、追溯、三码合一、营销活动模版管理
用户权限组 朱天龙
后台用户分权限登录
积分商城 朱天龙
积分商城接口
礼品库存 朱天龙
礼品库存简化
核销 朱天龙
精确到积分商城、活动核销开关的管控
用户行为数据 朱天龙
用户扫码数据、浏览量、活动量
前端对接 熊明亮
Nodejs数据安全 徐磊
前端对接Nodejs完成30%
前端记录微信信息接口
数码抽奖接口
更新手机号接口对接完成。
活动模块根据数据展示相应UI以及相关流程基本完成
积分商城后端接口完成60%
接口开发完成95%,正在进行单元测试
测试完成10%
后台分模块功能开发部分完成25%
活动和规则,规则的更新和删除未全部完成,正在修改更改规则或删除后库存如何返还
商品管理
商品信息录入,关联活动
商品码管理
CCN商品码属性关联录入
模版管理
防伪、追溯、三码合一、营销活动模版管理
用户权限组
后台用户分权限登录
积分商城
积分商城接口
礼品库存
礼品库存简化
核销
精确到积分商城、活动核销开关的管控
用户行为数据
用户扫码数据、浏览量、活动量
前端对接
Nodejs数据安全
积分商城联调
后台功能开发
Nodejs中间件开发,前端对接接口开发
1.商品新增/查询后台接口
2.商品类别后台新增接口
3.活动保存增加商品关联关系,订单审核状态修改
4.模板/模板分配后台新增/查询接口,包含商品关联关系
5.新增阈值维度与用户扫码记录
6.库存表与逻辑修改
7.入口模块计算服务
8.后台权限组开发完成,正在单元测试
商品管理
商品信息录入,关联活动
商品码管理
CCN商品码属性关联录入
模版管理
防伪、追溯、三码合一、营销活动模版管理
用户权限组
后台用户分权限登录
积分商城
积分商城接口
礼品库存
礼品库存简化
核销
精确到积分商城、活动核销开关的管控
用户行为数据
用户扫码数据、浏览量、活动量
前端对接
Nodejs数据安全
前端主入口接口开发 80%
模版入口接口开发 80%
后端接口开发
1.商品新增/查询后台接口 80%
2.商品类别后台新增接口 80%
3.活动保存增加商品关联关系,订单审核状态修改 80%
4.模板/模板分配后台新增/查询接口,包含商品关联关系 80%
5.新增阈值维度与用户扫码记录 80%
6.库存表与逻辑修改 80%
7.入口模块计算服务 80%
8.后台权限组开发完成,正在单元测试 90%
积分商城联调
后台功能开发
Nodejs中间件开发,前端对接接口开发
前端主入口接口开发 80%
模版入口接口开发 80%
后端接口开发 40%
前端 完成开发80%
主入口已完成
模版统一扫码入口对接测试中
积分商城前端接口对接测试中
活动抽奖前端接口对接测试中
Nodejs中间层 完成开发60%
对接.Net接口测试联调
Liunx环境测试部署,nginx反向代理nodejs服务器测试部署
.Net接口层 完成40%
新增了防伪,溯源,综合模块基础数据,开发阶段
更改了防伪,溯源,综合模块模板逻辑,开发阶段
后端用户权限组开发完成,测试阶段
礼品中心开发完成,单元测试阶段
后台界面 进入接口对接阶段 完成10%
后台前端Vue对接nodejs接口进入开发阶段
前端H5继续联调Nodejs接口开发
后端页面对接接口功能开发
Nodejs中间件开发,前端对接接口开发
.Net后端模块功能开发
积分商城后端界面接口 朱天龙
活动规则维度后端界面接口 陈天云
活动模版后端界面接口 陈天云
数据报表后端接口 朱天龙
用户数据查询后端接口 朱天龙
用户订单后端接口 朱天龙
订单核销功能接口 朱天龙
库存管理后端功能接口 陈天云
前端 完成开发80%
主入口已完成
模版统一扫码入口对接测试中
积分商城前端接口对接测试中
活动抽奖前端接口对接测试中
Nodejs中间层 完成开发70%
更新升级了RSA、CSRF跨站攻击伪造等安全措施
测试发布了积分商城、活动H5、后端PC页面
.Net接口层 完成60%
防伪、溯源、综合模块后台功能新增,单元测试阶段
后台权限组已经开发完成,联调阶段
图片上传接口完成,联调阶段
礼品管理新增积分管理开发完成,单元测试阶段
后台界面 进入接口对接阶段 完成15%
商品信息,增删改查已经对接完成
商品类别,增删改查已经对接完成
活动管理,对接完成了查询、删除接口
后台菜单正在对接
测试进度
前端接口,进行二次测试,完成10%
进度请查看$/产品化项目/蒲公英一物一码营销管理平台/项目文档/测试/测试进度/蒲公英项目前端接口测试进度表_shop.xlsx
后端接口,完成62%
进度请查看$/产品化项目/蒲公英一物一码营销管理平台/项目文档/测试/测试进度/蒲公英项目后台测试进度表.xlsx
环境准备
测试环境,IDC+CCN
1、nginx for linux 172.16.30.60 服务器
2、node for linux 172.16.30.60 服务器
3、redis 10.20.31.11 服务器
4、mysql 192.168.101.30 服务器
5、ftp 172.16.30.22 ftp://upload.pgyer.zhsh.co 服务器
6、image 172.16.30.22 http://image.pgyer.zhsh.co 服务器
7、微信授权接口服务器 192.168.101.109 服务器
正式环境,阿里云
筹备中……
http://pmp.xulayen.com/index.html#/pre/face
PMBOOK 6.0系统解析|PMP 6.0系统的分析记录工具,项目管理系统分析记录工具,PMP,学习,考试,PMI,PMP 6.0,PMP分析,PMPBOOK,PMPBOOK 6.0,PMBOOK 6.0系统解析,PMBOOK系统解析,PMPBOK,PMPBOK 6.0,PMBOK 6.0系统解析,PMBOK系统解析