Commit 8fe219a8 authored by 赵啸非's avatar 赵啸非

同步皮肤修改接口

parent 3e294bf1
...@@ -65,7 +65,9 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService { ...@@ -65,7 +65,9 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService {
log.info("结束同步设备列表!"); log.info("结束同步设备列表!");
log.info("开始同步皮肤列表!"); log.info("开始同步皮肤列表!");
syncSkin();
skinService.syncSkin();
//syncSkin();
log.info("结束同步皮肤列表!"); log.info("结束同步皮肤列表!");
} }
...@@ -159,7 +161,7 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService { ...@@ -159,7 +161,7 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService {
} }
} }
private void syncSkin() { /* private void syncSkin() {
SkinBasePdu skinBasePdu = new SkinBasePdu(); SkinBasePdu skinBasePdu = new SkinBasePdu();
skinBasePdu.setProductName("样表机"); skinBasePdu.setProductName("样表机");
...@@ -230,7 +232,7 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService { ...@@ -230,7 +232,7 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService {
} }
} }
} }*/
@Override @Override
public void stopTask(ITask task) throws AppException { public void stopTask(ITask task) throws AppException {
......
...@@ -276,4 +276,7 @@ public class HomeController extends BaseJsonBodyController { ...@@ -276,4 +276,7 @@ public class HomeController extends BaseJsonBodyController {
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString()); ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret; return ret;
} }
} }
...@@ -11,4 +11,6 @@ import com.mortals.xhx.module.skin.model.SkinEntity; ...@@ -11,4 +11,6 @@ import com.mortals.xhx.module.skin.model.SkinEntity;
*/ */
public interface SkinService extends ICRUDService<SkinEntity,Long>{ public interface SkinService extends ICRUDService<SkinEntity,Long>{
void syncSkin();
} }
\ No newline at end of file
package com.mortals.xhx.module.skin.service.impl; package com.mortals.xhx.module.skin.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.pdu.RespData;
import com.mortals.xhx.common.pdu.device.DeviceMsgReqPdu; import com.mortals.xhx.common.pdu.device.DeviceMsgReqPdu;
import com.mortals.xhx.common.pdu.skin.SkinBasePdu;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.feign.device.IDeviceMessageFeign; import com.mortals.xhx.feign.device.IDeviceMessageFeign;
import com.mortals.xhx.feign.site.ISiteFeign;
import com.mortals.xhx.feign.skin.ISkinBaseFeign;
import com.mortals.xhx.module.skin.model.SkinQuery;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
...@@ -15,6 +23,13 @@ import com.mortals.framework.model.Context; ...@@ -15,6 +23,13 @@ import com.mortals.framework.model.Context;
import com.mortals.xhx.module.skin.dao.SkinDao; import com.mortals.xhx.module.skin.dao.SkinDao;
import com.mortals.xhx.module.skin.model.SkinEntity; import com.mortals.xhx.module.skin.model.SkinEntity;
import com.mortals.xhx.module.skin.service.SkinService; import com.mortals.xhx.module.skin.service.SkinService;
import org.springframework.util.ObjectUtils;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* SkinService * SkinService
* 皮肤 service实现 * 皮肤 service实现
...@@ -26,6 +41,8 @@ import com.mortals.xhx.module.skin.service.SkinService; ...@@ -26,6 +41,8 @@ import com.mortals.xhx.module.skin.service.SkinService;
@Slf4j @Slf4j
public class SkinServiceImpl extends AbstractCRUDServiceImpl<SkinDao, SkinEntity, Long> implements SkinService { public class SkinServiceImpl extends AbstractCRUDServiceImpl<SkinDao, SkinEntity, Long> implements SkinService {
@Autowired
private ISkinBaseFeign skinBaseFeign;
@Override @Override
protected void updateBefore(SkinEntity entity, Context context) throws AppException { protected void updateBefore(SkinEntity entity, Context context) throws AppException {
...@@ -42,4 +59,76 @@ public class SkinServiceImpl extends AbstractCRUDServiceImpl<SkinDao, SkinEntity ...@@ -42,4 +59,76 @@ public class SkinServiceImpl extends AbstractCRUDServiceImpl<SkinDao, SkinEntity
} }
} }
@Override
public void syncSkin() {
SkinBasePdu skinBasePdu = new SkinBasePdu();
skinBasePdu.setProductName("样表机");
skinBasePdu.setSize(-1);
Rest<RespData<List<SkinBasePdu>>> skinBaseRest = skinBaseFeign.list(skinBasePdu);
if (skinBaseRest.getCode() == YesNoEnum.YES.getValue()) {
List<SkinBasePdu> skinBasePduList = skinBaseRest.getData().getData();
log.info("样表机皮肤总数量:{}", skinBasePduList.size());
if (!ObjectUtils.isEmpty(skinBasePduList)) {
List<SkinEntity> newSkinList = skinBasePduList.stream().map(newSkin -> {
SkinEntity skinEntity = new SkinEntity();
skinEntity.initAttrValue();
//存相对地址
newSkin.setCssFilePath("/"+ StrUtil.subAfter(newSkin.getCssFilePath(), "/", true));
newSkin.setPreviewImagePath("/"+StrUtil.subAfter(newSkin.getPreviewImagePath(), "/", true));
BeanUtils.copyProperties(newSkin, skinEntity, BeanUtil.getNullPropertyNames(newSkin));
return skinEntity;
}).collect(Collectors.toList());
List<SkinEntity> oldSkinList = this.find(new SkinQuery());
Map<Long, SkinEntity> oldSkinMap = oldSkinList.stream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
Map<Long, SkinEntity> newSkinMap = newSkinList.stream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
List<SkinEntity> updateSkinLsit = newSkinList.stream().map(item -> {
if (oldSkinMap.containsKey(item.getId())) {
item.setUsed(oldSkinMap.get(item.getId()).getUsed());
item.setUpdateTime(new Date());
return item;
}
return null;
}).filter(f -> f != null).collect(Collectors.toList());
List<SkinEntity> saveSkinList = newSkinList.stream().map(item -> {
if (!oldSkinMap.containsKey(item.getId())) {
item.setCreateUserId(1L);
item.setCreateUserName("系统管理员");
item.setCreateTime(new Date());
return item;
}
return null;
}).filter(f -> f != null).collect(Collectors.toList());
//做差集
List<Long> delSkinList = oldSkinList.stream().map(item -> {
if (!newSkinMap.containsKey(item.getId())) {
return item.getId();
}
return null;
}).filter(f -> f != null).collect(Collectors.toList());
// if (!ObjectUtils.isEmpty(updateSkinLsit)) {
// log.info("皮肤更新,size:{}", updateSkinLsit.size());
// skinService.update(updateSkinLsit);
// }
if (!ObjectUtils.isEmpty(saveSkinList)) {
log.info("皮肤新增,size:{}", saveSkinList.size());
this.save(saveSkinList);
}
if (!ObjectUtils.isEmpty(delSkinList)) {
log.info("皮肤删除,size:{}", delSkinList.size());
this.remove(delSkinList, null);
}
}
}
}
} }
\ No newline at end of file
package com.mortals.xhx.module.skin.web; package com.mortals.xhx.module.skin.web;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
...@@ -12,33 +14,40 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -12,33 +14,40 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.skin.model.SkinEntity; import com.mortals.xhx.module.skin.model.SkinEntity;
import com.mortals.xhx.module.skin.service.SkinService; import com.mortals.xhx.module.skin.service.SkinService;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import java.util.Arrays; import java.util.Arrays;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*; import static com.mortals.framework.ap.SysConstains.*;
/** /**
* * 皮肤
* 皮肤 *
* * @author zxfei
* @author zxfei * @date 2023-04-03
* @date 2023-04-03 */
*/
@RestController @RestController
@RequestMapping("skin") @RequestMapping("skin")
@Slf4j @Slf4j
public class SkinController extends BaseCRUDJsonBodyMappingController<SkinService,SkinEntity,Long> { public class SkinController extends BaseCRUDJsonBodyMappingController<SkinService, SkinEntity, Long> {
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
...@@ -46,14 +55,14 @@ public class SkinController extends BaseCRUDJsonBodyMappingController<SkinServic ...@@ -46,14 +55,14 @@ public class SkinController extends BaseCRUDJsonBodyMappingController<SkinServic
@Autowired @Autowired
private IDeviceMessageFeign deviceMessageFeign; private IDeviceMessageFeign deviceMessageFeign;
public SkinController(){ public SkinController() {
super.setModuleDesc( "皮肤"); super.setModuleDesc("皮肤");
} }
@Override @Override
protected void init(Map<String, Object> model, Context context) { protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "imageResolution", paramService.getParamBySecondOrganize("Skin","imageResolution")); this.addDict(model, "imageResolution", paramService.getParamBySecondOrganize("Skin", "imageResolution"));
this.addDict(model, "used", paramService.getParamBySecondOrganize("Skin","used")); this.addDict(model, "used", paramService.getParamBySecondOrganize("Skin", "used"));
super.init(model, context); super.init(model, context);
} }
...@@ -71,4 +80,13 @@ public class SkinController extends BaseCRUDJsonBodyMappingController<SkinServic ...@@ -71,4 +80,13 @@ public class SkinController extends BaseCRUDJsonBodyMappingController<SkinServic
log.info("send device message==>{}", JSON.toJSONString(rest)); log.info("send device message==>{}", JSON.toJSONString(rest));
return super.saveAfter(entity, model, context); return super.saveAfter(entity, model, context);
} }
@PostMapping({"refreshSkin"})
@UnAuth
public Rest<Object> refreshSkin() {
log.info("刷新皮肤");
this.service.syncSkin();
return Rest.ok("皮肤刷新操作成功");
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment