多语言-新唯一id策略

This commit is contained in:
2023-06-07 16:27:28 +08:00
committed by khalil
parent f1013d8976
commit d0ca3ebfbb
63 changed files with 402 additions and 312 deletions

View File

@@ -1,7 +1,6 @@
package com.accompany.admin.vo;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
@Data
@@ -17,7 +16,7 @@ public class GiftCompoundRewardAdminVo {
private Integer serviceNotice;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
private Long goldPrice;

View File

@@ -1,7 +1,6 @@
package com.accompany.admin.vo.dress;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nAdmin;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -20,7 +19,7 @@ public class NameplateAdminVo {
private Long id;
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "Nameplate")
private String name;
private String iconPic;

View File

@@ -1,8 +1,7 @@
package com.accompany.admin.vo;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nAdmin;
import java.util.Date;
@@ -19,7 +18,7 @@ public class WorldAdminVo {
/**
* 名称 必填限16个字世界标题不能重复
*/
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "World")
private String name;
/**
@@ -31,12 +30,12 @@ public class WorldAdminVo {
/**
* 描述
*/
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "World", fieldName = "name")
private String description;
/**
* 公告
*/
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "World", fieldName = "name")
private String notice;
/**

View File

@@ -1,8 +1,7 @@
package com.accompany.admin.vo.dress;
import com.accompany.business.model.dress.UserChatBubbleRecord;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nAdmin;
import lombok.Data;
/**
@@ -14,7 +13,7 @@ import lombok.Data;
*/
@Data
public class UserChatBubbleRecordAdminVO extends UserChatBubbleRecord {
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "ChatBubble")
private String bubbleName;
private String nick;
private Long erbanNo;

View File

@@ -11,6 +11,7 @@
package com.accompany.admin.vo.dress;
import com.accompany.business.model.dress.UserInfoCardRecord;
import com.accompany.core.annotation.I18n;
import lombok.Data;
/**
@@ -22,6 +23,7 @@ import lombok.Data;
*/
@Data
public class UserInfoCardRecordAdminVO extends UserInfoCardRecord {
@I18n(className = "InfoCard")
private String cardName;
private String nick;
private Long erbanNo;

View File

@@ -1,7 +1,6 @@
package com.accompany.admin.vo.luckybag;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nAdmin;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -19,7 +18,7 @@ public class LuckyBagAdminVo {
@ApiModelProperty("福袋礼物id")
private Integer giftId;
@ApiModelProperty("福袋礼物名称")
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "Gift")
private String giftName;
@ApiModelProperty("福袋礼物价格")
private Long goldPrice;

View File

@@ -1,9 +1,8 @@
package com.accompany.admin.service.car;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.accompany.admin.vo.dress.CarGoodsAdminVo;
import com.accompany.business.service.car.CarGoodsService;
import com.accompany.common.redis.RedisKey;
import com.accompany.core.model.Users;
import com.alibaba.fastjson.JSONObject;
import com.accompany.admin.service.base.BaseService;
@@ -25,7 +24,6 @@ import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.DateTimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -44,8 +42,6 @@ public class CarAdminService extends BaseService {
private CarRecordMapper carRecordMapper;
@Autowired
private CarRecordMapperMgr carRecordMapperMgr;
@Autowired
private MessageSource messageSource;
public Map<String, Object> page(Integer page, Integer pageSize, Byte enable, Boolean goldSale, Byte carGoodsType) {
Map<String, Object> map = new HashMap<>();
@@ -99,7 +95,7 @@ public class CarAdminService extends BaseService {
public void addCarGoods(CarGoods carGoods) {
carGoods.setCreateTime(new Date());
carGoodsService.addCarGoods(carGoods);
JsonMessageSourceUtil.deserialization(carGoods, String.valueOf(carGoods.getId()), Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(carGoods, String.valueOf(carGoods.getId()), Collections.singletonList("name"));
carGoodsService.updateCarGoods(carGoods);
}
@@ -109,16 +105,12 @@ public class CarAdminService extends BaseService {
* @param carGoods
*/
public void updateCarGoods(CarGoods carGoods) {
JsonMessageSourceUtil.deserialization(carGoods, String.valueOf(carGoods.getId()), Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(carGoods, String.valueOf(carGoods.getId()), Collections.singletonList("name"));
carGoodsService.updateCarGoods(carGoods);
}
public List<CarGoods> getTotalCarGoodsList(){
List<CarGoods> list = carGoodsService.getTotalCarGoodsList();
for (CarGoods car: list) {
car.setName(messageSource.getMessage(car.getName(), null, car.getName(), Locale.CHINESE));
}
return list;
return carGoodsService.getTotalCarGoodsList();
}
public UserCarportAdminVo getUserCarPort(Long uid, Integer page, Integer pageSize) {

View File

@@ -1,7 +1,7 @@
package com.accompany.admin.service.dress;
import com.accompany.admin.base.Pagination;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.accompany.admin.vo.dress.ChatBubbleAdminVo;
import com.accompany.admin.vo.dress.UserChatBubbleRecordAdminVO;
import com.accompany.business.model.dress.ChatBubble;
@@ -29,7 +29,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -57,8 +56,6 @@ public class ChatBubbleAdminService {
private UserChatBubbleRecordService userChatBubbleRecordService;
@Autowired
private JedisService jedisService;
@Autowired
private MessageSource messageSource;
public final static Integer ONE_TIME_SEND_BUBBLE_MAX_NUM = 100;
@@ -113,7 +110,7 @@ public class ChatBubbleAdminService {
chatBubble.setUpdateTime(new Date());
chatBubbleService.saveOrUpdate(chatBubble);
// 国际化
JsonMessageSourceUtil.deserialization(chatBubble, String.valueOf(chatBubble.getId()), Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(chatBubble, String.valueOf(chatBubble.getId()), Collections.singletonList("name"));
chatBubbleService.saveOrUpdate(chatBubble);
jedisService.hdel(RedisKey.chat_bubble_info.getKey(), chatBubble.getId().toString());
}
@@ -194,7 +191,7 @@ public class ChatBubbleAdminService {
}
ChatBubble chatBubbleById = chatBubbleService.getChatBubbleById(record.getBubbleId());
if (chatBubbleById != null) {
vo.setBubbleName(messageSource.getMessage(chatBubbleById.getName(), null, chatBubbleById.getName(), Locale.CHINESE));
vo.setBubbleName(chatBubbleById.getName());
}
resList.add(vo);
}

View File

@@ -1,17 +1,7 @@
/*
* 文 件 名: InfoCardAdminService
* 版 权:
* 描 述: <描述>
* 创建人: H1
* 创建时间: 2022/1/7
* 修改人:
* 修改内容:
* 修改时间:
*/
package com.accompany.admin.service.dress;
import com.accompany.admin.base.Pagination;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.accompany.admin.vo.dress.UserInfoCardRecordAdminVO;
import com.accompany.admin.vo.dress.InfoCardAdminVo;
import com.accompany.business.model.dress.InfoCard;
@@ -39,7 +29,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -67,8 +56,6 @@ public class InfoCardAdminService {
private UserInfoCardRecordService userInfoCardRecordService;
@Autowired
private JedisService jedisService;
@Autowired
private MessageSource messageSource;
/**
@@ -123,7 +110,7 @@ public class InfoCardAdminService {
}
infoCard.setUpdateTime(new Date());
infoCardService.saveOrUpdate(infoCard);
JsonMessageSourceUtil.deserialization(infoCard, String.valueOf(infoCard.getId()), Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(infoCard, String.valueOf(infoCard.getId()), Collections.singletonList("name"));
infoCardService.saveOrUpdate(infoCard);
}
@@ -203,9 +190,7 @@ public class InfoCardAdminService {
vo.setNick(user.getNick());
}
InfoCard card = infoCardService.getInfoCardById(record.getCardId());
if (card != null) {
vo.setCardName(messageSource.getMessage(card.getName(), null, card.getName(), Locale.CHINESE));
}
vo.setCardName(card.getName());
resList.add(vo);
}
);

View File

@@ -6,7 +6,7 @@ import com.accompany.admin.model.AdminUser;
import com.accompany.admin.params.RoomFreeGiftConfigParams;
import com.accompany.admin.service.system.AdminUserService;
import com.accompany.admin.service.system.SysConfAdminService;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.accompany.admin.vo.gift.GiftAdminVo;
import com.accompany.business.constant.PrizeTypeEnum;
import com.accompany.business.dto.room.RoomFreeGiftConfigDto;

View File

@@ -1,7 +1,7 @@
package com.accompany.admin.service.headwear;
import com.accompany.admin.service.base.BaseService;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.accompany.admin.vo.dress.HeadwearAdminVo;
import com.accompany.business.model.Headwear;
import com.accompany.business.model.HeadwearExample;
@@ -12,7 +12,6 @@ import com.google.common.collect.Maps;
import com.accompany.common.redis.RedisKey;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -32,9 +31,6 @@ public class HeadwearAdminService extends BaseService {
@Autowired
private JedisService jedisService;
@Autowired
private MessageSource messageSource;
public HeadwearAdminVo getHeadwear(Integer headwearId) {
HeadwearAdminVo vo = null;
@@ -101,7 +97,7 @@ public class HeadwearAdminService extends BaseService {
}
// 国际化
JsonMessageSourceUtil.deserialization(headwear, String.valueOf(headwear.getHeadwearId()), Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(headwear, String.valueOf(headwear.getHeadwearId()), Collections.singletonList("name"));
this.headwearMapper.updateByPrimaryKeySelective(headwear);
this.jedisService.hdel(RedisKey.headwear.getKey(), headwear.getHeadwearId().toString());
@@ -113,9 +109,6 @@ public class HeadwearAdminService extends BaseService {
if(CollectionUtils.isEmpty(list)){
return Lists.newArrayList();
}
for (Headwear headwear: list) {
headwear.setName(messageSource.getMessage(headwear.getName(), null, headwear.getName(), Locale.CHINESE));
}
return list;
}

View File

@@ -3,7 +3,6 @@ package com.accompany.admin.service.luckybag;
import com.accompany.admin.base.Pagination;
import com.accompany.admin.mapper.LuckyBagAdminMapper;
import com.accompany.admin.service.gift.GiftAdminService;
import com.accompany.admin.vo.gift.GiftAdminVo;
import com.accompany.admin.vo.luckybag.LuckyBagAdminVo;
import com.accompany.business.constant.LuckyBagGiftPoolItemTypeEnum;
import com.accompany.business.model.Gift;
@@ -23,7 +22,6 @@ import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -49,15 +47,9 @@ public class LuckyBagAdminService extends ServiceImpl<LuckyBagAdminMapper, Gift>
private LuckyBagPoolClockingAdminService luckyBagPoolClockingService;
@Autowired
private LuckyBagPoolService luckyBagPoolService;
@Autowired
private MessageSource messageSource;
public List<Gift> listLuckyBagGift() {
List<Gift> luckyBagList = giftAdminService.listLuckyBagGift();
for (Gift gift: luckyBagList) {
gift.setGiftName(messageSource.getMessage(gift.getGiftName(), null, gift.getGiftName(), Locale.CHINESE));
}
return luckyBagList;
return giftAdminService.listLuckyBagGift();
}
public Pagination getLuckyBagPage(PageReq pageReq) {

View File

@@ -6,7 +6,7 @@ import com.accompany.admin.dto.NameplateDto;
import com.accompany.admin.model.AdminUser;
import com.accompany.admin.service.base.BaseService;
import com.accompany.admin.service.system.AdminUserService;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.accompany.admin.vo.dress.NameplateAdminVo;
import com.accompany.business.constant.nameplate.NameplateStyleTypeEnum;
import com.accompany.business.constant.nameplate.NameplateTypeEnum;
@@ -192,14 +192,14 @@ public class NameplateAdminService extends BaseService {
if (NameplateTypeEnum.CUSTOMIZE.getValue().toString().equals(nameplateDB.getNameplateType()) && StringUtils.isNotBlank(nameplate.getName())) {
nameplate.setName(nameplate.getFixedWord());
} else {
JsonMessageSourceUtil.deserialization(nameplate, String.valueOf(nameplate.getId()),Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(nameplate, String.valueOf(nameplate.getId()),Collections.singletonList("name"));
}
nameplateMapper.updateById(nameplate);
} else {
// 新加铭牌
nameplate.setCreateTime(new Date());
nameplateMapper.insert(nameplate);
JsonMessageSourceUtil.deserialization(nameplate, String.valueOf(nameplate.getId()),Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(nameplate, String.valueOf(nameplate.getId()),Collections.singletonList("name"));
nameplateMapper.updateById(nameplate);
}
return true;

View File

@@ -1,6 +1,6 @@
package com.accompany.admin.service.room;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.accompany.admin.vo.roomtab.RoomTabAdminVo;
import com.accompany.business.model.roomtab.RoomTab;
import com.accompany.business.mybatismapper.RoomTabMapper;
@@ -68,7 +68,7 @@ public class RoomTabAdminService extends ServiceImpl<RoomTabMapper,RoomTab> {
roomTab.setCreateTime(new Date());
roomTabMapper.insert(roomTab);
// 国际化
JsonMessageSourceUtil.deserialization(roomTab, String.valueOf(roomTab.getId()), Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(roomTab, String.valueOf(roomTab.getId()), Collections.singletonList("name"));
roomTabMapper.updateById(roomTab);
return true;
}
@@ -81,7 +81,7 @@ public class RoomTabAdminService extends ServiceImpl<RoomTabMapper,RoomTab> {
roomTab.setName(name);
roomTab.setStatus(status);
roomTab.setRoomTabShow(roomTabShow);
JsonMessageSourceUtil.deserialization(roomTab, String.valueOf(roomTab.getId()), Collections.singletonList("name"));
I18NMessageSourceUtil.deserialization(roomTab, String.valueOf(roomTab.getId()), Collections.singletonList("name"));
roomTabMapper.updateById(roomTab);
// 国际化
return true;

View File

@@ -1,6 +1,6 @@
package com.accompany.admin.service.room;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.accompany.admin.vo.RoomTagAdminVo;
import com.accompany.core.exception.ServiceException;
import com.accompany.business.model.RoomTag;
@@ -87,10 +87,10 @@ public class RoomTagService extends BaseService {
roomTagMapper.updateByPrimaryKeySelective(updateTag);
}
// 国际化
JsonMessageSourceUtil.deserialization(roomTag, String.valueOf(roomTag.getId()), Lists.newArrayList("name", "pict"));
I18NMessageSourceUtil.deserialization(roomTag, String.valueOf(roomTag.getId()), Lists.newArrayList("name", "pict"));
return result;
} else {
JsonMessageSourceUtil.deserialization(roomTag, String.valueOf(roomTag.getId()), Lists.newArrayList("name", "pict"));
I18NMessageSourceUtil.deserialization(roomTag, String.valueOf(roomTag.getId()), Lists.newArrayList("name", "pict"));
return updateRoomTag(roomTag);
}
}

View File

@@ -1,6 +1,6 @@
package com.accompany.admin.service.world;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.util.I18NMessageSourceUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.accompany.admin.dto.WorldSearchDto;
import com.accompany.admin.service.base.BaseService;
@@ -178,7 +178,7 @@ public class WorldAdminService extends BaseService {
messageSourceList.add("name");
messageSourceList.add("description");
messageSourceList.add("notice");
JsonMessageSourceUtil.deserialization(record, String.valueOf(record.getId()), messageSourceList);
I18NMessageSourceUtil.deserialization(record, String.valueOf(record.getId()), messageSourceList);
result = iWorldService.updateWorldById(record);
}
@@ -262,7 +262,7 @@ public class WorldAdminService extends BaseService {
messageSourceList.add("name");
messageSourceList.add("description");
messageSourceList.add("notice");
JsonMessageSourceUtil.deserialization(record, String.valueOf(record.getId()), messageSourceList);
I18NMessageSourceUtil.deserialization(record, String.valueOf(record.getId()), messageSourceList);
result = iWorldService.updateWorldById(record);

View File

@@ -1,16 +1,14 @@
package com.accompany.admin.util;
import com.accompany.common.utils.StringUtils;
import com.accompany.common.status.BusiStatus;
import com.accompany.core.base.SpringContextHolder;
import com.accompany.core.service.MessageI18nService;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.config.WebLocaleConfig;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.service.MessageI18nNacosService;
import com.alibaba.fastjson.JSONObject;;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;
import java.util.List;
@@ -28,7 +26,7 @@ import java.util.concurrent.TimeUnit;
* @Version 1.0
*/
@Slf4j
public class JsonMessageSourceUtil {
public class I18NMessageSourceUtil {
/**
* 将需要国际化的数据进行反序列化并进行修改
@@ -36,18 +34,23 @@ public class JsonMessageSourceUtil {
*/
@SneakyThrows
public static void deserialization(Object obj, String id, List<String> fieldNames){
MessageI18nService messageI18nService = SpringContextHolder.getBean(MessageI18nService.class);
MessageI18nNacosService messageI18nNacosService = SpringContextHolder.getBean(MessageI18nNacosService.class);
ThreadPoolExecutor bizExecutor = SpringContextHolder.getBean(ThreadPoolExecutor.class);
Class<?> clazz = obj.getClass();
for (Field field : clazz.getDeclaredFields()) {
String fieldName = field.getName();
if (fieldNames.contains(fieldName)){
String i18nKey = clazz.getName() + "." + fieldName + "." + id;
field.setAccessible(true);
String value = (String) field.get(obj);
String value = field.get(obj).toString();
JSONObject jsonObject = JSONObject.parseObject(value);
String zhValue = jsonObject.getString(WebLocaleConfig.Chinese.getLanguage());
if (StringUtils.isEmpty(zhValue)){
throw new ServiceException(BusiStatus.PARAMERROR);
}
String i18nKey = clazz.getSimpleName() + "." + zhValue;
Set<String> keySet = jsonObject.keySet();
CountDownLatch cdl = new CountDownLatch(keySet.size());
@@ -58,7 +61,9 @@ public class JsonMessageSourceUtil {
try {
// 需要保存的值
String i18nValue = jsonObject.getString(key);
messageI18nService.saveOrUpdate(new Locale(key), i18nKey, i18nValue);
if (StringUtils.isNoneBlank(i18nValue)){
messageI18nNacosService.saveOrUpdate(new Locale(key), i18nKey, i18nValue);
}
} catch (Exception e){
log.error("{}",e.getMessage(), e);
} finally {
@@ -69,7 +74,7 @@ public class JsonMessageSourceUtil {
cdl.await(5, TimeUnit.SECONDS);
field.set(obj, i18nKey);
field.set(obj, zhValue);
}
}
}

View File

@@ -1,17 +1,16 @@
package com.accompany.admin.vo;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nAdmin;
import java.util.Date;
public class RoomTagAdminVo {
private Integer id;
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "RoomTag")
private String name;
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "RoomTag", fieldName = "name")
private String pict;
private Integer seq;

View File

@@ -1,14 +1,13 @@
package com.accompany.admin.vo.roomtab;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nAdmin;
import lombok.Data;
@Data
public class RoomTabAdminVo {
private Long id; // 主键ID
@JsonSerialize(using = MessageSourceAdminSerialize.class)
@I18nAdmin(className = "RoomTab")
private String name; // 名称
private Integer status; // 状态
private Integer seq; // 排序

View File

@@ -3,7 +3,6 @@ package com.accompany.admin.controller.gift;
import cn.hutool.core.util.StrUtil;
import com.accompany.admin.params.RoomFreeGiftConfigParams;
import com.accompany.admin.service.push.EnterpriseWeChatPushAdminService;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.vo.gift.GiftAdminVo;
import com.accompany.business.dto.room.RoomFreeGiftConfigDto;
import com.accompany.business.service.gift.GiftService;

View File

@@ -1,12 +1,10 @@
package com.accompany.admin.controller.headwear;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.vo.dress.HeadwearAdminVo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.accompany.admin.controller.BaseController;
import com.accompany.admin.service.headwear.HeadwearAdminService;
import com.accompany.core.exception.ServiceException;
import com.accompany.business.model.Headwear;
import com.accompany.business.model.HeadwearStatistics;
import com.accompany.business.service.headwear.HeadwearService;

View File

@@ -5,16 +5,12 @@ import com.accompany.admin.controller.BaseController;
import com.accompany.admin.service.gift.GiftAdminService;
import com.accompany.admin.service.luckybag.LuckyBagAdminService;
import com.accompany.admin.service.luckybag.LuckyBagPoolAdminService;
import com.accompany.admin.util.JsonMessageSourceUtil;
import com.accompany.admin.vo.gift.GiftAdminVo;
import com.accompany.business.model.Gift;
import com.accompany.common.annotation.Authorization;
import com.accompany.common.model.PageReq;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.result.BusiResult;
import com.accompany.common.status.BusiStatus;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

View File

@@ -1,9 +1,7 @@
package com.accompany.core.vo.car;
import com.accompany.core.annotation.I18nPartition;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceSerialize;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
@@ -11,7 +9,7 @@ public class CarportVo implements Comparable<CarportVo> {
private Long uid;
private Integer id;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className="CarGoods")
private String name;
@ReplaceAppDomain
private String pic; // 预览图

View File

@@ -1,9 +1,8 @@
package com.accompany.core.vo.headwear;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.accompany.core.annotation.I18nPartition;
import com.alibaba.fastjson.JSON;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.math.BigDecimal;
import java.util.Date;
@@ -19,7 +18,7 @@ public class UserHeadwearVo implements Comparable<UserHeadwearVo> {
private Integer headwearId;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Headwear")
private String headwearName;
private Boolean used;

View File

@@ -1,9 +1,7 @@
package com.accompany.core.vo.user;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceSerialize;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
import java.io.Serializable;
@@ -22,13 +20,11 @@ public class UserNameplateVo implements Serializable {
private Date createTime;
private Date updateTime;
// Nameplate
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Nameplate")
private String nameplateName;
@ReplaceAppDomain
private String nameplateImage;
// other
private Boolean isExpired; // 是否过期
private int expireDays; // 剩余有效天数
private Boolean isUsing; // 是否正在使用

View File

@@ -0,0 +1,20 @@
package com.accompany.core.annotation;
import com.accompany.core.serialize.MessageSourceSerialize;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.FIELD)
@JacksonAnnotationsInside
@JsonSerialize(using = MessageSourceSerialize.class)
public @interface I18n {
String className();
String fieldName() default "";
}

View File

@@ -0,0 +1,20 @@
package com.accompany.core.annotation;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.FIELD)
@JacksonAnnotationsInside
@JsonSerialize(using = MessageSourceAdminSerialize.class)
public @interface I18nAdmin {
String className();
String fieldName() default "";
}

View File

@@ -0,0 +1,20 @@
package com.accompany.core.annotation;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.FIELD)
@JacksonAnnotationsInside
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
public @interface I18nPartition {
String className();
String fieldName() default "";
}

View File

@@ -1,38 +1,70 @@
package com.accompany.core.serialize;
import com.accompany.core.annotation.I18nAdmin;
import com.accompany.core.base.SpringContextHolder;
import com.accompany.core.config.WebLocaleConfig;
import com.accompany.core.service.MessageI18nService;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import lombok.Data;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
public class MessageSourceAdminSerialize extends JsonSerializer<String> {
@Data
public class MessageSourceAdminSerialize extends JsonSerializer<String> implements ContextualSerializer {
private String className;
private String fieldName;
@SneakyThrows
@Override
public void serialize(String str, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (StringUtils.isBlank(str)){
if (StringUtils.isEmpty(str)){
jsonGenerator.writeNull();
return;
}
MessageSource messageSource = SpringContextHolder.getBean(MessageSource.class);
String i18nId = className + "." + (StringUtils.isNoneBlank(fieldName)? getFieldNameValue(jsonGenerator.getCurrentValue()): str);
Map<String, String> i18nMap = new HashMap<>();
for (Locale locale: WebLocaleConfig.partitionLocales){
String message = messageSource.getMessage(str, null, str, locale);
String message = messageSource.getMessage(i18nId, null, str, locale);
i18nMap.put(locale.getLanguage(), message);
}
jsonGenerator.writeString(JSON.toJSONString(i18nMap));
}
private String getFieldNameValue(Object obj) throws NoSuchFieldException, IllegalAccessException {
Class<?> clazz = obj.getClass();
Field field = clazz.getDeclaredField(fieldName);
field.setAccessible(true);
Object val = field.get(obj);
return val.toString();
}
@Override
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) {
I18nAdmin annotation = beanProperty.getAnnotation(I18nAdmin.class);
if (null != annotation && StringUtils.isNoneBlank(annotation.className())){
MessageSourceAdminSerialize serialize = new MessageSourceAdminSerialize();
serialize.setClassName(annotation.className());
serialize.setFieldName(annotation.fieldName());
return serialize;
}
return null;
}
}

View File

@@ -1,28 +1,62 @@
package com.accompany.core.serialize;
import com.accompany.core.annotation.I18nPartition;
import com.accompany.core.base.SpringContextHolder;
import com.accompany.core.config.WebLocaleConfig;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import lombok.Data;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.Locale;
public class MessageSourcePartitionSerialize extends JsonSerializer<String> {
@Data
public class MessageSourcePartitionSerialize extends JsonSerializer<String> implements ContextualSerializer {
private String className;
private String fieldName;
@SneakyThrows
@Override
public void serialize(String str, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (StringUtils.isBlank(str)){
if (StringUtils.isEmpty(str)){
jsonGenerator.writeNull();
return;
}
Locale locale = LocaleContextHolder.getLocale();
Locale partitionLocale = WebLocaleConfig.partitionLocaleMaps.get(locale);
String abc = SpringContextHolder.getBean(MessageSource.class).getMessage(str, null, str, partitionLocale);
String i18nId = className + "." + (StringUtils.isNoneBlank(fieldName)? getFieldNameValue(jsonGenerator.getCurrentValue()): str);
String abc = SpringContextHolder.getBean(MessageSource.class).getMessage(i18nId, null, str, partitionLocale);
jsonGenerator.writeString(abc);
}
private String getFieldNameValue(Object obj) throws NoSuchFieldException, IllegalAccessException {
Class<?> clazz = obj.getClass();
Field field = clazz.getDeclaredField(fieldName);
field.setAccessible(true);
Object val = field.get(obj);
return val.toString();
}
@Override
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) {
I18nPartition annotation = beanProperty.getAnnotation(I18nPartition.class);
if (null != annotation && StringUtils.isNoneBlank(annotation.className())){
MessageSourcePartitionSerialize serialize = new MessageSourcePartitionSerialize();
serialize.setClassName(annotation.className());
serialize.setFieldName(annotation.fieldName());
return serialize;
}
return null;
}
}

View File

@@ -1,26 +1,59 @@
package com.accompany.core.serialize;
import com.accompany.core.annotation.I18n;
import com.accompany.core.base.SpringContextHolder;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import lombok.Data;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.Locale;
public class MessageSourceSerialize extends JsonSerializer<String> {
@Data
public class MessageSourceSerialize extends JsonSerializer<String> implements ContextualSerializer {
private String className;
private String fieldName;
@SneakyThrows
@Override
public void serialize(String str, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (StringUtils.isBlank(str)){
if (StringUtils.isEmpty(str)){
jsonGenerator.writeNull();
return;
}
Locale locale = LocaleContextHolder.getLocale();
String abc = SpringContextHolder.getBean(MessageSource.class).getMessage(str, null, str, locale);
String i18nId = className + "." + (StringUtils.isNoneBlank(fieldName)? getFieldNameValue(jsonGenerator.getCurrentValue()): str);
String abc = SpringContextHolder.getBean(MessageSource.class).getMessage(i18nId, null, str, locale);
jsonGenerator.writeString(abc);
}
private String getFieldNameValue(Object obj) throws NoSuchFieldException, IllegalAccessException {
Class<?> clazz = obj.getClass();
Field field = clazz.getDeclaredField(fieldName);
field.setAccessible(true);
Object val = field.get(obj);
return val.toString();
}
@Override
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) {
I18n annotation = beanProperty.getAnnotation(I18n.class);
if (null != annotation && StringUtils.isNoneBlank(annotation.className())){
MessageSourceSerialize serialize = new MessageSourceSerialize();
serialize.setClassName(annotation.className());
serialize.setFieldName(annotation.fieldName());
return serialize;
}
return null;
}
}

View File

@@ -1,6 +1,8 @@
package com.accompany.core.service;
import com.accompany.common.utils.StringUtils;
import com.accompany.core.base.SpringContextHolder;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.api.config.ConfigService;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@@ -12,8 +14,14 @@ import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.reflect.Field;
import java.util.List;
import java.util.Locale;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* @ClassName MessageConfService
@@ -24,7 +32,7 @@ import java.util.Properties;
*/
@Service
@Slf4j
public class MessageI18nService {
public class MessageI18nNacosService {
@Autowired
private NacosConfigProperties nacosConfigProperties;
@@ -140,37 +148,6 @@ public class MessageI18nService {
GROUP,
newContent);
}
/**
* 修改中文配置文件
* @param key key值
* @param value 内容
* @return ignore
*/
public boolean saveOrUpdateZhProperties(String key,String value) {
return saveOrUpdateProperties(key,value,MESSAGES_ZH_CONF_DATA_ID);
}
/**
* 修改阿语配置文件
* @param key key值
* @param value 内容
* @return ignore
*/
public boolean saveOrUpdateArProperties(String key,String value) {
return saveOrUpdateProperties(key,value,MESSAGES_AR_CONF_DATA_ID);
}
/**
* 修改印语配置文件
* @param key key值
* @param value 内容
* @return ignore
*/
public boolean saveOrUpdateInProperties(String key,String value) {
return saveOrUpdateProperties(key,value,MESSAGES_IN_CONF_DATA_ID);
}
/**
* 将properties属性转换为字符串内容
* @param properties 属性文件
@@ -192,4 +169,48 @@ public class MessageI18nService {
return saveOrUpdateProperties(key,value,getMessageFileName(locale.getLanguage()));
}
/**
* 将需要国际化的数据进行反序列化并进行修改
* @param id 主键
*/
@SneakyThrows
public static void deserialization(Object obj, String id, List<String> fieldNames){
MessageI18nNacosService messageI18NNacosService = SpringContextHolder.getBean(MessageI18nNacosService.class);
ThreadPoolExecutor bizExecutor = SpringContextHolder.getBean(ThreadPoolExecutor.class);
Class<?> clazz = obj.getClass();
for (Field field : clazz.getDeclaredFields()) {
String fieldName = field.getName();
if (fieldNames.contains(fieldName)){
String i18nKey = clazz.getName() + "." + fieldName + "." + id;
field.setAccessible(true);
String value = (String) field.get(obj);
JSONObject jsonObject = JSONObject.parseObject(value);
Set<String> keySet = jsonObject.keySet();
CountDownLatch cdl = new CountDownLatch(keySet.size());
// 国际化数据
for (String key : keySet) {
bizExecutor.execute(()->{
try {
// 需要保存的值
String i18nValue = jsonObject.getString(key);
messageI18NNacosService.saveOrUpdate(new Locale(key), i18nKey, i18nValue);
} catch (Exception e){
log.error("{}",e.getMessage(), e);
} finally {
cdl.countDown();
}
});
}
cdl.await(5, TimeUnit.SECONDS);
field.set(obj, i18nKey);
}
}
}
}

View File

@@ -1,8 +1,6 @@
package com.accompany.business.model;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
@@ -35,14 +33,6 @@ public class Gift {
private Boolean hasVggPic;
public Boolean getHasSvga() {
return hasSvga;
}
public void setHasSvga(Boolean hasSvga) {
this.hasSvga = hasSvga;
}
private Boolean hasSvga;
@ReplaceAppDomain
@@ -259,6 +249,62 @@ public class Gift {
this.vggUrl = vggUrl == null ? null : vggUrl.trim();
}
public Boolean getNobleGift() {
return isNobleGift;
}
public void setNobleGift(Boolean nobleGift) {
isNobleGift = nobleGift;
}
public Boolean getHasSvga() {
return hasSvga;
}
public void setHasSvga(Boolean hasSvga) {
this.hasSvga = hasSvga;
}
public Boolean getLatest() {
return isLatest;
}
public void setLatest(Boolean latest) {
isLatest = latest;
}
public Boolean getTimeLimit() {
return isTimeLimit;
}
public void setTimeLimit(Boolean timeLimit) {
isTimeLimit = timeLimit;
}
public Boolean getWholeServer() {
return isWholeServer;
}
public void setWholeServer(Boolean wholeServer) {
isWholeServer = wholeServer;
}
public Boolean getSkipRoom() {
return isSkipRoom;
}
public void setSkipRoom(Boolean skipRoom) {
isSkipRoom = skipRoom;
}
public Boolean getSendMsg() {
return isSendMsg;
}
public void setSendMsg(Boolean sendMsg) {
isSendMsg = sendMsg;
}
public Boolean getIsLatest() {
return isLatest;
}

View File

@@ -1,8 +1,5 @@
package com.accompany.business.model;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.math.BigDecimal;
import java.util.Date;

View File

@@ -1,9 +1,7 @@
package com.accompany.business.model;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@@ -1,8 +1,6 @@
package com.accompany.business.model;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;

View File

@@ -1,21 +1,9 @@
/*
* 文 件 名: UserInfoCard
* 版 权:
* 描 述: <描述>
* 创建人: H1
* 创建时间: 2021/12/31
* 修改人:
* 修改内容:
* 修改时间:
*/
package com.accompany.business.model.dress;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;

View File

@@ -1,9 +1,7 @@
package com.accompany.business.model.roomtab;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@@ -1,7 +1,6 @@
package com.accompany.business.vo;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
import java.math.BigDecimal;
@@ -21,7 +20,7 @@ public class BillSearchVo {
private Integer giftId;
private Integer giftNum;
private String giftPict;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
private BigDecimal amount;
private BigDecimal actualAmount;

View File

@@ -1,8 +1,7 @@
package com.accompany.business.vo;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -53,7 +52,7 @@ public class DiamondGiveHistoryVo {
@ReplaceAppDomain
private String giftUrl;
@ApiModelProperty("礼物名称")
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
}

View File

@@ -1,8 +1,7 @@
package com.accompany.business.vo;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.accompany.core.annotation.I18nPartition;
import com.accompany.core.vo.vip.VipBaseInfoVO;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.google.common.collect.Lists;
@@ -14,7 +13,7 @@ import java.util.List;
*/
public class GiftVo implements Comparable<GiftVo> {
private Integer giftId;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
private Long goldPrice;
@ReplaceAppDomain

View File

@@ -1,7 +1,6 @@
package com.accompany.business.vo;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
/**
* Created by PaperCut on 2018/4/20.
@@ -9,10 +8,10 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
public class RoomTagVo {
private Integer id;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "RoomTag")
private String name;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "RoomTag", fieldName = "name")
private String pict;
private Integer seq;

View File

@@ -8,11 +8,10 @@ import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceSerialize;
import com.accompany.common.annotation.ReplaceDomain;
import com.accompany.common.utils.ReplaceDomainInterface;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.accompany.core.annotation.I18nPartition;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
@@ -65,11 +64,11 @@ public class RoomVo implements Comparable<RoomVo> {
private Integer tagId;
@ReplaceAppDomain
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "RoomTag")
private String roomTag;
@ReplaceDomain
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@ReplaceAppDomain
@I18nPartition(className = "RoomTag")
private String tagPict;
private Long recomSeq;

View File

@@ -1,8 +1,7 @@
package com.accompany.business.vo;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
/**
* 用户背包展示实体
@@ -22,7 +21,7 @@ public class UserBackpackVo {
/**
* 礼物名称
*/
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
/**
* 价格

View File

@@ -2,10 +2,6 @@ package com.accompany.business.vo.car;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceSerialize;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
/**
@@ -16,7 +12,7 @@ public class CarGoodsVo {
private Integer nobleId;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "CarGoods")
private String name;
@ReplaceAppDomain

View File

@@ -1,8 +1,11 @@
package com.accompany.business.vo.car;
import com.accompany.core.annotation.I18nPartition;
public class CarRecordVo {
private Long uid; // 账单用户
@I18nPartition(className = "CarGoods")
private String optStr; // 如:续费
private String payStr; // 如:-2000元
private long recordTime;// 记录的时间

View File

@@ -2,20 +2,17 @@ package com.accompany.business.vo.car;
import com.alibaba.fastjson.JSON;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.annotation.I18nAdmin;
import java.util.Date;
/**
* @author yangziwen
* @description
* @date 2018/3/6 19:00
*/
public class UserCarGoodsVo {
private Integer id;
private Integer nobleId;
@I18nAdmin(className = "CarGoods")
private String name;
@ReplaceAppDomain

View File

@@ -2,8 +2,6 @@ package com.accompany.business.vo.dress;
import com.accompany.business.model.dress.DressShop;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceAdminSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,7 +15,6 @@ public class DressShopVo extends DressShop {
private String pic;
@ApiModelProperty("装扮昵称")
@JsonSerialize(using = MessageSourceAdminSerialize.class)
private String name;
@ApiModelProperty("装扮来源")

View File

@@ -1,18 +1,7 @@
/*
* 文 件 名: UserChatBubbleVO
* 版 权:
* 描 述: <描述>
* 创建人: H1
* 创建时间: 2022/3/17
* 修改人:
* 修改内容:
* 修改时间:
*/
package com.accompany.business.vo.dress;
import com.accompany.business.model.dress.UserChatBubble;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -27,7 +16,7 @@ import lombok.Data;
@Data
@ApiModel
public class UserChatBubbleVO extends UserChatBubble {
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "ChatBubble")
@ApiModelProperty("气泡名称")
private String name;
@ApiModelProperty("来源1购买 2官方赠送")

View File

@@ -1,19 +1,7 @@
/*
* 文 件 名: UserInfoCardVO
* 版 权:
* 描 述: <描述>
* 创建人: H1
* 创建时间: 2021/12/31
* 修改人:
* 修改内容:
* 修改时间:
*/
package com.accompany.business.vo.dress;
import com.accompany.core.annotation.I18nPartition;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceSerialize;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -32,7 +20,7 @@ import java.util.Date;
public class UserInfoCardVO {
@ApiModelProperty(value = "资料卡id")
private Long cardId;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "InfoCard")
@ApiModelProperty(value = "资料卡名称")
private String name;
@ApiModelProperty(value = "资料卡图片")

View File

@@ -1,7 +1,6 @@
package com.accompany.business.vo.gift;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -19,7 +18,7 @@ public class CompoundGiftVo {
@ApiModelProperty("礼物id")
private Integer giftId;
@ApiModelProperty("礼物名称")
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
@ApiModelProperty("礼物排序序号")
private Integer orderNo;

View File

@@ -1,8 +1,7 @@
package com.accompany.business.vo.gift;
import com.accompany.business.vo.GiftVo;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -18,7 +17,7 @@ public class NewUserGift {
/**
* 礼物名称
*/
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
/**
*礼物图片

View File

@@ -1,9 +1,7 @@
package com.accompany.business.vo.headwear;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.accompany.core.annotation.I18nPartition;
import com.alibaba.fastjson.JSON;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.math.BigDecimal;
import java.util.Date;
@@ -17,7 +15,7 @@ public class HeadwearVo {
private Integer headwearId;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Headwear")
private String name;
@ReplaceAppDomain

View File

@@ -1,9 +1,6 @@
package com.accompany.business.vo.nameplate;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourceSerialize;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
import java.io.Serializable;
@@ -13,7 +10,7 @@ import java.util.Date;
public class NameplateVo implements Serializable {
private Long id;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Nameplate")
private String name;
@ReplaceAppDomain

View File

@@ -1,8 +1,7 @@
package com.accompany.business.vo.radish;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
public class UserRadishGiftWallVo {
@@ -10,7 +9,7 @@ public class UserRadishGiftWallVo {
private Integer giftId;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
@ReplaceAppDomain

View File

@@ -1,7 +1,6 @@
package com.accompany.business.vo.room;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
import java.util.Date;
@@ -10,7 +9,7 @@ import java.util.Date;
public class RoomFreeGiftUserVo {
private Long uid;
private Integer giftId;
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "Gift")
private String giftName;
private Long goldPrice;
private String giftUrl;

View File

@@ -1,7 +1,6 @@
package com.accompany.business.vo.roomtab;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,7 +16,7 @@ public class HomeRoomTabVo {
@ApiModelProperty(value = "tab id")
private Long id;
@ApiModelProperty(value = "tab名称")
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "RoomTab")
private String name;
@ApiModelProperty(value = "tab排序")
private Integer seq;

View File

@@ -1,9 +1,7 @@
package com.accompany.business.vo.roomtab;
import io.swagger.annotations.ApiModelProperty;
import com.accompany.core.serialize.MessageSourceSerialize;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
import java.io.Serializable;
@@ -16,7 +14,7 @@ public class RoomTabMapVo implements Serializable {
private Long erbanNo; // 房主靓号
private Long roomUid; // 房主uid
private String roomTitle; // 房间标题
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "RoomTag")
private String roomTag; // 房间标签
private Integer tabId; // 房间tab id
private Integer seq; // 排序

View File

@@ -1,7 +1,6 @@
package com.accompany.business.vo.roomtab;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
import java.io.Serializable;
@@ -11,7 +10,7 @@ import java.util.Date;
public class RoomTabVo implements Serializable {
private Long id; // 主键ID
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "RoomTab")
private String name; // 名称
private Integer status; // 状态
private Integer seq; // 排序

View File

@@ -6,11 +6,8 @@ import com.accompany.core.service.base.BaseService;
import com.accompany.business.vo.car.CarRecordVo;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.accompany.common.constant.Constant;
import com.accompany.common.utils.DateTimeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -20,8 +17,6 @@ public class CarRecordService extends BaseService {
@Autowired
private CarRecordMapperMgr carRecordMapperMgr;
@Autowired
private MessageSource messageSource;
public List<CarRecord> getRecordByDate(long uid, long date, int pageNo, Integer pageSize) {
@@ -40,13 +35,10 @@ public class CarRecordService extends BaseService {
voMap.put(date1.getTime(), voList);
}
Locale locale = LocaleContextHolder.getLocale();
String recordName = messageSource.getMessage(record.getCarName(), null, record.getCarName(), locale);
CarRecordVo searchVo = new CarRecordVo();
searchVo.setRecordTime(record.getCreateTime().getTime());
searchVo.setUid(record.getUid());
searchVo.setOptStr(recordName);
searchVo.setOptStr(record.getCarName());
/*searchVo.setOptStr("购买 " + record.getCarName());
if (record.getOptType().equals(Constant.CarOptType.renew)) {
searchVo.setOptStr("续费 " + record.getCarName());

View File

@@ -64,7 +64,6 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;

View File

@@ -1,7 +1,6 @@
package com.accompany.world.vo;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.core.annotation.I18nPartition;
import com.accompany.common.annotation.ReplaceAppDomain;
import lombok.Data;
@@ -27,7 +26,7 @@ public class WorldDetailVo {
/**
* 名称 必填限16个字世界标题不能重复
*/
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "World")
private String name;
/**
@@ -39,13 +38,13 @@ public class WorldDetailVo {
/**
* 描述
*/
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "World")
private String description;
/**
* 公告
*/
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "World")
private String notice;
/**

View File

@@ -1,8 +1,7 @@
package com.accompany.world.vo;
import com.accompany.core.serialize.MessageSourcePartitionSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.accompany.common.annotation.ReplaceAppDomain;
import com.accompany.core.annotation.I18nPartition;
import lombok.Data;
import java.util.Date;
@@ -27,7 +26,7 @@ public class WorldVo {
/**
* 名称 必填限16个字世界标题不能重复
*/
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "World")
private String name;
/**
@@ -39,7 +38,7 @@ public class WorldVo {
/**
* 描述
*/
@JsonSerialize(using = MessageSourcePartitionSerialize.class)
@I18nPartition(className = "World")
private String description;
/**