fenghuang's People
fenghuang's Issues
测试数据
测试数据录入
汉明——接口需求
用户管理:已经提供
收藏管理:已提供
评论管理:已提供
留言管理:待开发
组管理:待开发
数量信息接口
留言、预约、订单、评论、收藏、优惠券数量提醒。
微信客服
预约
预约验房url
预约量房url
预约设计url
预约套餐url
服务
套餐抢购url
凤凰管家url
案例直播url
家装贷款url
我的
用户中心url
在线客服url
装修进度url
关于我们url
微信公众号菜单
在线客服 是 event
完善保存更新接口
通过将已有实体区分dto和inputargs,使接口更强壮。
排序、过滤功能异常
约定:
排序、过滤格式
{
filter_operation1_param1:value,
filter_operation2_param2:value,
sort_param1:desc,
sort_param2:desc
}
但按此格式进行查询时异常,如:
get : http://101.200.229.135:8080/api/admin/message?sort_create_user=desc
return :org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property create found for type Message!
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)....
晨宇——接口需求
1、获取个人资料
2、更新个人资料
3、绑定手机号
前端广告模块
字段:
sliderid 幻灯片类别 id
slideritemid 幻灯片页面 id
slidertitle 文字区域 需要支持 html的 富文本编辑框
publisher 发布人
starttime 发布时间
endtime 更新时间
微信公众号菜单JSON
说明:click类型请统一返回单图文消息,图片和问题链接再指向webapp的Url,view类型直径跳转到webapp对应的Url。
{
"button":[
{
"name":"家装套餐",
"sub_button":[
{
"type":"click",
"name":"699家装套餐",
"key":"TC_699"
},
{
"type":"click",
"name":"799软包装",
"key":"TC_799"
},
{
"type":"click",
"name":"1299电器包",
"key":"TC_1299"
},
{
"type":"view",
"name":"立即预约",
"url":"http://www.ifhzj.com/sub/"
}]
},
{
"name":"家装服务",
"sub_button":[
{
"type":"click",
"name":"凤凰管家",
"key":"FW_FHGJ"
},
{
"type":"click",
"name":"家装贷",
"key":"FW_JZD"
},
{
"type":"click",
"name":"智能报价",
"key":"FW_ZNBJ"
},
{
"type":"view",
"name":"家装案例",
"url":"http://www.ifhzj.com/case/"
},
{
"type":"view",
"name":"家装直播",
"url":"http://www.ifhzj.com/live/"
}]
},
{
"name":"我的",
"sub_button":[
{
"type":"view",
"name":"我的资料",
"url":"http://www.ifhzj.com/center/my"
},
{
"type":"view",
"name":"家装进度",
"url":"http://www.ifhzj.com/center/live"
},
{
"type":"view",
"name":"我的预约",
"url":"http://www.ifhzj.com/center/sub"
},
{
"type":"view",
"name":"我的订单",
"url":"http://www.ifhzj.com/center/order"
},
{
"type":"view",
"name":"我的收藏",
"url":"http://www.ifhzj.com/center/fav"
}]
}]
}
QQ授权登录
在所有页面都加入QQ授权登录,现在只有首页有。
留言模块
系统推送给用户一些信息
[汉明]关于组管理列表批量更新的接口需求修改
图形验证码
REST模式图形验证
图片放倒链
防盗链插件
删除是物理删除还是逻辑删除?
在测试消息删除时,删除成功后,查看数据库,发现对应记录已不存在!按照要求,是否删除时只是将deleted字段置为1即可?
火狐浏览器下兼容性的问题
火狐浏览器:41.0.1
第一步点击“家装套餐”按钮
第二步鼠标移动到“599装修套餐”,鼠标在移走,“家装套餐”隐藏。所有导航按钮都存在这样的问题
关于p6spy的问题请教
TimYi,您好:
在durid 项目上看你提的 p6spy 的一个issues,我想请教关于这方面的问题,是否可以留一个联系方式。或是在这里给我说一下 在spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 中如何加入p6spy.
留言,评论实体改动
留言增加标题title
评论增加栏目名称column,回复数量replyNumber,评论时间createTime,
收藏增加收藏栏目column,收藏时间createTime
增加留言删除接口,wiki里写了,但是实际忘了加。
修改抢购流程
添加抢购预约功能,预约之后才能抢购。
添加抢购时间控制。
解决wiki中字段信息重复的地方
代码中尸体定义没有重复的部分,但是wiki中的接口信息定义,很多是相关连的,请求参数和返回参数有重复的部分。以后定义一组约定,相同的参数都在某类接口中作为基准。
bug fix
1、暂时放开后台管理权限,方便测试
2、修复连接池bug
用户信息完整性判断
1、在dto字段中,加入一个字段判断用户信息完整性。
2、在用户抢购时,判断用户信息完整性,信息不完整不允许抢购。
个人家装信息管理
http://123.57.218.171/fhzj/c_home.html
参照这些字段,设计个人家装信息记录模块。
关于评论的讨论
目前,comment,commentItem两个评论相关表的设计不能全部满足需求,需要重新讨论一下
后台新增品牌等自动排到最后
后台将新增的品牌,材料等自动拍到最后。
客户端来源区分
通过nginx或者其它方式,将来自不同类型客户端的请求定向到对应相关页面。
前台查看、修改、取消业务逻辑确定
1、已有业务逻辑中,单个资源查看接口添加。
2、是否可以修改,可以修改哪些内容?
3、是否可以取消?
注册、登录ip和时间
注册和登录时,记录用户登录时间和ip地址。
用户组管理
按照经验值划分用户组,给用户组起名称。
Spring data page数据第一次初始化时引起的json转换问题
com.fasterxml.jackson.databind.JsonMappingException: Specified map is empty
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1144)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:507)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.resolve(BeanSerializerBase.java:316)
at com.fasterxml.jackson.databind.ser.SerializerCache.addAndResolveNonTypedSerializer(SerializerCache.java:170)
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1129)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:471)
at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:669)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3385)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2779)
at com.fenghuangzhujia.foundation.utils.JsonSerializer.Serialize(JsonSerializer.java:29)
at com.fenghuangzhujia.foundation.core.model.PagedList.(PagedList.java:35)
at com.fenghuangzhujia.foundation.core.service.AbstractPagingService.findPage(AbstractPagingService.java:31)
at com.fenghuangzhujia.foundation.core.service.AbstractPagingService$$FastClassBySpringCGLIB$$553fb6af.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:649)
at com.fenghuangzhujia.eshop.core.user.UserService$$EnhancerBySpringCGLIB$$af56b5a7.findPage()
at com.fenghuangzhujia.foundation.core.rest.PagingController.page(PagingController.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at com.fenghuangzhujia.eshop.core.authentication.TokenAuthFilter.doFilter(TokenAuthFilter.java:40)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.fenghuangzhujia.eshop.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:22)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Specified map is empty
at java.util.EnumMap.(EnumMap.java:177)
at com.fasterxml.jackson.databind.util.EnumValues.(EnumValues.java:26)
at com.fasterxml.jackson.databind.util.EnumValues.constructFromName(EnumValues.java:52)
at com.fasterxml.jackson.databind.ser.std.EnumSerializer.construct(EnumSerializer.java:87)
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.buildEnumSerializer(BasicSerializerFactory.java:930)
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByPrimaryType(BasicSerializerFactory.java:428)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:218)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:152)
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1166)
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1139)
... 99 more
用一个简陋的办法先应付
工人管理
工人用户的增删改查管理。
编写接口测试程序
将接口封装成SDK,同时添加测试程序。
目的是保持接口的严谨、明确、健壮。
图片水印
图片加水印
修改wiki命名
区分前台接口,后端接口,以及公共接口
[汉明]后台订单管理api使用的问题
是否不可用?是没有打开还是未实现?
后台新增品牌等自动排到最后
后台将新增的品牌,材料等自动拍到最后。
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.