Browse Source

超级后台产品导入表头记录相关类

hulh 8 years ago
parent
commit
c360ad6993

+ 8 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/controller/GoodsController.java

@@ -650,4 +650,12 @@ public class GoodsController {
 		logger.log("商品管理", "下架该公司所有商品");
 		return goodsService.downAllGoodsByEnterprise(eName);
 	}
+
+	@RequestMapping(value = "/background/page", method = RequestMethod.GET)
+	public Page<Goods> getPageDataOfBackground(PageParams params, String code, String brand, String store, String kindUuid, Integer saleStatus,
+											   Integer saleNum, String currency, Short saleSelf,
+											   Boolean breakUp, Integer standard, Integer audited, Short haveImg) {
+		PageInfo info = new PageInfo(params);
+		return null;
+	}
 }

+ 24 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/BackgroundRecordDao.java

@@ -0,0 +1,24 @@
+package com.uas.platform.b2c.prod.commodity.dao;
+
+import com.uas.platform.b2c.prod.commodity.model.BackgroundRecord;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 表头记录的dao层
+ *
+ * @author hulh 2017年12月13日 10点03分
+ */
+@Repository
+public interface BackgroundRecordDao extends JpaSpecificationExecutor<BackgroundRecord>,
+        JpaRepository<BackgroundRecord, Long> {
+
+    /**
+     * 根据useruu获取表头记录信息
+     *
+     * @param useruu
+     * @return
+     */
+    BackgroundRecord findByUseruu(Long useruu);
+}

+ 22 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/TitleDao.java

@@ -0,0 +1,22 @@
+package com.uas.platform.b2c.prod.commodity.dao;
+
+import com.uas.platform.b2c.prod.commodity.model.Title;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 表头信息的dao层
+ *
+ * @author hulh 2017年12月13日 10点03分
+ */
+@Repository
+public interface TitleDao extends JpaSpecificationExecutor<Title>,
+        JpaRepository<Title, Long> {
+
+    /**
+     * 删除指定表头记录下的表头信息
+     * @param recordid 表头记录id
+     */
+    void deleteByRecordid(Long recordid);
+}

+ 101 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/BackgroundRecord.java

@@ -0,0 +1,101 @@
+package com.uas.platform.b2c.prod.commodity.model;
+
+import javax.persistence.*;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 超级后台表头记录类
+ * @author hulh 2017年12月13日 10点03分
+ */
+@Entity
+@Table(name = "background$record")
+public class BackgroundRecord {
+
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue
+    @Column(name = "re_id")
+    private Long id;
+
+    /**
+     * 账号userUU
+     */
+    @Column(name = "re_uu")
+    private Long useruu;
+
+    /**
+     * 店铺enuu
+     */
+    @Column(name = "re_enuu")
+    private Long enuu;
+
+    /**
+     * 表头信息Set
+     */
+    @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
+    @JoinColumn(name = "re_id")
+    private Set<Title> titleSet;
+
+    /**
+     * 表头信息创建时间
+     */
+    @Column(name = "re_update_time")
+    private Date createTime;
+
+    /**
+     * 表头信息更新时间
+     */
+    @Column(name = "re_update_time")
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getUseruu() {
+        return useruu;
+    }
+
+    public void setUseruu(Long useruu) {
+        this.useruu = useruu;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public Set<Title> getTitleSet() {
+        return titleSet;
+    }
+
+    public void setTitleSet(Set<Title> titleSet) {
+        this.titleSet = titleSet;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 115 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/Title.java

@@ -0,0 +1,115 @@
+package com.uas.platform.b2c.prod.commodity.model;
+
+import org.apache.commons.collections.CollectionUtils;
+
+import javax.persistence.*;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * 表头信息类
+ * @author hulh 2017年12月13日 10点03分
+ */
+@Entity
+@Table(name = "background$title")
+public class Title {
+
+    private static String[] nameArray = {"产品图片", "商家名称", "封装", "梯度", "单价", "交期(天)",
+            "在售状态", "在售数量", "库存总数", "销售方式"};
+    private static final Set<Title> defaultList = new HashSet<>();
+    static {
+        initDefaultList();
+    }
+
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue
+    @Column(name = "title_id")
+    private Long id;
+
+    /**
+     * 表头名
+     */
+    @Column(name = "title_name")
+    private String titleName;
+
+    /**
+     * 关联的后台记录主键
+     */
+    @Column(name = "re_id")
+    private Long recordid;
+
+    public Title() {
+
+    }
+
+    public Title(String titleName) {
+        this.titleName = titleName;
+    }
+
+    /**
+     * 初始化默认列表
+     */
+    private static void initDefaultList() {
+        if (CollectionUtils.isEmpty(defaultList)) {
+            synchronized (Title.class) {
+                if (CollectionUtils.isEmpty(defaultList)) {
+                    for (String name : nameArray) {
+                        Title title = new Title(name);
+                        defaultList.add(title);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 公有方法获取默认列表
+     * @return
+     */
+    public static Set<Title> getDefaultList(){
+        return defaultList;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        Title title = (Title) o;
+
+        return titleName.equals(title.titleName);
+
+    }
+
+    @Override
+    public int hashCode() {
+        return titleName.hashCode();
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getTitleName() {
+        return titleName;
+    }
+
+    public void setTitleName(String titleName) {
+        this.titleName = titleName;
+    }
+
+    public Long getRecordid() {
+        return recordid;
+    }
+
+    public void setRecordid(Long recordid) {
+        this.recordid = recordid;
+    }
+}

+ 27 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/BackgroundRecordService.java

@@ -0,0 +1,27 @@
+package com.uas.platform.b2c.prod.commodity.service;
+
+import com.uas.platform.b2c.prod.commodity.model.Title;
+import com.uas.platform.b2c.trade.support.ResultMap;
+import java.util.Set;
+
+/**
+ * 表头记录的Service层
+ *
+ * @author hulh 2017年12月13日 10点03分
+ */
+public interface BackgroundRecordService {
+
+    /**
+     * 更新表头信息,如果没发生改变则不更新
+     *
+     * @param titleList 表头list
+     * @return
+     */
+    ResultMap updateTitleInfo(Set<Title> titleList);
+
+    /**
+     * 返回当前用户的表头记录信息
+     * @return
+     */
+    Set<Title> getTitleInfoByUseruu();
+}

+ 21 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/GoodsService.java

@@ -555,4 +555,25 @@ public interface GoodsService {
      * @return
      */
     public void addVisitCount(String batchCode);
+
+    /**
+     * 根据一下信息获取Goods分页对象
+     * @param info
+     * @param code
+     * @param brand
+     * @param store
+     * @param kindUuid
+     * @param saleStatus
+     * @param saleNum
+     * @param currency
+     * @param saleSelf
+     * @param breakUp
+     * @param standard
+     * @param audited
+     * @param haveImg
+     * @return
+     */
+    Page<Goods> getPageDataOfBackground(PageInfo info, String code, String brand, String store, String kindUuid, Integer saleStatus,
+                                        Integer saleNum, String currency, Short saleSelf,
+                                        Boolean breakUp, Integer standard, Integer audited, Short haveImg);
 }

+ 84 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/BackgroundRecordServiceImpl.java

@@ -0,0 +1,84 @@
+package com.uas.platform.b2c.prod.commodity.service.impl;
+
+import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.prod.commodity.dao.BackgroundRecordDao;
+import com.uas.platform.b2c.prod.commodity.dao.TitleDao;
+import com.uas.platform.b2c.prod.commodity.model.BackgroundRecord;
+import com.uas.platform.b2c.prod.commodity.model.Title;
+import com.uas.platform.b2c.prod.commodity.service.BackgroundRecordService;
+import com.uas.platform.b2c.prod.commodity.util.SetUtil;
+import com.uas.platform.b2c.trade.support.CodeType;
+import com.uas.platform.b2c.trade.support.ResultMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 表头记录服务的实现层
+ *
+ * @author hulh 2017年12月13日 11点34分
+ */
+@Service
+public class BackgroundRecordServiceImpl implements BackgroundRecordService {
+
+    @Autowired
+    private BackgroundRecordDao backgroundRecordDao;
+
+    @Autowired
+    private TitleDao titleDao;
+
+    @Autowired
+    private SysConf sysConf;
+
+    /**
+     * 判断表头Set是否修改,未修改则不操作(返回false)
+     * 修改则进行保存操作,并刷新页面 (返回true)
+     *
+     * @param titleList 表头list
+     * @return
+     */
+    @Override
+    public ResultMap updateTitleInfo(Set<Title> titleList) {
+        Long userUU = SystemSession.getUser().getUserUU();
+        BackgroundRecord record = backgroundRecordDao.findByUseruu(userUU);
+        if (record == null) {
+            return new ResultMap(CodeType.NOT_COMPLETE_INFO, "对应表头记录丢失,刷新后重试");
+        }
+        Set<Title> beforeSet = record.getTitleSet();
+        // 判断表头信息是否修改
+        boolean isEquals = SetUtil.compareSet(beforeSet, titleList);
+        if (isEquals)
+            return ResultMap.success(false);
+        titleDao.deleteByRecordid(record.getId());
+        titleDao.save(titleList);
+        return ResultMap.success(true);
+    }
+
+    @Override
+    public Set<Title> getTitleInfoByUseruu() {
+        Long userUU = SystemSession.getUser().getUserUU();
+        BackgroundRecord record = backgroundRecordDao.findByUseruu(userUU);
+        if (record == null) {
+            record = createOneRecord();
+            return record.getTitleSet();
+        }
+        return record.getTitleSet();
+    }
+
+    /**
+     * 新建一个表头记录类
+     * @return
+     */
+    private BackgroundRecord createOneRecord(){
+        BackgroundRecord record = new BackgroundRecord();
+        record.setUseruu(SystemSession.getUser().getUserUU());
+        record.setEnuu(sysConf.getEnUU());
+        record.setCreateTime(new Date());
+        record.setUpdateTime(new Date());
+        record.setTitleSet(Title.getDefaultList());
+        return backgroundRecordDao.save(record);
+    }
+}

+ 50 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -9,6 +9,7 @@ import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
 import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.core.constant.ShortConstant;
 import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.DoubleArith;
@@ -2370,4 +2371,53 @@ public class GoodsServiceImpl implements GoodsService {
 	public void addVisitCount(String batchCode) {
 		goodsDao.addVisitCount(batchCode);
 	}
+
+	@Override
+	public Page<Goods> getPageDataOfBackground(PageInfo info, String code, String brand, String store, String kindUuid, Integer saleStatus, Integer saleNum, String currency, Short saleSelf, Boolean breakUp, Integer standard, Integer audited, Short haveImg) {
+//		if (CollectionUtils)
+		return null;
+	}
+
+	private void convertPageInfo(PageInfo info, String code, String brand, String store, String kindUuid,
+								 Integer saleStatus, Integer saleNum, String currency,
+								 Short saleSelf, Boolean breakUp, Integer standard,
+								 Integer audited, Short haveImg) {
+		if (StringUtils.hasText(code)) {
+			info.filter("code", code);
+		}
+		if (StringUtils.hasText(brand)) {
+			SimpleExpression[] brandExpression = new SimpleExpression[2];
+			brandExpression[0] = PredicateUtils.like("brandNameCn", brand, false, true);
+			brandExpression[1] = PredicateUtils.like("brandNameEn", brand, false, true);
+			info.expression(PredicateUtils.or((CriterionExpression[]) brandExpression));
+		}
+		if (StringUtils.hasText(store)) {
+			SimpleExpression[] storeExpression = new SimpleExpression[2];
+			storeExpression[0] = PredicateUtils.like("enUU", store, false, true);
+			storeExpression[1] = PredicateUtils.like("enterpriseName", store, false, true);
+			info.expression(PredicateUtils.or((CriterionExpression[]) storeExpression));
+		}
+		if (StringUtils.hasText(kindUuid)) {
+			// 如果包含多个叶子类目ID,则获取所有的叶子类目对应的商品信息
+			if (kindUuid.contains(SplitChar.COMMA)) {
+				String[] kindIds = kindUuid.split(SplitChar.COMMA);
+				info.expression(PredicateUtils.in("kindUuid", kindIds, false));
+			} else {
+				info.expression(PredicateUtils.eq("kindUuid", kindUuid, false));
+			}
+		}
+		if (StringUtils.hasText(currency)) {
+			info.expression(PredicateUtils.eq("currencyName", currency, false));
+		}
+		if (saleSelf != null) {
+			if (saleSelf.equals(ShortConstant.NO_SHORT)) {
+				info.expression(PredicateUtils.ne("storeid", sysConf.getStoreid(), false));
+			} else {
+				info.expression(PredicateUtils.eq("storeid", sysConf.getStoreid(), false));
+			}
+		}
+		if (breakUp != null) {
+			info.filter("breakUp", breakUp, false);
+		}
+	}
 }

+ 31 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/util/SetUtil.java

@@ -0,0 +1,31 @@
+package com.uas.platform.b2c.prod.commodity.util;
+
+import java.util.Set;
+
+/**
+ * 针对Set集合的工具类
+ * @author hulh 2017年12月13日 10点03分
+ */
+public class SetUtil {
+
+    private SetUtil(){
+
+    }
+
+    /**
+     * 比较两个Set集合中元素是否相等
+     * @param beforeSet 会改变的Set
+     * @param nowSet 不会改变的Set
+     * @return
+     */
+    public static <E> Boolean compareSet(Set<? super E> beforeSet, Set<? extends E> nowSet) {
+        if (beforeSet.size() != nowSet.size())
+            return false;
+        int length = beforeSet.size();
+        for (E e : nowSet) {
+            beforeSet.add(e);
+        }
+        return length == beforeSet.size();
+    }
+
+}

+ 19 - 0
src/test/java/com/uas/platform/b2c/hulh/simple/StringTest.java

@@ -0,0 +1,19 @@
+package com.uas.platform.b2c.hulh.simple;
+
+import org.junit.Test;
+
+/**
+ * Created by hulh on 2017/12/12.
+ */
+public class StringTest {
+
+    @Test
+    public void testSplit(){
+        String str = "-1-2-3-4-5-6-7-8-9-12-";
+        String[] strings = str.split("-");
+        System.out.println(strings.length);
+        for (String s : strings){
+            System.out.print(s + " ");
+        }
+    }
+}