Forráskód Böngészése

支持获取模板传入参数

Veronique 1 éve
szülő
commit
e05fb40ccd

+ 25 - 2
conf/sqlroot/com/sdtool/business/dao/DesignDao.dql

@@ -52,6 +52,9 @@ from $table$
         voidFlag = #{voidFlag}
     -- end
   -- end
+  -- isNotEmpty userIdentity
+       userIdentity = #{userIdentity}
+    -- end
   -- isNotEmpty keyWord
     and (orderName LIKE #{Like:keyWord})
   -- end
@@ -83,7 +86,13 @@ updateTimeLong ) values ( #{id}, #{templatename}, #{backgroundpath}, #{viewthumb
 #{updatetimelong} );
 
 -- [updateDesignTemplate]
-update $table$ set templateName = #{templatename}, jsonContent = #{jsoncontent},
+update $table$ set templateName = #{templatename},
+jsonContent = #{jsoncontent},
+backgroundPath = #{backgroundpath},
+canvasHeight = #{canvasheight},
+canvasWidth = #{canvaswidth},
+breedHeight = #{breedheight},
+breedWidth = #{breedwidth},
 updateBy = #{updateby},
 updateTime = #{updatetime}
 where id = #{id};
@@ -137,4 +146,18 @@ updateBy, updateTime, updateTimeLong ) values ( #{id}, #{idorder}, #{itemtype},
 #{locationy}, #{sizewidth}, #{sizeheight},
 #{rotation}, #{zindex}, #{jsoncontent},
 #{createby}, #{createtime}, #{createtimelong},
-#{updateby}, #{updatetime}, #{updatetimelong} );
+#{updateby}, #{updatetime}, #{updatetimelong} );
+
+-- [updateDesignOrder]
+update $table$ set backgroundPath = #{backgroundpath},
+canvasHeight = #{canvasheight},
+canvasWidth = #{canvaswidth},
+breedHeight = #{breedheight},
+breedWidth = #{breedwidth},
+jsonContent = #{jsoncontent},
+updateBy = #{updateby},
+updateTime = #{updatetime}
+where id = #{id};
+
+-- [deleteDesignOrderItem]
+delete from $table$ where idOrder = #{id};

+ 8 - 1
sdBusiness/src/main/java/com/sdtool/business/dao/DesignDao.java

@@ -78,7 +78,14 @@ public interface DesignDao extends DaoRepository {
     @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
     @SqlId(clazz = DesignDao.class, sql = "addDesignOrder", table = "deDesignOrder", params = {1}, sort = 1)
     @SqlId(clazz = DesignDao.class, sql = "addDesignOrderItem", table = "deDesignOrderItem", params = {2}, sort = 2)
-    void addDesignTemplate(DesignOrder designOrder, List<DesignOrderItem> itemList, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+    void addDesignOrder(DesignOrder designOrder, List<DesignOrderItem> itemList, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
+
+    @Sharding(databaseShardingStrategy = SupplierDataBaseShardingStrategy.class, tableShardingStrategy = SupplierTableShardingStrategy.class)
+    @DAOMethod(operator = OperatorType.UPDATE, owait = OperatorWait.ASNYC)
+    @SqlId(clazz = DesignDao.class, sql = "updateDesignOrder", table = "deDesignOrder", params = {1}, sort = 1)
+    @SqlId(clazz = DesignDao.class, sql = "deleteDesignOrderItem", table = "deDesignOrderItem", params = {1}, sort = 2)
+    @SqlId(clazz = DesignDao.class, sql = "addDesignOrderItem", table = "deDesignOrderItem", params = {2}, sort = 3)
+    void updateDesignOrder(DesignOrder designOrder, List<DesignOrderItem> itemList, @DatabaseShardingBy String dataSourceId, @TableShardingBy Long supplierCode);
 
     //endregion
 

+ 97 - 10
sdBusiness/src/main/java/com/sdtool/business/service/mall/DesignServiceImpl.java

@@ -31,6 +31,7 @@ import org.rex.RMap;
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -204,12 +205,24 @@ public class DesignServiceImpl extends BaseService implements DesignService {
     }
 
     //todo 转换fabric的元素结构
-    private List<DesignTemplateItem> convertJsonObjectsToTemplateItems(String jsonObjects) {
-        return new ArrayList<>();
+    private void convertJsonObjectsToTemplate(DesignTemplate designTemplate) {
+        FabricMain fabricMain = jsonConvert.convertFrom(FabricMain.class, designTemplate.getJsonContent());
+        List<DesignOrderItem> orderItems = new ArrayList<>();
+        fabricMain.getObjects().forEach(object -> {
+            if (object.get("id").equals("WorkSpaceDrawType")) {
+                //背景对象
+                designTemplate.setCanvasHeight(ERPUtils.px2mm(((BigDecimal) object.get("height")).doubleValue()));
+                designTemplate.setCanvasWidth(ERPUtils.px2mm(((BigDecimal) object.get("width")).doubleValue()));
+            }
+
+
+        });
+
+        designTemplate.setItemList(new ArrayList<>());
     }
 
-    private List<DesignOrderItem> convertJsonObjectsToOrderItems(String jsonObjects) {
-        return new ArrayList<>();
+    private void convertJsonObjectsToOrder(DesignOrder designOrder) {
+        designOrder.setItemList(new ArrayList<>());
     }
 
     @Override
@@ -247,9 +260,8 @@ public class DesignServiceImpl extends BaseService implements DesignService {
         }
 
         redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_EDIT, supplierCode), String.valueOf(template.getId()), template);
-        List<DesignTemplateItem> itemList = convertJsonObjectsToTemplateItems(template.getJsonContent());
+        convertJsonObjectsToTemplate(template);
         template.setJsonContent(fileName);
-        template.setItemList(itemList);
         redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_TEMPLATE_IMPOSITION, supplierCode), String.valueOf(template.getId()), template);
 
         if (isNew)
@@ -346,10 +358,12 @@ public class DesignServiceImpl extends BaseService implements DesignService {
         return designOrder;
     }
 
+    //region 设计订单
     @Override
     public RetResult<DesignOrder> newDesignOrder(DesignTemplate customerDesign, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
         DesignOrder designOrder = convertTemplateToOrder(customerDesign);
         designOrder.setId(tableIdService.getTableIdMulti("deDesignOrder.id", 1, dataSourceId, String.valueOf(supplierCode)));
+        designOrder.setUserIdentity(String.valueOf(currentUser.getId()));
         DesignOrder.create(designOrder, currentUser.getId());
 
         String fileName = orderContentRoot + File.separator + supplierCode +
@@ -375,20 +389,93 @@ public class DesignServiceImpl extends BaseService implements DesignService {
         }
 
         redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_EDIT, supplierCode), String.valueOf(designOrder.getId()), designOrder);
-        List<DesignOrderItem> itemList = convertJsonObjectsToOrderItems(designOrder.getJsonContent());
+        convertJsonObjectsToOrder(designOrder);
         designOrder.setJsonContent(fileName);
-        designOrder.setItemList(itemList);
         redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_IMPOSITION, supplierCode), String.valueOf(designOrder.getId()), designOrder);
 
         //todo 生成pdf
 
-        designDao.addDesignTemplate(designOrder, designOrder.getItemList(), dataSourceId, supplierCode);
+        designDao.addDesignOrder(designOrder, designOrder.getItemList(), dataSourceId, supplierCode);
 
         return RetResult.<DesignOrder>successT().result(designOrder);
     }
 
     @Override
     public RetResult<DesignOrder> updateDesignOrder(DesignOrder designOrder, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
-        return null;
+        RetResult<DesignOrder> redisOrderResult = getDesignOrderEdit(designOrder.getId(), dataSourceId, supplierCode);
+        if (!redisOrderResult.isSuccess()) return redisOrderResult;
+        DesignOrder redisOrder = redisOrderResult.getResult();
+
+        designOrder.setIdTemplate(redisOrder.getIdTemplate());
+        designOrder.setUserIdentity(redisOrder.getUserIdentity());
+        designOrder.setOrderMame(redisOrder.getOrderMame());
+        designOrder.setProductIdentity(redisOrder.getProductIdentity());
+
+        DesignOrder.update(designOrder, currentUser.getId());
+
+        String fileName = orderContentRoot + File.separator + supplierCode +
+                File.separator + designOrder.getId() + ".txt";
+        Path path = Paths.get(fileName);
+
+        String writeContent = "";
+        if (StringUtils.isNotEmpty(designOrder.getJsonContent())) {
+            writeContent = designOrder.getJsonContent();
+        }
+        try {
+            if (!Files.exists(path.getParent())) {
+                Files.createDirectories(path.getParent());
+            }
+            Files.write(path,
+                    Collections.singleton(new StringBuilder(writeContent)),
+                    StandardCharsets.UTF_8,
+                    StandardOpenOption.CREATE,
+                    StandardOpenOption.WRITE,
+                    StandardOpenOption.TRUNCATE_EXISTING);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_EDIT, supplierCode), String.valueOf(designOrder.getId()), designOrder);
+        convertJsonObjectsToOrder(designOrder);
+        designOrder.setJsonContent(fileName);
+        redisService.hset(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_IMPOSITION, supplierCode), String.valueOf(designOrder.getId()), designOrder);
+
+        //todo 生成pdf
+        designDao.updateDesignOrder(designOrder, designOrder.getItemList(), dataSourceId, supplierCode);
+
+        return RetResult.<DesignOrder>successT().result(designOrder);
+    }
+
+    @Override
+    public RetResult<List<DesignOrder>> queryDesignOrders(RMap params, PageFlipper pageFlipper, String dataSourceId, long supplierCode, ERPTokenUser currentUser) {
+        //默认来说这里查的都是自己的设计单
+        params.set("userIdentity", currentUser.getId());
+
+        List<DesignOrder> orderList = designDao.selectDesignOrders(params, dataSourceId, supplierCode, pageFlipper);
+
+        orderList.forEach(x -> x.setJsonContent(""));
+        return RetResult.<List<DesignOrder>>successT().result(orderList);
+    }
+
+    @Override
+    public RetResult<DesignOrder> getDesignOrderEdit(long id, String dataSourceId, long supplierCode) {
+        DesignOrder redisOrder = getRedisDocInfo(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_EDIT, supplierCode),
+                String.valueOf(id), DesignOrder.class);
+
+        if (redisOrder == null) return RetResult.<DesignOrder>errorT().retinfo("设计订单id不正确");
+        else
+            return RetResult.<DesignOrder>successT().result(redisOrder);
     }
+
+    @Override
+    public RetResult<DesignOrder> getDesignOrderImposition(long id, String dataSourceId, long supplierCode) {
+        DesignOrder redisOrder = getRedisDocInfo(keysService.getRedisKey(RedisKeys.KEY_DESIGNER_DESIGN_ORDER_IMPOSITION, supplierCode),
+                String.valueOf(id), DesignOrder.class);
+
+        if (redisOrder == null) return RetResult.<DesignOrder>errorT().retinfo("设计订单id不正确");
+        else
+            return RetResult.<DesignOrder>successT().result(redisOrder);
+    }
+
+    //endregion
 }

+ 6 - 0
sdCommon/src/main/java/com/sdtool/common/api/mall/DesignService.java

@@ -45,6 +45,12 @@ public interface DesignService extends ScriptService {
     //endregion
 
     //region 设计订单
+    RetResult<List<DesignOrder>> queryDesignOrders(RMap params, PageFlipper pageFlipper, String dataSourceId, long supplierCode, ERPTokenUser currentUser);
+
+    RetResult<DesignOrder> getDesignOrderEdit(long id, String dataSourceId, long supplierCode);
+
+    RetResult<DesignOrder> getDesignOrderImposition(long id, String dataSourceId, long supplierCode);
+
     RetResult<DesignOrder> newDesignOrder(DesignTemplate customerDesign, String dataSourceId, long supplierCode, ERPTokenUser currentUser);
 
     RetResult<DesignOrder> updateDesignOrder(DesignOrder designOrder, String dataSourceId, long supplierCode, ERPTokenUser currentUser);

+ 415 - 0
sdCommon/src/main/java/com/sdtool/common/entity/design/fabric/BackgroundImage.java

@@ -0,0 +1,415 @@
+package com.sdtool.common.entity.design.fabric;
+
+import java.util.List;
+
+public class BackgroundImage {
+    private double angle;
+
+    private String backgroundColor;
+
+    private double cropX;
+
+    private double cropY;
+
+    private String crossOrigin;
+
+    private boolean evented;
+
+    private String fill;
+
+    private String fillRule;
+
+    private List<Object> filters;
+
+    private boolean flipX;
+
+    private boolean flipY;
+
+    private String globalCompositeOperation;
+
+    private boolean hasBorders;
+
+    private double height;
+
+    private double width;
+
+    private double left;
+
+    private double top;
+
+    private boolean lockMovementX;
+
+    private boolean lockMovementY;
+
+    private boolean objectCaching;
+
+    private double opacity;
+
+    private String originX;
+
+    private String originY;
+
+    private double padding;
+
+    private String paintFirst;
+
+    private double scaleX;
+
+    private double scaleY;
+
+    private boolean selectable;
+
+    private double skewX;
+
+    private double skewY;
+
+    private String src;
+
+    private double strokeDashOffset;
+
+    private String strokeLineCap;
+
+    private String strokeLineJoin;
+
+    private double strokeMiterLimit;
+
+    private boolean strokeUniform;
+
+    private double strokeWidth;
+
+    private boolean transparentCorners;
+
+    private String type;
+
+    private String version;
+
+    private boolean visible;
+
+    public double getAngle() {
+        return angle;
+    }
+
+    public void setAngle(double angle) {
+        this.angle = angle;
+    }
+
+    public String getBackgroundColor() {
+        return backgroundColor;
+    }
+
+    public void setBackgroundColor(String backgroundColor) {
+        this.backgroundColor = backgroundColor;
+    }
+
+    public double getCropX() {
+        return cropX;
+    }
+
+    public void setCropX(double cropX) {
+        this.cropX = cropX;
+    }
+
+    public double getCropY() {
+        return cropY;
+    }
+
+    public void setCropY(double cropY) {
+        this.cropY = cropY;
+    }
+
+    public String getCrossOrigin() {
+        return crossOrigin;
+    }
+
+    public void setCrossOrigin(String crossOrigin) {
+        this.crossOrigin = crossOrigin;
+    }
+
+    public boolean isEvented() {
+        return evented;
+    }
+
+    public void setEvented(boolean evented) {
+        this.evented = evented;
+    }
+
+    public String getFill() {
+        return fill;
+    }
+
+    public void setFill(String fill) {
+        this.fill = fill;
+    }
+
+    public String getFillRule() {
+        return fillRule;
+    }
+
+    public void setFillRule(String fillRule) {
+        this.fillRule = fillRule;
+    }
+
+    public List<Object> getFilters() {
+        return filters;
+    }
+
+    public void setFilters(List<Object> filters) {
+        this.filters = filters;
+    }
+
+    public boolean isFlipX() {
+        return flipX;
+    }
+
+    public void setFlipX(boolean flipX) {
+        this.flipX = flipX;
+    }
+
+    public boolean isFlipY() {
+        return flipY;
+    }
+
+    public void setFlipY(boolean flipY) {
+        this.flipY = flipY;
+    }
+
+    public String getGlobalCompositeOperation() {
+        return globalCompositeOperation;
+    }
+
+    public void setGlobalCompositeOperation(String globalCompositeOperation) {
+        this.globalCompositeOperation = globalCompositeOperation;
+    }
+
+    public boolean isHasBorders() {
+        return hasBorders;
+    }
+
+    public void setHasBorders(boolean hasBorders) {
+        this.hasBorders = hasBorders;
+    }
+
+    public double getHeight() {
+        return height;
+    }
+
+    public void setHeight(double height) {
+        this.height = height;
+    }
+
+    public double getWidth() {
+        return width;
+    }
+
+    public void setWidth(double width) {
+        this.width = width;
+    }
+
+    public double getLeft() {
+        return left;
+    }
+
+    public void setLeft(double left) {
+        this.left = left;
+    }
+
+    public double getTop() {
+        return top;
+    }
+
+    public void setTop(double top) {
+        this.top = top;
+    }
+
+    public boolean isLockMovementX() {
+        return lockMovementX;
+    }
+
+    public void setLockMovementX(boolean lockMovementX) {
+        this.lockMovementX = lockMovementX;
+    }
+
+    public boolean isLockMovementY() {
+        return lockMovementY;
+    }
+
+    public void setLockMovementY(boolean lockMovementY) {
+        this.lockMovementY = lockMovementY;
+    }
+
+    public boolean isObjectCaching() {
+        return objectCaching;
+    }
+
+    public void setObjectCaching(boolean objectCaching) {
+        this.objectCaching = objectCaching;
+    }
+
+    public double getOpacity() {
+        return opacity;
+    }
+
+    public void setOpacity(double opacity) {
+        this.opacity = opacity;
+    }
+
+    public String getOriginX() {
+        return originX;
+    }
+
+    public void setOriginX(String originX) {
+        this.originX = originX;
+    }
+
+    public String getOriginY() {
+        return originY;
+    }
+
+    public void setOriginY(String originY) {
+        this.originY = originY;
+    }
+
+    public double getPadding() {
+        return padding;
+    }
+
+    public void setPadding(double padding) {
+        this.padding = padding;
+    }
+
+    public String getPaintFirst() {
+        return paintFirst;
+    }
+
+    public void setPaintFirst(String paintFirst) {
+        this.paintFirst = paintFirst;
+    }
+
+    public double getScaleX() {
+        return scaleX;
+    }
+
+    public void setScaleX(double scaleX) {
+        this.scaleX = scaleX;
+    }
+
+    public double getScaleY() {
+        return scaleY;
+    }
+
+    public void setScaleY(double scaleY) {
+        this.scaleY = scaleY;
+    }
+
+    public boolean isSelectable() {
+        return selectable;
+    }
+
+    public void setSelectable(boolean selectable) {
+        this.selectable = selectable;
+    }
+
+    public double getSkewX() {
+        return skewX;
+    }
+
+    public void setSkewX(double skewX) {
+        this.skewX = skewX;
+    }
+
+    public double getSkewY() {
+        return skewY;
+    }
+
+    public void setSkewY(double skewY) {
+        this.skewY = skewY;
+    }
+
+    public String getSrc() {
+        return src;
+    }
+
+    public void setSrc(String src) {
+        this.src = src;
+    }
+
+    public double getStrokeDashOffset() {
+        return strokeDashOffset;
+    }
+
+    public void setStrokeDashOffset(double strokeDashOffset) {
+        this.strokeDashOffset = strokeDashOffset;
+    }
+
+    public String getStrokeLineCap() {
+        return strokeLineCap;
+    }
+
+    public void setStrokeLineCap(String strokeLineCap) {
+        this.strokeLineCap = strokeLineCap;
+    }
+
+    public String getStrokeLineJoin() {
+        return strokeLineJoin;
+    }
+
+    public void setStrokeLineJoin(String strokeLineJoin) {
+        this.strokeLineJoin = strokeLineJoin;
+    }
+
+    public double getStrokeMiterLimit() {
+        return strokeMiterLimit;
+    }
+
+    public void setStrokeMiterLimit(double strokeMiterLimit) {
+        this.strokeMiterLimit = strokeMiterLimit;
+    }
+
+    public boolean isStrokeUniform() {
+        return strokeUniform;
+    }
+
+    public void setStrokeUniform(boolean strokeUniform) {
+        this.strokeUniform = strokeUniform;
+    }
+
+    public double getStrokeWidth() {
+        return strokeWidth;
+    }
+
+    public void setStrokeWidth(double strokeWidth) {
+        this.strokeWidth = strokeWidth;
+    }
+
+    public boolean isTransparentCorners() {
+        return transparentCorners;
+    }
+
+    public void setTransparentCorners(boolean transparentCorners) {
+        this.transparentCorners = transparentCorners;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public boolean isVisible() {
+        return visible;
+    }
+
+    public void setVisible(boolean visible) {
+        this.visible = visible;
+    }
+}

+ 10 - 0
sdCommon/src/main/java/com/sdtool/common/entity/design/fabric/FabricMain.java

@@ -12,6 +12,8 @@ public class FabricMain {
 
     private String background;
 
+    private BackgroundImage backgroundImage;
+
     private double height;
 
     private String version;
@@ -40,6 +42,14 @@ public class FabricMain {
         this.background = background;
     }
 
+    public BackgroundImage getBackgroundImage() {
+        return backgroundImage;
+    }
+
+    public void setBackgroundImage(BackgroundImage backgroundImage) {
+        this.backgroundImage = backgroundImage;
+    }
+
     public double getHeight() {
         return height;
     }

+ 20 - 0
sdCommon/src/main/java/com/sdtool/common/entity/design/fabric/WorkSpace.java

@@ -23,6 +23,10 @@ public class WorkSpace {
 
     private double scaleY;
 
+    private String imageSize;
+
+    private String imageURL;
+
     public double getAngle() {
         return angle;
     }
@@ -94,4 +98,20 @@ public class WorkSpace {
     public void setScaleY(double scaleY) {
         this.scaleY = scaleY;
     }
+
+    public String getImageSize() {
+        return imageSize;
+    }
+
+    public void setImageSize(String imageSize) {
+        this.imageSize = imageSize;
+    }
+
+    public String getImageURL() {
+        return imageURL;
+    }
+
+    public void setImageURL(String imageURL) {
+        this.imageURL = imageURL;
+    }
 }

+ 0 - 1
sdWebCore/src/main/java/com/sdtool/webcore/rest/DesignRest.java

@@ -6,7 +6,6 @@ import com.sdtool.common.base.BaseService;
 import com.sdtool.common.datas.ERPHeader;
 import com.sdtool.common.datas.HttpCode;
 import com.sdtool.common.entity.base.ProcessIdItem;
-import com.sdtool.common.entity.base.ProcessSearchEntityItem;
 import com.sdtool.common.entity.base.ProcessStringItem;
 import com.sdtool.common.entity.design.DesignFont;
 import com.sdtool.common.entity.design.DesignTemplate;