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

网站建设技术咨询协议wordpress 标签前缀

网站建设技术咨询协议,wordpress 标签前缀,关于网站建设的文章,wordpress是建站最快的改造的是DictAspect类#xff1a; 原来使用的 parseDictText(Object result)方法#xff0c;针对返回对象为Result 的IPage的分页列表数据进行动态字典注入#xff0c;当单个对象查询#xff0c;列表查询#xff0c;或者多个数据放到Map中时#xff0c;就不会自动转化 原来使用的 parseDictText(Object result)方法针对返回对象为Result 的IPage的分页列表数据进行动态字典注入当单个对象查询列表查询或者多个数据放到Map中时就不会自动转化在web端进行展示的时候就需要连表查询或者手动查询字典值不方便使用。 于是我改造了parseDictText(方法不仅针对返回对象为Result时的分页列表还支持列表、对象以及Map类型的结果。实在Result对象执行setResult()方式时进行自动注入转换。 原方法 代码 private Object parseDictText(Object result) {//if (result instanceof Result) {if (true) {if (((Result) result).getResult() instanceof IPage) {ListJSONObject items new ArrayList();//step.1 筛选出加了 Dict 注解的字段列表ListField dictFieldList new ArrayList();// 字典数据列表 key 字典codevalue数据列表MapString, ListString dataListMap new HashMap(5);//取出结果集ListObject records((IPage) ((Result) result).getResult()).getRecords();//update-begin--Author:zyf -- Date:20220606 ----for【VUEN-1230】 判断是否含有字典注解,没有注解返回-----Boolean hasDict checkHasDict(records);if(!hasDict){return result;}log.debug( __ 进入字典翻译切面 DictAspect —— );//update-end--Author:zyf -- Date:20220606 ----for【VUEN-1230】 判断是否含有字典注解,没有注解返回-----for (Object record : records) {String json{};try {//update-begin--Author:zyf -- Date:20220531 ----for【issues/#3629】 DictAspect Jackson序列化报错-----//解决JsonFormat注解解析不了的问题详见SysAnnouncement类的JsonFormatjson objectMapper.writeValueAsString(record);//update-end--Author:zyf -- Date:20220531 ----for【issues/#3629】 DictAspect Jackson序列化报错-----} catch (JsonProcessingException e) {log.error(json解析失败e.getMessage(),e);}//update-begin--Author:scott -- Date:20211223 ----for【issues/3303】restcontroller返回json数据后key顺序错乱 -----JSONObject item JSONObject.parseObject(json, Feature.OrderedField);//update-end--Author:scott -- Date:20211223 ----for【issues/3303】restcontroller返回json数据后key顺序错乱 -----//update-begin--Author:scott -- Date:20190603 ----for解决继承实体字段无法翻译问题------//for (Field field : record.getClass().getDeclaredFields()) {// 遍历所有字段把字典Code取出来放到 map 里for (Field field : oConvertUtils.getAllFields(record)) {String value item.getString(field.getName());if (oConvertUtils.isEmpty(value)) {continue;}//update-end--Author:scott -- Date:20190603 ----for解决继承实体字段无法翻译问题------if (field.getAnnotation(Dict.class) ! null) {if (!dictFieldList.contains(field)) {dictFieldList.add(field);}String code field.getAnnotation(Dict.class).dicCode();String text field.getAnnotation(Dict.class).dicText();String table field.getAnnotation(Dict.class).dictTable();//update-begin---author:chenrui ---date:20231221 for[issues/#5643]解决分布式下表字典跨库无法查询问题------------String dataSource field.getAnnotation(Dict.class).ds();//update-end---author:chenrui ---date:20231221 for[issues/#5643]解决分布式下表字典跨库无法查询问题------------ListString dataList;String dictCode code;if (!StringUtils.isEmpty(table)) {//update-begin---author:chenrui ---date:20231221 for[issues/#5643]解决分布式下表字典跨库无法查询问题------------dictCode String.format(%s,%s,%s,%s, table, text, code, dataSource);//update-end---author:chenrui ---date:20231221 for[issues/#5643]解决分布式下表字典跨库无法查询问题------------}dataList dataListMap.computeIfAbsent(dictCode, k - new ArrayList());this.listAddAllDeduplicate(dataList, Arrays.asList(value.split(,)));}//date类型默认转换string格式化日期//update-begin--Author:zyf -- Date:20220531 ----for【issues/#3629】 DictAspect Jackson序列化报错-----//if (JAVA_UTIL_DATE.equals(field.getType().getName())field.getAnnotation(JsonFormat.class)nullitem.get(field.getName())!null){//SimpleDateFormat aDatenew SimpleDateFormat(yyyy-MM-dd HH:mm:ss);// item.put(field.getName(), aDate.format(new Date((Long) item.get(field.getName()))));//}//update-end--Author:zyf -- Date:20220531 ----for【issues/#3629】 DictAspect Jackson序列化报错-----}items.add(item);}//step.2 调用翻译方法一次性翻译MapString, ListDictModel translText this.translateAllDict(dataListMap);//step.3 将翻译结果填充到返回结果里for (JSONObject record : items) {for (Field field : dictFieldList) {String code field.getAnnotation(Dict.class).dicCode();String text field.getAnnotation(Dict.class).dicText();String table field.getAnnotation(Dict.class).dictTable();//update-begin---author:chenrui ---date:20231221 for[issues/#5643]解决分布式下表字典跨库无法查询问题------------// 自定义的字典表数据源String dataSource field.getAnnotation(Dict.class).ds();//update-end---author:chenrui ---date:20231221 for[issues/#5643]解决分布式下表字典跨库无法查询问题------------String fieldDictCode code;if (!StringUtils.isEmpty(table)) {//update-begin---author:chenrui ---date:20231221 for[issues/#5643]解决分布式下表字典跨库无法查询问题------------fieldDictCode String.format(%s,%s,%s,%s, table, text, code, dataSource);//update-end---author:chenrui ---date:20231221 for[issues/#5643]解决分布式下表字典跨库无法查询问题------------}String value record.getString(field.getName());if (oConvertUtils.isNotEmpty(value)) {ListDictModel dictModels translText.get(fieldDictCode);if(dictModelsnull || dictModels.size()0){continue;}String textValue this.translDictText(dictModels, value);log.debug( 字典Val : textValue);log.debug( __翻译字典字段__ field.getName() CommonConstant.DICT_TEXT_SUFFIX textValue);// TODO-sun 测试输出待删log.debug( ---- dictCode: fieldDictCode);log.debug( ---- value: value);log.debug( ----- text: textValue);log.debug( ---- dictModels: JSON.toJSONString(dictModels));record.put(field.getName() CommonConstant.DICT_TEXT_SUFFIX, textValue);}}}((IPage) ((Result) result).getResult()).setRecords(items);}}return result;}改造 判断传递参数的类型是IPage、List、Map、Object如果是IPage、List、Map则把对象中的数据拿出来再挨个转换改造为新的结果数据返回。 private Object parseDictText(Object result) {if (result instanceof Result) {ListObject list new LinkedList();if (((Result) result).getResult() instanceof IPage) {//分页list ((IPage) ((Result) result).getResult()).getRecords();} else if (((Result) result).getResult() instanceof List) {//List集合list (ListObject) ((Result) result).getResult();} else if (((Result) result).getResult() instanceof Map) {//mapMapObject, Object map (MapObject, Object) ((Result) result).getResult();MapObject, Object itemMap new HashMap();for (Map.Entry entry : map.entrySet()) {//System.out.println(entry.getKey() entry.getValue());Map mapRe new HashMap();if (entry.getValue() instanceof List) {//列表ListObject listItems new ArrayList();for (Object record : (List) entry.getValue()) {if (checkIsJsonStr(record)) {//字典翻译record this.dictEscape(record);}listItems.add(record);}itemMap.put(entry.getKey(), listItems);} else if (entry.getValue() instanceof Object) {//单对象Object record entry.getValue();//判断能否转换成JSON因为有些结果集返回的是String类型导致翻译异常因此判断是否可以转换jsonif (checkIsJsonStr(record)) {//字典翻译record this.dictEscape(record);}itemMap.put(entry.getKey(), record);}}((Result) result).setResult(itemMap);} else {//单对象Object record ((Result) result).getResult();//判断能否转换成JSON因为有些结果集返回的是String类型导致翻译异常因此判断是否可以转换jsonif (checkIsJsonStr(record)) {//字典翻译record this.dictEscape(record);}((Result) result).setResult(record);}//列表解析if (list ! null list.size() 0) {ListObject items new ArrayList();for (Object record : list) {if (checkIsJsonStr(record)) {//字典翻译record this.dictEscape(record);}items.add(record);}if (((Result) result).getResult() instanceof IPage) {((IPage) ((Result) result).getResult()).setRecords(items);} else if (((Result) result).getResult() instanceof List) {((Result) result).setResult(items);}}}return result;}字典翻译方法 /*** 字典翻译** param record* return*/private JSONObject dictEscape(Object record) {ObjectMapper mapper new ObjectMapper();String json {};JSONObject item null;try {//解决JsonFormat注解解析不了的问题详见SysAnnouncement类的JsonFormatjson mapper.writeValueAsString(record);//对象序列化为JSON字符串} catch (JsonProcessingException e) {log.error(json解析失败 e.getMessage(), e);}try {item JSONObject.parseObject(json);//update-begin--Author:scott -- Date:20190603 ----for解决继承实体字段无法翻译问题------for (Field field : oConvertUtils.getAllFields(record)) {//update-end--Author:scott -- Date:20190603 ----for解决继承实体字段无法翻译问题------if (field.getAnnotation(Dict.class) ! null) {String code field.getAnnotation(Dict.class).dicCode();String text field.getAnnotation(Dict.class).dicText();String table field.getAnnotation(Dict.class).dictTable();String key String.valueOf(item.get(field.getName()));//翻译字典值对应的txtString textValue key;//非中文时翻译if (!checkCountName(key)) {textValue translateDictValue(code, text, table, key);}log.debug( 字典Val : textValue);log.debug( __翻译字典字段__ field.getName() CommonConstant.DICT_TEXT_SUFFIX textValue);item.put(field.getName() CommonConstant.DICT_TEXT_SUFFIX, textValue);}//date类型默认转换string格式化日期if (field.getType().getName().equals(java.util.Date) field.getAnnotation(JsonFormat.class) null item.get(field.getName()) ! null) {SimpleDateFormat aDate new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);item.put(field.getName(), aDate.format(new Date((Long) item.get(field.getName()))));}}} catch (Exception e) {log.info(字典翻译异常 e.getMessage(), e);}return item;}检测是否是中文 /*** 检测是否是中文** param countName* return*/public static boolean checkCountName(String countName) {Pattern p Pattern.compile([\u4e00-\u9fa5]);Matcher m p.matcher(countName);if (m.find()) {return true;}return false;}检测是否可转换为JSON字符串 /*** 检测是否可转换为JSON字符串** param record* return*/public static boolean checkIsJsonStr(Object record) {boolean jsonFlag false;try {String json new ObjectMapper().writeValueAsString(record);if (json.startsWith({)) {jsonFlag true;}} catch (JsonProcessingException e) {e.printStackTrace();}return jsonFlag;}
http://www.hkea.cn/news/14475367/

相关文章:

  • 湛江专业建站免费咨询做招聘的网站有哪些内容
  • 天津建设网站的公司简介云企网站
  • 民营建筑网站专门做眼镜的国外网站
  • 靖江做网站的上海制作企业网站
  • 高端网站设计报价建筑设计网址大全
  • 企业网站多少钱一个蛋白质结构预测工具网站开发
  • 潍坊公司网站模板建站linux做网站
  • 营销型网站制作建设行业网站建设申请报告
  • 招聘网站开发需求景区网站做电子商务的特点
  • 湖州住房和城乡建设局网站曰照网站小程序建设
  • 建站模板工程造价北京网站域名备案
  • 建设网站物业经理上岗证陈俊华拆分网站开发
  • 做网站的请示下城区住房和城市建设局网站
  • 杭州网站建设 博客中山精品网站建设价位
  • 超市网站建设方案建设监督网站
  • 巩义网站公司网站右侧浮动
  • 都哪些网站可以做gif小说投稿赚钱的网站
  • 医院设计网站建设网站模板破解版
  • 一元夺宝网站建设费用wordpress 虚拟主机 推荐
  • 2023年没有封闭的网站有哪些东坑镇网站仿做
  • mysql 学习网站动画设计属于什么专业类别
  • 搜索引擎不友好的网站特征怎样做网站平台
  • 做外贸是不是要有网站企业网站风格
  • 卫浴建材网站建设大学的一级或二级域名
  • 设计灵感网站整理建设网站报价单
  • 南山网站设计公司ordown wordpress
  • 计算机网站建设及管理麻将软件开发平台
  • 公司企业网站搭建做棋牌游戏网站赚钱吗
  • 网页设计欣赏网站宁德市城乡建设局网站
  • 网站开发人员名片wordpress上传本地视频