当前位置: 首页 > news >正文

影楼网站推广网站运营专员做什么

影楼网站推广,网站运营专员做什么,什么网站可以做兼职销售,佛山快速建站哪家服务专业1.背景 产品需要实现一个待办提醒功能#xff0c;就是核心业务发生变更即提醒业务员去处理相关业务。譬如#xff1a;订单上传了支付凭证#xff0c;那么就会提醒相关业务员去待办列表操办。 2.表设计 其实表设计主要是两张表sys_todo、sys_todo_detail 一张是待办核心表…1.背景 产品需要实现一个待办提醒功能就是核心业务发生变更即提醒业务员去处理相关业务。譬如订单上传了支付凭证那么就会提醒相关业务员去待办列表操办。 2.表设计 其实表设计主要是两张表sys_todo、sys_todo_detail 一张是待办核心表主要是记录待办类型待办业务id等。 CREATE TABLE sys_todo (id bigint NOT NULL AUTO_INCREMENT COMMENT id,model int NOT NULL DEFAULT 0 COMMENT 归属模块: 0-crm 1-srm,type int NOT NULL DEFAULT 0 COMMENT 待办类型,biz_id bigint NOT NULL DEFAULT 0 COMMENT 业务id,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci COMMENT待办统计表; 另一张是待办详情表主要是记录这个待办能做哪些操作。 CREATE TABLE sys_todo_detail (id bigint NOT NULL AUTO_INCREMENT COMMENT id,todo_id bigint NOT NULL DEFAULT 0 COMMENT sys_todo表id,title varchar(50) NOT NULL DEFAULT COMMENT 标题,url varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT COMMENT 地址,is_pop int NOT NULL DEFAULT 0 COMMENT 是否弹窗 0-否 1-是,content varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT COMMENT 内容,sort_num int NOT NULL DEFAULT 0 COMMENT 排序,PRIMARY KEY (id),KEY idx_todo_id (todo_id) USING BTREE ) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci COMMENT待办统计详情表; 举例sys_todo 有个待办类型是【上传支付凭证】id1sys_todo_detail 待办详情表就有todo_id 为1的内容譬如【查看】、【审核】操作的两条记录。 当然这些表具体实现得根据具体业务设计来实现。 3.如何实现 3.1 业务埋点 业务埋点也就是在每一个相关业务代码里面加上待办的埋点让相关待办业务内容插入待办表。譬如【上传支付凭证】就得在上传支付凭证的代码最后上传成功的地方写上上传待办的业务代码。 3.2 切面Aspect 策略模式 3.2.1 先定义好切面 这里我在项目里面定义好切面类。 Component Aspect public class SrmTodoAspect {//这里拦截mybatis-plus底层方法Pointcut((execution(* com.baomidou.mybatisplus.extension.service.IService.update*(..)) ||execution(* com.baomidou.mybatisplus.extension.service.IService.save*(..)) ||execution(* com.baomidou.mybatisplus.core.mapper.BaseMapper.update*(..)) ||execution(* com.baomidou.mybatisplus.core.mapper.BaseMapper.insert(..))) )public void todo(){};//策略AResourceprivate ATodoStrategy aTodoStrategy;//策略BResourceprivate BTodoStrategy bTodoStrategy;//线程池Resourceprivate TaskExecutor taskExecutor;Around(todo())public Object around(ProceedingJoinPoint point) throws Throwable {Object[] args point.getArgs();Object obj point.proceed();Object arg args[0];ListObject paramList null;if(Objects.isNull(arg)){return obj;}if(arg instanceof ArrayList){paramList (List)arg;}else {paramList Arrays.asList(args);}if (CollectionUtil.isEmpty(paramList)){return obj;}/** 这里用到捕获异常很关键不能因待办出现异常而影响主流程* 用线程池避免待办处理过慢影响主流程性能*/taskExecutor.execute(()-{try{Thread.sleep(1000L);dealTodoStrategy(paramList);}catch (Exception e){}});return obj;}/** TodoContext 是策略模式的上下文* aTodoStrategy、bTodoStrategy 是具体的策略*/private void dealTodoStrategy(ListObject paramList) {TodoContext context null;Object param paramList.get(0);if(param instanceof A){context new TodoContext(aTodoStrategy);}else if(param instanceof B) {context new TodoContext(bTodoStrategy);}if(context ! null){context.executeStrategy(paramList);}}}特别说一句这里其实最初的设计并不是用切面而是用mybatis拦截器 Interceptor 去实现获取到insert或update后的实体的但是拦截mybatis-plus的saveBatch方法能拿到List实体但是没有id。因此不能很好处理待办业务。原因大家可以去看下CSDN。 3.2.2 定义策略模式 策略接口TodoStrategy  public interface TodoStrategy {void dealTodo(List list); }Context类 public class TodoContext {private TodoStrategy strategy;public TodoContext(TodoStrategy strategy){this.strategy strategy;}public void executeStrategy(List list){strategy.dealTodo(list);} } 策略实现类 ATodoStrategy  Service public class ATodoStrategy implements TodoStrategy {Overridepublic void dealTodo(List list) {if(CollectionUtil.isEmpty(list)){return;}TodoForm todoForm null;ListEnquiry enquiryList (List)list;ListLong enquiryIdList enquiryList.stream().map(Enquiry::getId).collect(Collectors.toList());//根据id找到数据库实体类enquiryList enquiryService.findList(new EnquiryQuery().setIdList(enquiryIdList));//遍历实体类然后根据不同的实体状态去实现待办规则新增或消除功能for(Enquiry enquiry : enquiryList){Long id enquiry.getId();//新增去报价待办if(EnquiryStatusEnum.WAIT_QUOTE.getKey().equals(enquiry.getStatus())){}//消除去报价待办if(EnquiryStatusEnum.HAD_QUOTE.getKey().equals(enquiry.getStatus())){}}} }4.总结 待办实现方式两种①埋点 ②切面Aspect 策略模式 个人比较推荐② 因为这个代码设计好处如下 1.不需要“过分”埋点。埋点的话容易漏埋点。譬如新增代码业务代码在插入操作后埋点了但是突然另一个业务也有插入操作但是忘记埋点那么待办就容易遗漏。 2.代码集中维护模块分层清晰。也就是待办新增或消除逻辑统一写在策略模式里面了只需要去策略模式里面维护即可。这样也能减少在业务代码过多埋点造成代码臃肿。
http://www.w-s-a.com/news/91407/

相关文章:

  • 东莞营销型网站建设全自动建站系统
  • 网络在线培训网站建设方案虚拟主机配置WordPress
  • 建设工程信息查询哪个网站好台州做优化
  • wordpress页面回收站位置台州做网站
  • 邢台市行政区划图seo咨询师招聘
  • 外贸网站建设案例网站建设优化开发公司排名
  • 恩施网站优化郑州有没有厉害的seo
  • 电子商务网站建设与管理期末考试题铜山区建设局网站
  • 怎么做非法彩票网站大兴安岭网站建设公司
  • 网站备案授权书模板海外如何淘宝网站建设
  • 网站开发提供源代码dedecms做网站教程
  • 怎么做国际网站首页erp系统一套大概多少钱
  • 做代理网站用什么软件建设网站的企业多少钱
  • 微企免费做网站360收录提交
  • 网站导航页怎么做wordpress数据库批量替换
  • wordpress站点更换域名自己做wordpress 模版
  • 怎么做虚拟的网站东莞常平邮编是多少
  • 电子商务网站和普通网站的区别正规网站建设多少费用
  • 郴州免费招聘网站前端好还是后端好
  • 织梦网站怎样做子域名20个中国风网站设计欣赏
  • wordpress网站搬简约创意logo图片大全
  • 叙述网站制作的流程石家庄58同城最新招聘信息
  • 南昌微信网站建设东莞网站优化软件
  • 爱站数据官网纯静态网站挂马
  • 网站建设公司未来方向3d设计网站
  • 建设部网站 干部学院 一级注册建筑师培训 2014年做网站开发的提成多少钱
  • 网上请人做软件的网站铝合金型材外发加工网
  • 手机网站建设万网山东省作风建设网站
  • 网站策划专员招聘50万县城做地方网站
  • 网站开发公司+重庆wordpress自定义搜索界面