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

同步皮肤修改接口

parent 3e294bf1
......@@ -65,7 +65,9 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService {
log.info("结束同步设备列表!");
log.info("开始同步皮肤列表!");
syncSkin();
skinService.syncSkin();
//syncSkin();
log.info("结束同步皮肤列表!");
}
......@@ -159,7 +161,7 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService {
}
}
private void syncSkin() {
/* private void syncSkin() {
SkinBasePdu skinBasePdu = new SkinBasePdu();
skinBasePdu.setProductName("样表机");
......@@ -230,7 +232,7 @@ public class SyncSiteDeviceTaskImpl implements ITaskExcuteService {
}
}
}
}*/
@Override
public void stopTask(ITask task) throws AppException {
......
......@@ -276,4 +276,7 @@ public class HomeController extends BaseJsonBodyController {
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
}
......@@ -11,4 +11,6 @@ import com.mortals.xhx.module.skin.model.SkinEntity;
*/
public interface SkinService extends ICRUDService<SkinEntity,Long>{
void syncSkin();
}
\ No newline at end of file
package com.mortals.xhx.module.skin.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.mortals.framework.common.Rest;
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.skin.SkinBasePdu;
import com.mortals.xhx.common.utils.BeanUtil;
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 org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
......@@ -15,6 +23,13 @@ import com.mortals.framework.model.Context;
import com.mortals.xhx.module.skin.dao.SkinDao;
import com.mortals.xhx.module.skin.model.SkinEntity;
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
* 皮肤 service实现
......@@ -26,6 +41,8 @@ import com.mortals.xhx.module.skin.service.SkinService;
@Slf4j
public class SkinServiceImpl extends AbstractCRUDServiceImpl<SkinDao, SkinEntity, Long> implements SkinService {
@Autowired
private ISkinBaseFeign skinBaseFeign;
@Override
protected void updateBefore(SkinEntity entity, Context context) throws AppException {
......@@ -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;
import com.alibaba.fastjson.JSON;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
......@@ -12,33 +14,40 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.skin.model.SkinEntity;
import com.mortals.xhx.module.skin.service.SkinService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 皮肤
*
* @author zxfei
* @date 2023-04-03
*/
* 皮肤
*
* @author zxfei
* @date 2023-04-03
*/
@RestController
@RequestMapping("skin")
@Slf4j
public class SkinController extends BaseCRUDJsonBodyMappingController<SkinService,SkinEntity,Long> {
public class SkinController extends BaseCRUDJsonBodyMappingController<SkinService, SkinEntity, Long> {
@Autowired
private ParamService paramService;
......@@ -46,14 +55,14 @@ public class SkinController extends BaseCRUDJsonBodyMappingController<SkinServic
@Autowired
private IDeviceMessageFeign deviceMessageFeign;
public SkinController(){
super.setModuleDesc( "皮肤");
public SkinController() {
super.setModuleDesc("皮肤");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "imageResolution", paramService.getParamBySecondOrganize("Skin","imageResolution"));
this.addDict(model, "used", paramService.getParamBySecondOrganize("Skin","used"));
this.addDict(model, "imageResolution", paramService.getParamBySecondOrganize("Skin", "imageResolution"));
this.addDict(model, "used", paramService.getParamBySecondOrganize("Skin", "used"));
super.init(model, context);
}
......@@ -71,4 +80,13 @@ public class SkinController extends BaseCRUDJsonBodyMappingController<SkinServic
log.info("send device message==>{}", JSON.toJSONString(rest));
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