wuwen 5 years ago
parent
commit
1667905f48
27 changed files with 1621 additions and 778 deletions
  1. 63 29
      src/main/java/com/ssj/bean/sys/award/domain/AwardActivity.java
  2. 70 0
      src/main/java/com/ssj/bean/sys/award/domain/AwardActivityInfo.java
  3. 68 33
      src/main/java/com/ssj/bean/sys/award/domain/AwardGrant.java
  4. 8 8
      src/main/java/com/ssj/bean/sys/award/domain/AwardGrantInfo.java
  5. 10 0
      src/main/java/com/ssj/bean/sys/fx/domain/Merchant.java
  6. 19 0
      src/main/java/com/ssj/dao/sys/award/dao/AwardActivityInfoDao.java
  7. 22 0
      src/main/java/com/ssj/dao/sys/award/dao/AwardGrantInfoDao.java
  8. 4 2
      src/main/java/com/ssj/dao/sys/award/dao/AwardQueryDao.java
  9. 38 0
      src/main/java/com/ssj/dao/sys/award/dao/impl/AwardQueryDaoImpl.java
  10. 17 0
      src/main/java/com/ssj/service/sys/award/service/AwardActivityInfoService.java
  11. 18 0
      src/main/java/com/ssj/service/sys/award/service/AwardGrantInfoService.java
  12. 121 63
      src/main/java/com/ssj/service/sys/award/service/impl/AwardActivityServiceImpl.java
  13. 47 0
      src/main/java/com/ssj/service/sys/award/service/impl/AwardActivityServiceInfoImpl.java
  14. 278 401
      src/main/java/com/ssj/service/sys/award/service/impl/AwardGrantServiceImpl.java
  15. 49 0
      src/main/java/com/ssj/service/sys/award/service/impl/AwardGrantServiceInfoImpl.java
  16. 40 110
      src/main/java/com/ssj/service/sys/award/service/impl/AwardSncodeServiceImpl.java
  17. 1 0
      src/main/java/com/ssj/service/sys/fx/service/impl/MerchantServiceImpl.java
  18. 179 31
      src/main/java/com/ssj/sys/controller/AwardController.java
  19. 108 36
      src/main/resources/templates/sys/award/activity/edit.html
  20. 134 0
      src/main/resources/templates/sys/award/activity/info.html
  21. 16 4
      src/main/resources/templates/sys/award/activity/list.html
  22. 3 3
      src/main/resources/templates/sys/award/examine/list.html
  23. 127 47
      src/main/resources/templates/sys/award/grant/edit.html
  24. 134 0
      src/main/resources/templates/sys/award/grant/info.html
  25. 16 4
      src/main/resources/templates/sys/award/grant/list.html
  26. 15 0
      src/main/resources/templates/sys/fx/merchantAdd.html
  27. 16 7
      src/main/resources/templates/sys/fx/merchantAllList.html

+ 63 - 29
src/main/java/com/ssj/bean/sys/award/domain/AwardActivity.java

@@ -1,10 +1,13 @@
 package com.ssj.bean.sys.award.domain;
 
+import com.alibaba.fastjson.JSONArray;
 import com.ssj.bean.common.framework.core.domain.BaseEntity;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Table;
+import javax.persistence.Transient;
+
 import java.util.Date;
 
 
@@ -24,11 +27,17 @@ public class AwardActivity extends BaseEntity {
 	
 	private String img;
 	
-	private String level1MaterialId;
+//	private String level1MaterialId;
+//	
+//	private String level2MaterialId;
+//	
+//	private String level3MaterialId; 
+	
+	private JSONArray level1MaterialIdJson;
 	
-	private String level2MaterialId;
+	private JSONArray level2MaterialIdJson;
 	
-	private String level3MaterialId; 
+	private JSONArray level3MaterialIdJson;
 	
 	private Integer level1Num; 
 	
@@ -70,32 +79,32 @@ public class AwardActivity extends BaseEntity {
 		this.partakeNum = partakeNum;
 	}
 
-	@Column(name = "level1_material_id")
-	public String getLevel1MaterialId() {
-		return level1MaterialId;
-	}
-
-	public void setLevel1MaterialId(String level1MaterialId) {
-		this.level1MaterialId = level1MaterialId;
-	}
-
-	@Column(name = "level2_material_id")
-	public String getLevel2MaterialId() {
-		return level2MaterialId;
-	}
-
-	public void setLevel2MaterialId(String level2MaterialId) {
-		this.level2MaterialId = level2MaterialId;
-	}
-
-	@Column(name = "level3_material_id")
-	public String getLevel3MaterialId() {
-		return level3MaterialId;
-	}
-
-	public void setLevel3MaterialId(String level3MaterialId) {
-		this.level3MaterialId = level3MaterialId;
-	}
+//	@Column(name = "level1_material_id")
+//	public String getLevel1MaterialId() {
+//		return level1MaterialId;
+//	}
+//
+//	public void setLevel1MaterialId(String level1MaterialId) {
+//		this.level1MaterialId = level1MaterialId;
+//	}
+//
+//	@Column(name = "level2_material_id")
+//	public String getLevel2MaterialId() {
+//		return level2MaterialId;
+//	}
+//
+//	public void setLevel2MaterialId(String level2MaterialId) {
+//		this.level2MaterialId = level2MaterialId;
+//	}
+//
+//	@Column(name = "level3_material_id")
+//	public String getLevel3MaterialId() {
+//		return level3MaterialId;
+//	}
+//
+//	public void setLevel3MaterialId(String level3MaterialId) {
+//		this.level3MaterialId = level3MaterialId;
+//	}
 
 	@Column(name = "level1_num")
 	public Integer getLevel1Num() {
@@ -180,7 +189,32 @@ public class AwardActivity extends BaseEntity {
 		this.isRedis = isRedis;
 	}
 	
+	@Transient
+	public JSONArray getLevel1MaterialIdJson() {
+		return level1MaterialIdJson;
+	}
+
+	public void setLevel1MaterialIdJson(JSONArray level1MaterialIdJson) {
+		this.level1MaterialIdJson = level1MaterialIdJson;
+	}
+	
+	@Transient
+	public JSONArray getLevel2MaterialIdJson() {
+		return level2MaterialIdJson;
+	}
 
+	public void setLevel2MaterialIdJson(JSONArray level2MaterialIdJson) {
+		this.level2MaterialIdJson = level2MaterialIdJson;
+	}
+	
+	@Transient
+	public JSONArray getLevel3MaterialIdJson() {
+		return level3MaterialIdJson;
+	}
+
+	public void setLevel3MaterialIdJson(JSONArray level3MaterialIdJson) {
+		this.level3MaterialIdJson = level3MaterialIdJson;
+	}
 
 	
 }

+ 70 - 0
src/main/java/com/ssj/bean/sys/award/domain/AwardActivityInfo.java

@@ -0,0 +1,70 @@
+package com.ssj.bean.sys.award.domain;
+
+import java.util.Date;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+
+import com.ssj.bean.common.framework.core.domain.BaseEntity;
+
+
+@Entity
+@Table(name="tb_award_activity_info")
+public class AwardActivityInfo extends BaseEntity {
+	
+	private static final long serialVersionUID = 1L;
+	
+	private String activityId;
+	
+	private String materialId;
+	
+	private Integer level;
+	
+	private Integer num;
+	
+	private Date createTime;
+
+	public String getActivityId() {
+		return activityId;
+	}
+
+	public void setActivityId(String activityId) {
+		this.activityId = activityId;
+	}
+
+	public String getMaterialId() {
+		return materialId;
+	}
+
+	public void setMaterialId(String materialId) {
+		this.materialId = materialId;
+	}
+
+	public Integer getLevel() {
+		return level;
+	}
+
+	public void setLevel(Integer level) {
+		this.level = level;
+	}
+
+	public Integer getNum() {
+		return num;
+	}
+
+	public void setNum(Integer num) {
+		this.num = num;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	
+	
+	
+}

+ 68 - 33
src/main/java/com/ssj/bean/sys/award/domain/AwardGrant.java

@@ -1,11 +1,14 @@
 package com.ssj.bean.sys.award.domain;
 
-import com.ssj.bean.common.framework.core.domain.BaseEntity;
+import java.util.Date;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Table;
-import java.util.Date;
+import javax.persistence.Transient;
+
+import com.alibaba.fastjson.JSONArray;
+import com.ssj.bean.common.framework.core.domain.BaseEntity;
 
 
 @Entity
@@ -18,11 +21,17 @@ public class AwardGrant extends BaseEntity {
 	
 	private String toMerchantId;
 	
-	private String level1MaterialId;
+//	private String level1MaterialId;
+//	
+//	private String level2MaterialId;
+//	
+//	private String level3MaterialId;
+	
+	private JSONArray level1MaterialIdJson;
 	
-	private String level2MaterialId;
+	private JSONArray level2MaterialIdJson;
 	
-	private String level3MaterialId;
+	private JSONArray level3MaterialIdJson;
 	
 	private Integer level1Num;
 	
@@ -36,7 +45,6 @@ public class AwardGrant extends BaseEntity {
 	
 	private Date updateTime;
 	
-	
 	private String dingNumber;
 	
 	private String emsNumber;
@@ -69,38 +77,38 @@ public class AwardGrant extends BaseEntity {
 		this.toMerchantId = toMerchantId;
 	}
 
-	@Column(name = "level1_material_id")
-	public String getLevel1MaterialId() {
-		return level1MaterialId;
-	}
-
-	public void setLevel1MaterialId(String level1MaterialId) {
-		this.level1MaterialId = level1MaterialId;
-	}
-
-	@Column(name = "level2_material_id")
-	public String getLevel2MaterialId() {
-		return level2MaterialId;
-	}
-
-	public void setLevel2MaterialId(String level2MaterialId) {
-		this.level2MaterialId = level2MaterialId;
-	}
-
-	@Column(name = "level3_material_id")
-	public String getLevel3MaterialId() {
-		return level3MaterialId;
-	}
-
-	public void setLevel3MaterialId(String level3MaterialId) {
-		this.level3MaterialId = level3MaterialId;
-	}
+//	@Column(name = "level1_material_id")
+//	public String getLevel1MaterialId() {
+//		return level1MaterialId;
+//	}
+//
+//	public void setLevel1MaterialId(String level1MaterialId) {
+//		this.level1MaterialId = level1MaterialId;
+//	}
+//
+//	@Column(name = "level2_material_id")
+//	public String getLevel2MaterialId() {
+//		return level2MaterialId;
+//	}
+//
+//	public void setLevel2MaterialId(String level2MaterialId) {
+//		this.level2MaterialId = level2MaterialId;
+//	}
+//
+//	@Column(name = "level3_material_id")
+//	public String getLevel3MaterialId() {
+//		return level3MaterialId;
+//	}
+//
+//	public void setLevel3MaterialId(String level3MaterialId) {
+//		this.level3MaterialId = level3MaterialId;
+//	}
 
 	@Column(name = "level1_num")
 	public Integer getLevel1Num() {
 		return level1Num;
 	}
-
+	
 	public void setLevel1Num(Integer level1Num) {
 		this.level1Num = level1Num;
 	}
@@ -210,6 +218,33 @@ public class AwardGrant extends BaseEntity {
 	public void setUpdateTime(Date updateTime) {
 		this.updateTime = updateTime;
 	}
+	
+	@Transient
+	public JSONArray getLevel1MaterialIdJson() {
+		return level1MaterialIdJson;
+	}
+
+	public void setLevel1MaterialIdJson(JSONArray level1MaterialIdJson) {
+		this.level1MaterialIdJson = level1MaterialIdJson;
+	}
+	
+	@Transient
+	public JSONArray getLevel2MaterialIdJson() {
+		return level2MaterialIdJson;
+	}
+
+	public void setLevel2MaterialIdJson(JSONArray level2MaterialIdJson) {
+		this.level2MaterialIdJson = level2MaterialIdJson;
+	}
+	
+	@Transient
+	public JSONArray getLevel3MaterialIdJson() {
+		return level3MaterialIdJson;
+	}
+
+	public void setLevel3MaterialIdJson(JSONArray level3MaterialIdJson) {
+		this.level3MaterialIdJson = level3MaterialIdJson;
+	}
 
 
 

+ 8 - 8
src/main/java/com/ssj/bean/sys/award/domain/AwardGrantInfo.java

@@ -40,14 +40,6 @@ public class AwardGrantInfo extends BaseEntity {
 		this.materialId = materialId;
 	}
 
-	public Integer getLevel() {
-		return level;
-	}
-
-	public void setLevel(Integer level) {
-		this.level = level;
-	}
-
 	public Date getCreateTime() {
 		return createTime;
 	}
@@ -64,6 +56,14 @@ public class AwardGrantInfo extends BaseEntity {
 		this.num = num;
 	}
 
+	public Integer getLevel() {
+		return level;
+	}
+
+	public void setLevel(Integer level) {
+		this.level = level;
+	}
+
 	
 	
 }

+ 10 - 0
src/main/java/com/ssj/bean/sys/fx/domain/Merchant.java

@@ -93,6 +93,8 @@ public class Merchant extends BaseEntity {
 	private String address;
 	
 	private Integer signType;
+	
+	private Integer mealType;
 
 	@Transient
 	private List<Merchant> subMerchants=new ArrayList<Merchant>();
@@ -387,4 +389,12 @@ public class Merchant extends BaseEntity {
 		this.libServiceMonth = libServiceMonth;
 	}
 
+	public Integer getMealType() {
+		return mealType;
+	}
+
+	public void setMealType(Integer mealType) {
+		this.mealType = mealType;
+	}
+
 }

+ 19 - 0
src/main/java/com/ssj/dao/sys/award/dao/AwardActivityInfoDao.java

@@ -0,0 +1,19 @@
+package com.ssj.dao.sys.award.dao;
+
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import com.ssj.bean.sys.award.domain.AwardActivityInfo;
+
+@Repository
+public interface AwardActivityInfoDao extends JpaRepository<AwardActivityInfo, String>{
+	
+	@Query(nativeQuery = true, value = " SELECT * from tb_award_activity_info t WHERE t.activity_id=?1 ORDER BY t.create_time ASC ")
+	public List<AwardActivityInfo> findAwardActivityInfoByActivityId(String activityId);
+	
+	
+}

+ 22 - 0
src/main/java/com/ssj/dao/sys/award/dao/AwardGrantInfoDao.java

@@ -0,0 +1,22 @@
+package com.ssj.dao.sys.award.dao;
+
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import com.ssj.bean.sys.award.domain.AwardGrantInfo;
+
+@Repository
+public interface AwardGrantInfoDao extends JpaRepository<AwardGrantInfo, String>{
+	
+	@Query(nativeQuery = true, value = " SELECT * from tb_award_grant_info t WHERE t.grant_id=?1 ORDER BY t.create_time ASC ")
+	public List<AwardGrantInfo> findAwardGrantInfoByGrantId(String grantId);
+	
+	@Query(nativeQuery = true, value = " SELECT * from tb_award_grant_info t WHERE t.grant_id=?1 and t.level=?2 ORDER BY t.create_time ASC ")
+	public List<AwardGrantInfo> findAwardGrantInfoByGrantId(String grantId,Integer level);
+	
+	
+}

+ 4 - 2
src/main/java/com/ssj/dao/sys/award/dao/AwardQueryDao.java

@@ -41,10 +41,12 @@ public interface AwardQueryDao {
     
     public Page<Map<String, Object>> findAwardSncodeByVipList(Map<String, Object> searchParams, Pageable pageable);
 
-
     Page<VipIntegralDto> userIntegralList(Map<String, Object> params, Pageable pageable);
     
-    
 	public List<Map<String, Object>>  getAwardActivityMapByMerchantId(String merchantId,Integer status);
+	
+	public Page<Map<String, Object>> findAwardGrantInfoByGrantId(Map<String, Object> searchParams, Pageable pageable);
+	
+	public Page<Map<String, Object>> findAwardActivityInfoByActivityId(Map<String, Object> searchParams, Pageable pageable);
     
 }

+ 38 - 0
src/main/java/com/ssj/dao/sys/award/dao/impl/AwardQueryDaoImpl.java

@@ -459,4 +459,42 @@ public class AwardQueryDaoImpl implements AwardQueryDao {
 	}
 
 
+	@Override
+	public Page<Map<String, Object>> findAwardGrantInfoByGrantId(Map<String, Object> searchParams, Pageable pageable) {
+		StringBuilder selSQL = new StringBuilder();
+        List<Object> queryParams = new ArrayList<Object>();
+        selSQL.append("  SELECT t.*,m.`name` from tb_award_grant_info t LEFT JOIN tb_award_material m ON t.material_id=m.id  ");
+        selSQL.append(" WHERE  1=1  ");
+        if (searchParams.get("grantId") != null && !searchParams.get("grantId").equals("")) {
+			selSQL.append(" AND t.grant_id=? ");
+			queryParams.add(searchParams.get("grantId"));
+        }
+        if (searchParams.get("level") != null && !searchParams.get("level").equals("")) {
+ 			selSQL.append(" AND t.`level`=? ");
+ 			queryParams.add(searchParams.get("level"));
+        }
+        selSQL.append(" ORDER BY t.create_time desc ");
+        return dao.findPage(selSQL.toString(), queryParams.toArray(), pageable);
+	}
+
+
+	@Override
+	public Page<Map<String, Object>> findAwardActivityInfoByActivityId(Map<String, Object> searchParams,Pageable pageable) {
+		StringBuilder selSQL = new StringBuilder();
+        List<Object> queryParams = new ArrayList<Object>();
+        selSQL.append("  SELECT t.*,m.`name` from tb_award_activity_info t LEFT JOIN tb_award_material m ON t.material_id=m.id  ");
+        selSQL.append(" WHERE  1=1  ");
+        if (searchParams.get("activityId") != null && !searchParams.get("activityId").equals("")) {
+			selSQL.append(" AND t.activity_id=? ");
+			queryParams.add(searchParams.get("activityId"));
+        }
+        if (searchParams.get("level") != null && !searchParams.get("level").equals("")) {
+ 			selSQL.append(" AND t.`level`=? ");
+ 			queryParams.add(searchParams.get("level"));
+        }
+        selSQL.append(" ORDER BY t.create_time desc ");
+        return dao.findPage(selSQL.toString(), queryParams.toArray(), pageable);
+	}
+
+
 }

+ 17 - 0
src/main/java/com/ssj/service/sys/award/service/AwardActivityInfoService.java

@@ -0,0 +1,17 @@
+package com.ssj.service.sys.award.service;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import com.ssj.bean.sys.award.domain.AwardActivityInfo;
+import com.ssj.framework.core.common.service.BaseService;
+
+public interface AwardActivityInfoService extends BaseService<AwardActivityInfo, String> {
+	
+	public List<AwardActivityInfo> findAwardActivityInfoByActivityId(String activityId);
+	
+	public Page<Map<String, Object>> findAwardActivityInfoByActivityId(Map<String, Object> searchParams,Pageable pageable);
+}

+ 18 - 0
src/main/java/com/ssj/service/sys/award/service/AwardGrantInfoService.java

@@ -0,0 +1,18 @@
+package com.ssj.service.sys.award.service;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import com.ssj.bean.sys.award.domain.AwardGrantInfo;
+import com.ssj.framework.core.common.service.BaseService;
+
+public interface AwardGrantInfoService extends BaseService<AwardGrantInfo, String> {
+	
+	public List<AwardGrantInfo> findAwardGrantInfoByGrantId(String grantId);
+	
+	public Page<Map<String,Object>> findAwardGrantInfoByGrantId(Map<String, Object> searchParams, Pageable pageable);
+	
+}

+ 121 - 63
src/main/java/com/ssj/service/sys/award/service/impl/AwardActivityServiceImpl.java

@@ -1,14 +1,10 @@
 package com.ssj.service.sys.award.service.impl;
 
-import com.ssj.bean.sys.award.domain.*;
-import com.ssj.bean.sys.fx.domain.Merchant;
-import com.ssj.dao.sys.award.dao.AwardActivityDao;
-import com.ssj.dao.sys.award.dao.AwardQueryDao;
-import com.ssj.framework.core.common.service.BaseServiceImpl;
-import com.ssj.service.conch.conch.service.HomeworkRankingService;
-import com.ssj.service.sys.award.service.*;
-import com.ssj.service.sys.fx.service.MerchantService;
-import org.apache.commons.lang3.StringUtils;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -16,10 +12,28 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ssj.bean.sys.award.domain.AwardActivity;
+import com.ssj.bean.sys.award.domain.AwardActivityInfo;
+import com.ssj.bean.sys.award.domain.AwardActivityLog;
+import com.ssj.bean.sys.award.domain.AwardConsume;
+import com.ssj.bean.sys.award.domain.AwardMaterial;
+import com.ssj.bean.sys.award.domain.AwardSncode;
+import com.ssj.bean.sys.award.domain.AwardStock;
+import com.ssj.bean.sys.fx.domain.Merchant;
+import com.ssj.dao.sys.award.dao.AwardActivityDao;
+import com.ssj.dao.sys.award.dao.AwardQueryDao;
+import com.ssj.framework.core.common.service.BaseServiceImpl;
+import com.ssj.service.conch.conch.service.HomeworkRankingService;
+import com.ssj.service.sys.award.service.AwardActivityInfoService;
+import com.ssj.service.sys.award.service.AwardActivityLogService;
+import com.ssj.service.sys.award.service.AwardActivityService;
+import com.ssj.service.sys.award.service.AwardConsumeService;
+import com.ssj.service.sys.award.service.AwardMaterialService;
+import com.ssj.service.sys.award.service.AwardSncodeService;
+import com.ssj.service.sys.award.service.AwardStockService;
+import com.ssj.service.sys.fx.service.MerchantService;
 
 @Service
 @Transactional
@@ -52,6 +66,8 @@ public class AwardActivityServiceImpl extends BaseServiceImpl<AwardActivity, Str
 	@Autowired
 	private  AwardActivityLogService awardActivityLogService; 
 	
+	@Autowired
+	private  AwardActivityInfoService awardActivityInfoService; 
 	
 	@Override
 	public PagingAndSortingRepository<AwardActivity, String> getDao() {
@@ -68,69 +84,111 @@ public class AwardActivityServiceImpl extends BaseServiceImpl<AwardActivity, Str
 	public boolean createAwardActivityAndAwardStock(AwardActivity awardActivity) {
 		List<AwardStock> awardStocks=new ArrayList<AwardStock>();
 		List<AwardConsume> awardConsumes=new ArrayList<AwardConsume>();
+		List<AwardActivityInfo> awardActivityInfos=new ArrayList<AwardActivityInfo>();
 		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel1MaterialId())) {
-			AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), awardActivity.getLevel1MaterialId());
-			if(awardStock==null || awardStock.getStockNumber()<awardActivity.getLevel1Num()) {
-				return false;
+		if(awardActivity.getLevel1MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardActivity.getLevel1MaterialIdJson();
+			for (Object object : jsonArray) {
+				
+				JSONObject jsonObject=(JSONObject)object;
+				
+				AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), jsonObject.getString("level1MaterialId"));
+				if(awardStock==null || awardStock.getStockNumber()<jsonObject.getIntValue("level1Num")) {
+					return false;
+				}
+				awardStock.setStockNumber(awardStock.getStockNumber()-jsonObject.getIntValue("level1Num"));
+				awardStock.setUseNumber(awardStock.getUseNumber()+jsonObject.getIntValue("level1Num"));
+				awardStocks.add(awardStock);
+				
+				AwardConsume awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardActivity.getMerchantId());
+				awardConsume.setToMerchantId(null);
+				awardConsume.setAwardMaterialId(jsonObject.getString("level1MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level1Num"));
+				awardConsume.setType(3);
+				awardConsume.setRemarks("创建活动消耗");
+				awardConsumes.add(awardConsume);
+				
+				AwardActivityInfo awardActivityInfo=new AwardActivityInfo();
+				awardActivityInfo.setCreateTime(new Date());
+				awardActivityInfo.setLevel(1);
+				awardActivityInfo.setMaterialId(jsonObject.getString("level1MaterialId"));
+				awardActivityInfo.setNum(jsonObject.getIntValue("level1Num"));
+				awardActivityInfos.add(awardActivityInfo);
 			}
-			awardStock.setStockNumber(awardStock.getStockNumber()-awardActivity.getLevel1Num());
-			awardStock.setUseNumber(awardStock.getUseNumber()+awardActivity.getLevel1Num());
-			awardStocks.add(awardStock);
-			
-			AwardConsume awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardActivity.getMerchantId());
-			awardConsume.setToMerchantId(null);
-			awardConsume.setAwardMaterialId(awardActivity.getLevel1MaterialId());
-			awardConsume.setNumber(awardActivity.getLevel1Num());
-			awardConsume.setType(3);
-			awardConsume.setRemarks("创建活动消耗");
-			awardConsumes.add(awardConsume);
-			
 		}
 		
 		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel2MaterialId())) {
-			AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), awardActivity.getLevel2MaterialId());
-			if(awardStock==null || awardStock.getStockNumber()<awardActivity.getLevel2Num()) {
-				return false;
+		if(awardActivity.getLevel2MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardActivity.getLevel2MaterialIdJson();
+			for (Object object : jsonArray) {
+				
+				JSONObject jsonObject=(JSONObject)object;
+				
+				AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), jsonObject.getString("level2MaterialId"));
+				if(awardStock==null || awardStock.getStockNumber()<jsonObject.getIntValue("level2Num")) {
+					return false;
+				}
+				awardStock.setStockNumber(awardStock.getStockNumber()-jsonObject.getIntValue("level2Num"));
+				awardStock.setUseNumber(awardStock.getUseNumber()+jsonObject.getIntValue("level2Num"));
+				awardStocks.add(awardStock);
+				
+				AwardConsume awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardActivity.getMerchantId());
+				awardConsume.setToMerchantId(null);
+				awardConsume.setAwardMaterialId(jsonObject.getString("level2MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level2Num"));
+				awardConsume.setType(3);
+				awardConsume.setRemarks("创建活动消耗");
+				awardConsumes.add(awardConsume);
+				
+				AwardActivityInfo awardActivityInfo=new AwardActivityInfo();
+				awardActivityInfo.setCreateTime(new Date());
+				awardActivityInfo.setLevel(2);
+				awardActivityInfo.setMaterialId(jsonObject.getString("level2MaterialId"));
+				awardActivityInfo.setNum(jsonObject.getIntValue("level2Num"));
+				awardActivityInfos.add(awardActivityInfo);
 			}
-			awardStock.setStockNumber(awardStock.getStockNumber()-awardActivity.getLevel2Num());
-			awardStock.setUseNumber(awardStock.getUseNumber()+awardActivity.getLevel2Num());
-			awardStocks.add(awardStock);
-			
-			
-			AwardConsume awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardActivity.getMerchantId());
-			awardConsume.setToMerchantId(null);
-			awardConsume.setAwardMaterialId(awardActivity.getLevel2MaterialId());
-			awardConsume.setNumber(awardActivity.getLevel2Num());
-			awardConsume.setType(3);
-			awardConsume.setRemarks("创建活动消耗");
-			awardConsumes.add(awardConsume);
 		}
 		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel3MaterialId())) {
-			AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), awardActivity.getLevel3MaterialId());
-			if(awardStock==null || awardStock.getStockNumber()<awardActivity.getLevel3Num()) {
-				return false;
+		if(awardActivity.getLevel3MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardActivity.getLevel3MaterialIdJson();
+			for (Object object : jsonArray) {
+				
+				JSONObject jsonObject=(JSONObject)object;
+				
+				AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), jsonObject.getString("level3MaterialId"));
+				if(awardStock==null || awardStock.getStockNumber()<jsonObject.getIntValue("level3Num")) {
+					return false;
+				}
+				awardStock.setStockNumber(awardStock.getStockNumber()-jsonObject.getIntValue("level3Num"));
+				awardStock.setUseNumber(awardStock.getUseNumber()+jsonObject.getIntValue("level3Num"));
+				awardStocks.add(awardStock);
+				
+				AwardConsume awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardActivity.getMerchantId());
+				awardConsume.setToMerchantId(null);
+				awardConsume.setAwardMaterialId(jsonObject.getString("level3MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level3Num"));
+				awardConsume.setType(3);
+				awardConsume.setRemarks("创建活动消耗");
+				awardConsumes.add(awardConsume);
+				
+				AwardActivityInfo awardActivityInfo=new AwardActivityInfo();
+				awardActivityInfo.setCreateTime(new Date());
+				awardActivityInfo.setLevel(3);
+				awardActivityInfo.setMaterialId(jsonObject.getString("level3MaterialId"));
+				awardActivityInfo.setNum(jsonObject.getIntValue("level3Num"));
+				awardActivityInfos.add(awardActivityInfo);
 			}
-			awardStock.setStockNumber(awardStock.getStockNumber()-awardActivity.getLevel3Num());
-			awardStock.setUseNumber(awardStock.getUseNumber()+awardActivity.getLevel3Num());
-			awardStocks.add(awardStock);
-			
-			AwardConsume awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardActivity.getMerchantId());
-			awardConsume.setToMerchantId(null);
-			awardConsume.setAwardMaterialId(awardActivity.getLevel3MaterialId());
-			awardConsume.setNumber(awardActivity.getLevel3Num());
-			awardConsume.setType(3);
-			awardConsume.setRemarks("创建活动消耗");
-			awardConsumes.add(awardConsume);
 		}
 		
 		awardActivity.setUpdateTime(new Date());
 		awardActivity=this.save(awardActivity);
+		for (AwardActivityInfo awardActivityInfo : awardActivityInfos) {
+			awardActivityInfo.setActivityId(awardActivity.getId());
+		}
+		awardActivityInfoService.save(awardActivityInfos);
 		awardStockService.save(awardStocks);
 		awardConsumeService.saveAwardConsumeLog(awardConsumes);
 		

+ 47 - 0
src/main/java/com/ssj/service/sys/award/service/impl/AwardActivityServiceInfoImpl.java

@@ -0,0 +1,47 @@
+package com.ssj.service.sys.award.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.ssj.bean.sys.award.domain.AwardActivityInfo;
+import com.ssj.dao.sys.award.dao.AwardActivityInfoDao;
+import com.ssj.dao.sys.award.dao.AwardQueryDao;
+import com.ssj.framework.core.common.service.BaseServiceImpl;
+import com.ssj.service.sys.award.service.AwardActivityInfoService;
+
+@Service
+@Transactional
+public class AwardActivityServiceInfoImpl extends BaseServiceImpl<AwardActivityInfo, String> implements AwardActivityInfoService {
+	
+	@Autowired
+	private AwardActivityInfoDao  awardActivityInfoDao;
+
+	@Autowired
+	private AwardQueryDao  queryDao;
+	
+	@Override
+	public PagingAndSortingRepository<AwardActivityInfo, String> getDao() {
+		return awardActivityInfoDao;
+	}
+
+	@Override
+	public List<AwardActivityInfo> findAwardActivityInfoByActivityId(String activityId) {
+		return awardActivityInfoDao.findAwardActivityInfoByActivityId(activityId);
+	}
+
+	@Override
+	public Page<Map<String, Object>> findAwardActivityInfoByActivityId(Map<String, Object> searchParams,Pageable pageable) {
+		return queryDao.findAwardActivityInfoByActivityId(searchParams, pageable);
+	}
+
+	
+
+
+}

+ 278 - 401
src/main/java/com/ssj/service/sys/award/service/impl/AwardGrantServiceImpl.java

@@ -1,28 +1,33 @@
 package com.ssj.service.sys.award.service.impl;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.ssj.bean.sys.award.domain.AwardConsume;
 import com.ssj.bean.sys.award.domain.AwardGrant;
+import com.ssj.bean.sys.award.domain.AwardGrantInfo;
 import com.ssj.bean.sys.award.domain.AwardMaterial;
 import com.ssj.bean.sys.award.domain.AwardStock;
 import com.ssj.dao.sys.award.dao.AwardGrantDao;
 import com.ssj.dao.sys.award.dao.AwardQueryDao;
 import com.ssj.framework.core.common.service.BaseServiceImpl;
 import com.ssj.service.sys.award.service.AwardConsumeService;
+import com.ssj.service.sys.award.service.AwardGrantInfoService;
 import com.ssj.service.sys.award.service.AwardGrantService;
 import com.ssj.service.sys.award.service.AwardMaterialService;
 import com.ssj.service.sys.award.service.AwardStockService;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.repository.PagingAndSortingRepository;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
 
 @Service
 @Transactional
@@ -42,6 +47,9 @@ public class AwardGrantServiceImpl extends BaseServiceImpl<AwardGrant, String> i
 	
 	@Autowired
 	private AwardConsumeService  awardConsumeService;
+	
+	@Autowired
+	private AwardGrantInfoService  awardGrantInfoService;
 
 	@Override
 	public PagingAndSortingRepository<AwardGrant, String> getDao() {
@@ -59,148 +67,188 @@ public class AwardGrantServiceImpl extends BaseServiceImpl<AwardGrant, String> i
 	public boolean addAwardGrantAndAwardStock(AwardGrant awardGrant) {	
 		List<AwardStock> awardStocks=new ArrayList<AwardStock>();
 		List<AwardConsume> awardConsumes=new ArrayList<AwardConsume>();
+		List<AwardGrantInfo> awardGrantInfos=new ArrayList<AwardGrantInfo>();
+		
 		
 		//指点商户的处理库存数
-		if(StringUtils.isNotEmpty(awardGrant.getLevel1MaterialId())) {
-			
-			//减量
-			AwardStock fAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getFromMerchantId(), awardGrant.getLevel1MaterialId());
-			if(fAwardStock==null) {
-				fAwardStock=new AwardStock();
-				fAwardStock.setMerchantId(awardGrant.getFromMerchantId());
-				fAwardStock.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-				fAwardStock.setStockNumber(0);
-				fAwardStock.setUseNumber(0);
-			}
-			fAwardStock.setStockNumber(fAwardStock.getStockNumber()-awardGrant.getLevel1Num());
-			awardStocks.add(fAwardStock);
-			
-			AwardConsume awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-			awardConsume.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-			awardConsume.setNumber(awardGrant.getLevel1Num());
-			awardConsume.setType(1);
-			awardConsume.setRemarks("我向下配送");
-			awardConsumes.add(awardConsume);
+		if(awardGrant.getLevel1MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardGrant.getLevel1MaterialIdJson();
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
 			
+				//减量
+				AwardStock fAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getFromMerchantId(), jsonObject.getString("level1MaterialId"));
+				if(fAwardStock==null) {
+					fAwardStock=new AwardStock();
+					fAwardStock.setMerchantId(awardGrant.getFromMerchantId());
+					fAwardStock.setAwardMaterialId(jsonObject.getString("level1MaterialId"));
+					fAwardStock.setStockNumber(0);
+					fAwardStock.setUseNumber(0);
+				}
+				fAwardStock.setStockNumber(fAwardStock.getStockNumber()-jsonObject.getIntValue("level1Num"));
+				awardStocks.add(fAwardStock);
+				
+				AwardConsume awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
+				awardConsume.setToMerchantId(awardGrant.getToMerchantId());
+				awardConsume.setAwardMaterialId(jsonObject.getString("level1MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level1Num"));
+				awardConsume.setType(1);
+				awardConsume.setRemarks("我向下配送");
+				awardConsumes.add(awardConsume);
+				
+				
+				//增量
+				AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), jsonObject.getString("level1MaterialId"));
+				if(tAwardStock==null) {
+					tAwardStock=new AwardStock();
+					tAwardStock.setMerchantId(awardGrant.getToMerchantId());
+					tAwardStock.setAwardMaterialId(jsonObject.getString("level1MaterialId"));
+					tAwardStock.setStockNumber(0);
+					tAwardStock.setUseNumber(0);
+				}
+				tAwardStock.setStockNumber(tAwardStock.getStockNumber()+jsonObject.getIntValue("level1Num"));
+				awardStocks.add(tAwardStock);
+				
+				awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
+				awardConsume.setToMerchantId(awardGrant.getToMerchantId());
+				awardConsume.setAwardMaterialId(jsonObject.getString("level1MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level1Num"));
+				awardConsume.setType(2);
+				awardConsume.setRemarks("上级向我配送");
+				awardConsumes.add(awardConsume);
+				
+				AwardGrantInfo awardGrantInfo=new AwardGrantInfo();
+				awardGrantInfo.setGrantId(awardGrant.getId());
+				awardGrantInfo.setMaterialId(jsonObject.getString("level3MaterialId"));
+				awardGrantInfo.setLevel(3);
+				awardGrantInfo.setNum(jsonObject.getIntValue("level3Num"));
+				awardGrantInfo.setCreateTime(new Date());
+				awardGrantInfos.add(awardGrantInfo);
 			
-			//增量
-			AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel1MaterialId());
-			if(tAwardStock==null) {
-				tAwardStock=new AwardStock();
-				tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-				tAwardStock.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-				tAwardStock.setStockNumber(0);
-				tAwardStock.setUseNumber(0);
 			}
-			tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel1Num());
-			awardStocks.add(tAwardStock);
-			
-			awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-			awardConsume.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-			awardConsume.setNumber(awardGrant.getLevel1Num());
-			awardConsume.setType(2);
-			awardConsume.setRemarks("上级向我配送");
-			awardConsumes.add(awardConsume);
-			
-			
 		}
 		
-		if(StringUtils.isNotEmpty(awardGrant.getLevel2MaterialId())) {
+		if(awardGrant.getLevel1MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardGrant.getLevel1MaterialIdJson();
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
 
-			//减量
-			AwardStock fAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getFromMerchantId(), awardGrant.getLevel2MaterialId());
-			if(fAwardStock==null) {
-				fAwardStock=new AwardStock();
-				fAwardStock.setMerchantId(awardGrant.getFromMerchantId());
-				fAwardStock.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-				fAwardStock.setStockNumber(0);
-				fAwardStock.setUseNumber(0);
-			}
-			fAwardStock.setStockNumber(fAwardStock.getStockNumber()-awardGrant.getLevel2Num());
-			awardStocks.add(fAwardStock);
-			
-			AwardConsume awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-			awardConsume.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-			awardConsume.setNumber(awardGrant.getLevel2Num());
-			awardConsume.setType(1);
-			awardConsume.setRemarks("我向下配送");
-			awardConsumes.add(awardConsume);
-			
-			//增量
-			AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel2MaterialId());
-			if(tAwardStock==null) {
-				tAwardStock=new AwardStock();
-				tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-				tAwardStock.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-				tAwardStock.setStockNumber(0);
-				tAwardStock.setUseNumber(0);
+				//减量
+				AwardStock fAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getFromMerchantId(), jsonObject.getString("level2MaterialId"));
+				if(fAwardStock==null) {
+					fAwardStock=new AwardStock();
+					fAwardStock.setMerchantId(awardGrant.getFromMerchantId());
+					fAwardStock.setAwardMaterialId(jsonObject.getString("level2MaterialId"));
+					fAwardStock.setStockNumber(0);
+					fAwardStock.setUseNumber(0);
+				}
+				fAwardStock.setStockNumber(fAwardStock.getStockNumber()-jsonObject.getIntValue("level2Num"));
+				awardStocks.add(fAwardStock);
+				
+				AwardConsume awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
+				awardConsume.setToMerchantId(awardGrant.getToMerchantId());
+				awardConsume.setAwardMaterialId(jsonObject.getString("level2MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level2Num"));
+				awardConsume.setType(1);
+				awardConsume.setRemarks("我向下配送");
+				awardConsumes.add(awardConsume);
+				
+				//增量
+				AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), jsonObject.getString("level2MaterialId"));
+				if(tAwardStock==null) {
+					tAwardStock=new AwardStock();
+					tAwardStock.setMerchantId(awardGrant.getToMerchantId());
+					tAwardStock.setAwardMaterialId(jsonObject.getString("level2MaterialId"));
+					tAwardStock.setStockNumber(0);
+					tAwardStock.setUseNumber(0);
+				}
+				tAwardStock.setStockNumber(tAwardStock.getStockNumber()+jsonObject.getIntValue("level2Num"));
+				awardStocks.add(tAwardStock);
+				
+				awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
+				awardConsume.setToMerchantId(awardGrant.getToMerchantId());
+				awardConsume.setAwardMaterialId(jsonObject.getString("level2MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level2Num"));
+				awardConsume.setType(2);
+				awardConsume.setRemarks("我向下配送");
+				awardConsumes.add(awardConsume);
+				
+				AwardGrantInfo awardGrantInfo=new AwardGrantInfo();
+				awardGrantInfo.setGrantId(awardGrant.getId());
+				awardGrantInfo.setMaterialId(jsonObject.getString("level3MaterialId"));
+				awardGrantInfo.setLevel(3);
+				awardGrantInfo.setNum(jsonObject.getIntValue("level3Num"));
+				awardGrantInfo.setCreateTime(new Date());
+				awardGrantInfos.add(awardGrantInfo);
 			}
-			tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel2Num());
-			awardStocks.add(tAwardStock);
-			
-			awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-			awardConsume.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-			awardConsume.setNumber(awardGrant.getLevel2Num());
-			awardConsume.setType(2);
-			awardConsume.setRemarks("我向下配送");
-			awardConsumes.add(awardConsume);
-			
 		}
 		
-		if(StringUtils.isNotEmpty(awardGrant.getLevel3MaterialId())) {
-			
-			//减量
-			AwardStock fAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getFromMerchantId(), awardGrant.getLevel3MaterialId());
-			if(fAwardStock==null) {
-				fAwardStock=new AwardStock();
-				fAwardStock.setMerchantId(awardGrant.getFromMerchantId());
-				fAwardStock.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-				fAwardStock.setStockNumber(0);
-				fAwardStock.setUseNumber(0);
-			}
-			fAwardStock.setStockNumber(fAwardStock.getStockNumber()-awardGrant.getLevel3Num());
-			awardStocks.add(fAwardStock);
-			
-			AwardConsume awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-			awardConsume.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-			awardConsume.setNumber(awardGrant.getLevel3Num());
-			awardConsume.setType(1);
-			awardConsume.setRemarks("我向下配送");
-			awardConsumes.add(awardConsume);
+		if(awardGrant.getLevel1MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardGrant.getLevel1MaterialIdJson();
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
 			
-			//增量
-			AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel3MaterialId());
-			if(tAwardStock==null) {
-				tAwardStock=new AwardStock();
-				tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-				tAwardStock.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-				tAwardStock.setStockNumber(0);
-				tAwardStock.setUseNumber(0);
+				//减量
+				AwardStock fAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getFromMerchantId(), jsonObject.getString("level3MaterialId"));
+				if(fAwardStock==null) {
+					fAwardStock=new AwardStock();
+					fAwardStock.setMerchantId(awardGrant.getFromMerchantId());
+					fAwardStock.setAwardMaterialId(jsonObject.getString("level3MaterialId"));
+					fAwardStock.setStockNumber(0);
+					fAwardStock.setUseNumber(0);
+				}
+				fAwardStock.setStockNumber(fAwardStock.getStockNumber()-jsonObject.getIntValue("level3Num"));
+				awardStocks.add(fAwardStock);
+				
+				AwardConsume awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
+				awardConsume.setToMerchantId(awardGrant.getToMerchantId());
+				awardConsume.setAwardMaterialId(jsonObject.getString("level3MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level3Num"));
+				awardConsume.setType(1);
+				awardConsume.setRemarks("我向下配送");
+				awardConsumes.add(awardConsume);
+				
+				//增量
+				AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), jsonObject.getString("level3MaterialId"));
+				if(tAwardStock==null) {
+					tAwardStock=new AwardStock();
+					tAwardStock.setMerchantId(awardGrant.getToMerchantId());
+					tAwardStock.setAwardMaterialId(jsonObject.getString("level3MaterialId"));
+					tAwardStock.setStockNumber(0);
+					tAwardStock.setUseNumber(0);
+				}
+				tAwardStock.setStockNumber(tAwardStock.getStockNumber()+jsonObject.getIntValue("level3Num"));
+				awardStocks.add(tAwardStock);
+				
+				awardConsume=new AwardConsume();
+				awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
+				awardConsume.setToMerchantId(awardGrant.getToMerchantId());
+				awardConsume.setAwardMaterialId(jsonObject.getString("level3MaterialId"));
+				awardConsume.setNumber(jsonObject.getIntValue("level3Num"));
+				awardConsume.setType(2);
+				awardConsume.setRemarks("上级向我配送");
+				awardConsumes.add(awardConsume);
+				
+				AwardGrantInfo awardGrantInfo=new AwardGrantInfo();
+				awardGrantInfo.setGrantId(awardGrant.getId());
+				awardGrantInfo.setMaterialId(jsonObject.getString("level3MaterialId"));
+				awardGrantInfo.setLevel(3);
+				awardGrantInfo.setNum(jsonObject.getIntValue("level3Num"));
+				awardGrantInfo.setCreateTime(new Date());
+				awardGrantInfos.add(awardGrantInfo);
+				
 			}
-			tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel3Num());
-			awardStocks.add(tAwardStock);
-			
-			awardConsume=new AwardConsume();
-			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-			awardConsume.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-			awardConsume.setNumber(awardGrant.getLevel3Num());
-			awardConsume.setType(2);
-			awardConsume.setRemarks("上级向我配送");
-			awardConsumes.add(awardConsume);
 		}
 		
-		this.save(awardGrant);
+		awardGrant=this.save(awardGrant);
+		for (AwardGrantInfo awardGrantInfo : awardGrantInfos) {
+			awardGrantInfo.setGrantId(awardGrant.getId());
+		}
 		awardStockService.save(awardStocks);
 		awardConsumeService.saveAwardConsumeLog(awardConsumes);
 		return true;
@@ -209,141 +257,89 @@ public class AwardGrantServiceImpl extends BaseServiceImpl<AwardGrant, String> i
 
 	@Override
 	public boolean addAwardGrantAndAwardStockBySSJFX(AwardGrant awardGrant) {
-		List<AwardStock> awardStocks=new ArrayList<AwardStock>();
 		List<AwardMaterial> awardMaterials=new ArrayList<AwardMaterial>();
-		List<AwardConsume> awardConsumes=new ArrayList<AwardConsume>();
+		List<AwardGrantInfo> awardGrantInfos=new ArrayList<AwardGrantInfo>();
 		
 		//指点商户的处理库存数
-		if(StringUtils.isNotEmpty(awardGrant.getLevel1MaterialId())) {
-			
-			//减量
-			AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel1MaterialId());
-			if(awardMaterial.getStockNumber()<awardGrant.getLevel1Num()) {
-				return false;
+		if(awardGrant.getLevel1MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardGrant.getLevel1MaterialIdJson();
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
+				
+				//减量
+				AwardMaterial awardMaterial=awardMaterialService.getById(jsonObject.getString("level1MaterialId"));
+				if(awardMaterial.getStockNumber()<jsonObject.getIntValue("level1Num")) {
+					return false;
+				}
+				awardMaterial.setStockNumber(awardMaterial.getStockNumber()-jsonObject.getIntValue("level1Num"));
+				awardMaterial.setLockNumber(awardMaterial.getLockNumber()+jsonObject.getIntValue("level1Num"));
+				awardMaterials.add(awardMaterial);
+				
+				AwardGrantInfo awardGrantInfo=new AwardGrantInfo();
+				awardGrantInfo.setGrantId(awardGrant.getId());
+				awardGrantInfo.setMaterialId(jsonObject.getString("level1MaterialId"));
+				awardGrantInfo.setLevel(1);
+				awardGrantInfo.setNum(jsonObject.getIntValue("level1Num"));
+				awardGrantInfo.setCreateTime(new Date());
+				awardGrantInfos.add(awardGrantInfo);
 			}
-			awardMaterial.setStockNumber(awardMaterial.getStockNumber()-awardGrant.getLevel1Num());
-			awardMaterial.setLockNumber(awardMaterial.getLockNumber()+awardGrant.getLevel1Num());
-			awardMaterials.add(awardMaterial);
-			
-//			AwardConsume awardConsume=new AwardConsume();
-//			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-//			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-//			awardConsume.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-//			awardConsume.setNumber(awardGrant.getLevel1Num());
-//			awardConsume.setType(1);
-//			awardConsume.setRemarks("我向下分发");
-//			awardConsumes.add(awardConsume);
-			
-			//增量
-//			AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel1MaterialId());
-//			if(tAwardStock==null) {
-//				tAwardStock=new AwardStock();
-//				tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-//				tAwardStock.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-//				tAwardStock.setStockNumber(0);
-//			}
-//			tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel1Num());
-//			awardStocks.add(tAwardStock);
-//			
-//			awardConsume=new AwardConsume();
-//			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-//			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-//			awardConsume.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-//			awardConsume.setNumber(awardGrant.getLevel1Num());
-//			awardConsume.setType(2);
-//			awardConsume.setRemarks("上级向我分发");
-//			awardConsumes.add(awardConsume);
-			
 		}
 		
-		if(StringUtils.isNotEmpty(awardGrant.getLevel2MaterialId())) {
-
-			//减量
-			AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel2MaterialId());
-			if(awardMaterial.getStockNumber()<awardGrant.getLevel2Num()) {
-				return false;
+		if(awardGrant.getLevel2MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardGrant.getLevel2MaterialIdJson();
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
+				
+				//减量
+				AwardMaterial awardMaterial=awardMaterialService.getById(jsonObject.getString("level2MaterialId"));
+				if(awardMaterial.getStockNumber()<jsonObject.getIntValue("level2Num")) {
+					return false;
+				}
+				awardMaterial.setStockNumber(awardMaterial.getStockNumber()-jsonObject.getIntValue("level2Num"));
+				awardMaterial.setLockNumber(awardMaterial.getLockNumber()+jsonObject.getIntValue("level2Num"));
+				awardMaterials.add(awardMaterial);
+				
+				AwardGrantInfo awardGrantInfo=new AwardGrantInfo();
+				awardGrantInfo.setGrantId(awardGrant.getId());
+				awardGrantInfo.setMaterialId(jsonObject.getString("level2MaterialId"));
+				awardGrantInfo.setLevel(2);
+				awardGrantInfo.setNum(jsonObject.getIntValue("level2Num"));
+				awardGrantInfo.setCreateTime(new Date());
+				awardGrantInfos.add(awardGrantInfo);
 			}
-			awardMaterial.setStockNumber(awardMaterial.getStockNumber()-awardGrant.getLevel2Num());
-			awardMaterial.setLockNumber(awardMaterial.getLockNumber()+awardGrant.getLevel2Num());
-			awardMaterials.add(awardMaterial);
-			
-//			AwardConsume awardConsume=new AwardConsume();
-//			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-//			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-//			awardConsume.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-//			awardConsume.setNumber(awardGrant.getLevel2Num());
-//			awardConsume.setType(1);
-//			awardConsume.setRemarks("我向下分发");
-//			awardConsumes.add(awardConsume);
-//			
-//			//增量
-//			AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel2MaterialId());
-//			if(tAwardStock==null) {
-//				tAwardStock=new AwardStock();
-//				tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-//				tAwardStock.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-//				tAwardStock.setStockNumber(0);
-//			}
-//			tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel2Num());
-//			awardStocks.add(tAwardStock);
-			
-			
-//			awardConsume=new AwardConsume();
-//			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-//			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-//			awardConsume.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-//			awardConsume.setNumber(awardGrant.getLevel2Num());
-//			awardConsume.setType(2);
-//			awardConsume.setRemarks("上级向我分发");
-//			awardConsumes.add(awardConsume);
+
 		}
 		
-		if(StringUtils.isNotEmpty(awardGrant.getLevel3MaterialId())) {
-			
-			//减量
-			AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel3MaterialId());
-			if(awardMaterial.getStockNumber()<awardGrant.getLevel3Num()) {
-				return false;
+		if(awardGrant.getLevel3MaterialIdJson()!=null) {
+			JSONArray jsonArray=awardGrant.getLevel3MaterialIdJson();
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
+				
+				//减量
+				AwardMaterial awardMaterial=awardMaterialService.getById(jsonObject.getString("level3MaterialId"));
+				if(awardMaterial.getStockNumber()<jsonObject.getIntValue("level3Num")) {
+					return false;
+				}
+				awardMaterial.setStockNumber(awardMaterial.getStockNumber()-jsonObject.getIntValue("level3Num"));
+				awardMaterial.setLockNumber(awardMaterial.getLockNumber()+jsonObject.getIntValue("level3Num"));
+				awardMaterials.add(awardMaterial);
+				
+				AwardGrantInfo awardGrantInfo=new AwardGrantInfo();
+				awardGrantInfo.setGrantId(awardGrant.getId());
+				awardGrantInfo.setMaterialId(jsonObject.getString("level3MaterialId"));
+				awardGrantInfo.setLevel(3);
+				awardGrantInfo.setNum(jsonObject.getIntValue("level3Num"));
+				awardGrantInfo.setCreateTime(new Date());
+				awardGrantInfos.add(awardGrantInfo);
 			}
-			awardMaterial.setStockNumber(awardMaterial.getStockNumber()-awardGrant.getLevel3Num());
-			awardMaterial.setLockNumber(awardMaterial.getLockNumber()+awardGrant.getLevel3Num());
-			awardMaterials.add(awardMaterial);
-
-//			AwardConsume awardConsume=new AwardConsume();
-//			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-//			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-//			awardConsume.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-//			awardConsume.setNumber(awardGrant.getLevel3Num());
-//			awardConsume.setType(1);
-//			awardConsume.setRemarks("我向下分发");
-//			awardConsumes.add(awardConsume);
-//			
-//			//增量
-//			AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel3MaterialId());
-//			if(tAwardStock==null) {
-//				tAwardStock=new AwardStock();
-//				tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-//				tAwardStock.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-//				tAwardStock.setStockNumber(0);
-//			}
-//			tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel3Num());
-//			awardStocks.add(tAwardStock);
-//			
-//			awardConsume=new AwardConsume();
-//			awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-//			awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-//			awardConsume.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-//			awardConsume.setNumber(awardGrant.getLevel3Num());
-//			awardConsume.setType(2);
-//			awardConsume.setRemarks("上级向我分发");
-//			awardConsumes.add(awardConsume);
-			
 		}
 		
-		this.save(awardGrant);
+		awardGrant=this.save(awardGrant);
+		for (AwardGrantInfo awardGrantInfo : awardGrantInfos) {
+			awardGrantInfo.setGrantId(awardGrant.getId());
+		}
+		awardGrantInfoService.save(awardGrantInfos);
 		awardMaterialService.save(awardMaterials);
-		awardStockService.save(awardStocks);
-		awardConsumeService.saveAwardConsumeLog(awardConsumes);
 		return true;
 	}
 
@@ -353,35 +349,18 @@ public class AwardGrantServiceImpl extends BaseServiceImpl<AwardGrant, String> i
 		List<AwardStock> awardStocks=new ArrayList<AwardStock>();
 		List<AwardMaterial> awardMaterials=new ArrayList<AwardMaterial>();
 		List<AwardConsume> awardConsumes=new ArrayList<AwardConsume>();
+		List<AwardGrantInfo> awardGrantInfos= awardGrantInfoService.findAwardGrantInfoByGrantId(awardGrant.getId());
 		
 		switch (status) {
 			case 0://取消,解锁锁定的库存,返回总库存中
 				if(awardGrant.getStatus()==0) {break;}
 				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel1MaterialId())) {
-					//返量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel1MaterialId());
-					
-					awardMaterial.setStockNumber(awardMaterial.getStockNumber()+awardGrant.getLevel1Num());
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel1Num());
-					awardMaterials.add(awardMaterial);
-				}
-				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel2MaterialId())) {
-					//返量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel2MaterialId());
-					
-					awardMaterial.setStockNumber(awardMaterial.getStockNumber()+awardGrant.getLevel2Num());
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel2Num());
-					awardMaterials.add(awardMaterial);
-				}
-				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel3MaterialId())) {
+				for (AwardGrantInfo awardGrantInfo : awardGrantInfos) {
 					//返量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel3MaterialId());
+					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrantInfo.getMaterialId());
 					
-					awardMaterial.setStockNumber(awardMaterial.getStockNumber()+awardGrant.getLevel3Num());
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel3Num());
+					awardMaterial.setStockNumber(awardMaterial.getStockNumber()+awardGrantInfo.getNum());
+					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrantInfo.getNum());
 					awardMaterials.add(awardMaterial);
 				}
 				
@@ -389,131 +368,47 @@ public class AwardGrantServiceImpl extends BaseServiceImpl<AwardGrant, String> i
 			case 1://已通过,解锁锁定的库存,添加到使用库存中,添加到商户的总库存中
 				//if(awardGrant.getStatus()==1) {break;}
 				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel1MaterialId())) {
-					//减量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel1MaterialId());
-					
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel1Num());
-					awardMaterial.setUseNumber(awardMaterial.getUseNumber()+awardGrant.getLevel1Num());
-					awardMaterials.add(awardMaterial);
-					
-					AwardConsume awardConsume=new AwardConsume();
-					awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-					awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-					awardConsume.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-					awardConsume.setNumber(awardGrant.getLevel1Num());
-					awardConsume.setType(1);
-					awardConsume.setRemarks("我向下配送");
-					awardConsumes.add(awardConsume);
-					
-					//增量
-					AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel1MaterialId());
-					if(tAwardStock==null) {
-						tAwardStock=new AwardStock();
-						tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-						tAwardStock.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-						tAwardStock.setStockNumber(0);
-						tAwardStock.setUseNumber(0);
-					}
-					tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel1Num());
-					awardStocks.add(tAwardStock);
-					
-					awardConsume=new AwardConsume();
-					awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-					awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-					awardConsume.setAwardMaterialId(awardGrant.getLevel1MaterialId());
-					awardConsume.setNumber(awardGrant.getLevel1Num());
-					awardConsume.setType(2);
-					awardConsume.setRemarks("上级向我配送");
-					awardConsumes.add(awardConsume);
-					
-				}
-				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel2MaterialId())) {
-					//减量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel2MaterialId());
-					
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel2Num());
-					awardMaterial.setUseNumber(awardMaterial.getUseNumber()+awardGrant.getLevel2Num());
-					awardMaterials.add(awardMaterial);
-					
-					
-					AwardConsume awardConsume=new AwardConsume();
-					awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-					awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-					awardConsume.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-					awardConsume.setNumber(awardGrant.getLevel2Num());
-					awardConsume.setType(1);
-					awardConsume.setRemarks("我向下配送");
-					awardConsumes.add(awardConsume);
-					
-					//增量
-					AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel2MaterialId());
-					if(tAwardStock==null) {
-						tAwardStock=new AwardStock();
-						tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-						tAwardStock.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-						tAwardStock.setStockNumber(0);
-						tAwardStock.setUseNumber(0);
-					}
-					tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel2Num());
-					awardStocks.add(tAwardStock);
-					
-					awardConsume=new AwardConsume();
-					awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
-					awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-					awardConsume.setAwardMaterialId(awardGrant.getLevel2MaterialId());
-					awardConsume.setNumber(awardGrant.getLevel2Num());
-					awardConsume.setType(2);
-					awardConsume.setRemarks("上级向我配送");
-					awardConsumes.add(awardConsume);
-					
-					
-				}
-				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel3MaterialId())) {
+
+				for (AwardGrantInfo awardGrantInfo : awardGrantInfos) {
 					//减量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel3MaterialId());
+					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrantInfo.getMaterialId());
 					
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel3Num());
-					awardMaterial.setUseNumber(awardMaterial.getUseNumber()+awardGrant.getLevel3Num());
+					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrantInfo.getNum());
+					awardMaterial.setUseNumber(awardMaterial.getUseNumber()+awardGrantInfo.getNum());
 					awardMaterials.add(awardMaterial);
 					
-					
 					AwardConsume awardConsume=new AwardConsume();
 					awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
 					awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-					awardConsume.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-					awardConsume.setNumber(awardGrant.getLevel3Num());
+					awardConsume.setAwardMaterialId(awardGrantInfo.getMaterialId());
+					awardConsume.setNumber(awardGrantInfo.getNum());
 					awardConsume.setType(1);
 					awardConsume.setRemarks("我向下配送");
 					awardConsumes.add(awardConsume);
 					
 					//增量
-					AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrant.getLevel3MaterialId());
+					AwardStock tAwardStock=awardStockService.getAwardStockByMaterialId(awardGrant.getToMerchantId(), awardGrantInfo.getMaterialId());
 					if(tAwardStock==null) {
 						tAwardStock=new AwardStock();
 						tAwardStock.setMerchantId(awardGrant.getToMerchantId());
-						tAwardStock.setAwardMaterialId(awardGrant.getLevel3MaterialId());
+						tAwardStock.setAwardMaterialId(awardGrantInfo.getMaterialId());
 						tAwardStock.setStockNumber(0);
 						tAwardStock.setUseNumber(0);
 					}
-					tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrant.getLevel3Num());
+					tAwardStock.setStockNumber(tAwardStock.getStockNumber()+awardGrantInfo.getNum());
 					awardStocks.add(tAwardStock);
 					
 					awardConsume=new AwardConsume();
 					awardConsume.setFromMerchantId(awardGrant.getFromMerchantId());
 					awardConsume.setToMerchantId(awardGrant.getToMerchantId());
-					awardConsume.setAwardMaterialId(awardGrant.getLevel3MaterialId());
-					awardConsume.setNumber(awardGrant.getLevel3Num());
+					awardConsume.setAwardMaterialId(awardGrantInfo.getMaterialId());
+					awardConsume.setNumber(awardGrantInfo.getNum());
 					awardConsume.setType(2);
 					awardConsume.setRemarks("上级向我配送");
 					awardConsumes.add(awardConsume);
 					
 				}
 				
-				
-				
 				break;
 			case 2://审核中
 				if(awardGrant.getStatus()==1) {break;}
@@ -522,30 +417,12 @@ public class AwardGrantServiceImpl extends BaseServiceImpl<AwardGrant, String> i
 			case 3://审核不通过,解锁锁定的库存,添加到使用库存中
 				if(awardGrant.getStatus()==3) {break;}
 				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel1MaterialId())) {
-					//返量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel1MaterialId());
-					
-					awardMaterial.setStockNumber(awardMaterial.getStockNumber()+awardGrant.getLevel1Num());
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel1Num());
-					awardMaterials.add(awardMaterial);
-				}
-				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel2MaterialId())) {
-					//返量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel2MaterialId());
-					
-					awardMaterial.setStockNumber(awardMaterial.getStockNumber()+awardGrant.getLevel2Num());
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel2Num());
-					awardMaterials.add(awardMaterial);
-				}
-				
-				if(StringUtils.isNotEmpty(awardGrant.getLevel3MaterialId())) {
+				for (AwardGrantInfo awardGrantInfo : awardGrantInfos) {
 					//返量
-					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrant.getLevel3MaterialId());
+					AwardMaterial awardMaterial=awardMaterialService.getById(awardGrantInfo.getMaterialId());
 					
-					awardMaterial.setStockNumber(awardMaterial.getStockNumber()+awardGrant.getLevel3Num());
-					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrant.getLevel3Num());
+					awardMaterial.setStockNumber(awardMaterial.getStockNumber()+awardGrantInfo.getNum());
+					awardMaterial.setLockNumber(awardMaterial.getLockNumber()-awardGrantInfo.getNum());
 					awardMaterials.add(awardMaterial);
 				}
 				

+ 49 - 0
src/main/java/com/ssj/service/sys/award/service/impl/AwardGrantServiceInfoImpl.java

@@ -0,0 +1,49 @@
+package com.ssj.service.sys.award.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.ssj.bean.sys.award.domain.AwardGrantInfo;
+import com.ssj.dao.sys.award.dao.AwardGrantInfoDao;
+import com.ssj.dao.sys.award.dao.AwardQueryDao;
+import com.ssj.framework.core.common.service.BaseServiceImpl;
+import com.ssj.service.sys.award.service.AwardGrantInfoService;
+
+@Service
+@Transactional
+public class AwardGrantServiceInfoImpl extends BaseServiceImpl<AwardGrantInfo, String> implements AwardGrantInfoService {
+	
+	@Autowired
+	private AwardGrantInfoDao  awardGrantInfoDao;
+
+	@Autowired
+	private AwardQueryDao  queryDao;
+	
+	@Override
+	public PagingAndSortingRepository<AwardGrantInfo, String> getDao() {
+		return awardGrantInfoDao;
+	}
+
+	@Override
+	public List<AwardGrantInfo> findAwardGrantInfoByGrantId(String grantId) {
+		return awardGrantInfoDao.findAwardGrantInfoByGrantId(grantId);
+	}
+
+	@Override
+	public Page<Map<String, Object>> findAwardGrantInfoByGrantId(Map<String, Object> searchParams, Pageable pageable) {
+		return queryDao.findAwardGrantInfoByGrantId(searchParams, pageable);
+	}
+
+
+
+
+
+	
+}

+ 40 - 110
src/main/java/com/ssj/service/sys/award/service/impl/AwardSncodeServiceImpl.java

@@ -1,6 +1,24 @@
 package com.ssj.service.sys.award.service.impl;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.alibaba.fastjson.JSONObject;
 import com.ssj.bean.sys.award.domain.AwardActivity;
+import com.ssj.bean.sys.award.domain.AwardActivityInfo;
 import com.ssj.bean.sys.award.domain.AwardConsume;
 import com.ssj.bean.sys.award.domain.AwardSncode;
 import com.ssj.bean.sys.award.domain.AwardStock;
@@ -11,6 +29,7 @@ import com.ssj.framework.basic.utils.DateHelper;
 import com.ssj.framework.core.common.service.BaseServiceImpl;
 import com.ssj.framework.core.util.RedisUtil;
 import com.ssj.service.conch.conch.service.HomeworkRankingService;
+import com.ssj.service.sys.award.service.AwardActivityInfoService;
 import com.ssj.service.sys.award.service.AwardActivityService;
 import com.ssj.service.sys.award.service.AwardConsumeService;
 import com.ssj.service.sys.award.service.AwardSncodeService;
@@ -18,17 +37,6 @@ import com.ssj.service.sys.award.service.AwardStockService;
 import com.ssj.service.sys.fx.service.MerchantService;
 import com.ssj.service.task.SyncCreateQrSnCodeTask;
 import com.ssj.taskthread.ThreadPool;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.repository.PagingAndSortingRepository;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
 
 @Service
 @Transactional
@@ -58,6 +66,9 @@ public class AwardSncodeServiceImpl extends BaseServiceImpl<AwardSncode, String>
 	private MerchantService  merchantService;
 	
 	@Autowired
+	private AwardActivityInfoService  awardActivityInfoService;
+	
+	@Autowired
     private RedisUtil redisUtil;
 	
     public static String FALSE_SNCODE="FALSE_SNCODE_";
@@ -92,54 +103,23 @@ public class AwardSncodeServiceImpl extends BaseServiceImpl<AwardSncode, String>
 		if(aAwardSncodes!=null && aAwardSncodes.size()>0) {
 			return ;
 		}
-		
+		List<AwardActivityInfo> awardActivityInfos=awardActivityInfoService.findAwardActivityInfoByActivityId(awardActivity.getId());
 		Merchant merchant= merchantService.getById(awardActivity.getMerchantId());
 		List<AwardSncode> awardSncodes=new ArrayList<AwardSncode>();
 		AwardSncode awardSncode=null;
 		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel1MaterialId()) && awardActivity.getLevel1Num()>0) {
-			for (int i = 1; i <= awardActivity.getLevel1Num(); i++) {
-				awardSncode=new AwardSncode();
-				awardSncode.setAwardActivityId(awardActivity.getId());
-				awardSncode.setAwardMaterialId(awardActivity.getLevel1MaterialId());
-				awardSncode.setSnCode(DateHelper.getOrderNo(5)+i);
-				awardSncode.setLibId(merchant.getLibId());
-				//awardSncode.setSnImg(createQrCode(awardSncode.getSnCode()));
-				awardSncode.setStatus(0);
-				awardSncode.setCreateTime(new Date());
-				awardSncodes.add(awardSncode);
-				
-			}
-		}
-		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel2MaterialId()) && awardActivity.getLevel2Num()>0) {
-			for (int i = 1; i <= awardActivity.getLevel2Num(); i++) {
-				awardSncode=new AwardSncode();
-				awardSncode.setAwardActivityId(awardActivity.getId());
-				awardSncode.setAwardMaterialId(awardActivity.getLevel2MaterialId());
-				awardSncode.setSnCode(DateHelper.getOrderNo(5)+i);
-				awardSncode.setLibId(merchant.getLibId());
-				//awardSncode.setSnImg(createQrCode(awardSncode.getSnCode()));
-				awardSncode.setStatus(0);
-				awardSncode.setCreateTime(new Date());
-				awardSncodes.add(awardSncode);
-			}
-			
+		for (AwardActivityInfo awardActivityInfo : awardActivityInfos) {
+			awardSncode=new AwardSncode();
+			awardSncode.setAwardActivityId(awardActivity.getId());
+			awardSncode.setAwardMaterialId(awardActivityInfo.getMaterialId());
+			awardSncode.setSnCode(DateHelper.getOrderNo(5)+(awardActivityInfos.indexOf(awardActivityInfo)+1));
+			awardSncode.setLibId(merchant.getLibId());
+			//awardSncode.setSnImg(createQrCode(awardSncode.getSnCode()));
+			awardSncode.setStatus(0);
+			awardSncode.setCreateTime(new Date());
+			awardSncodes.add(awardSncode);
 		}
 		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel3MaterialId()) && awardActivity.getLevel3Num()>0) {
-			for (int i = 1; i <= awardActivity.getLevel3Num(); i++) {
-				awardSncode=new AwardSncode();
-				awardSncode.setAwardActivityId(awardActivity.getId());
-				awardSncode.setAwardMaterialId(awardActivity.getLevel3MaterialId());
-				awardSncode.setSnCode(DateHelper.getOrderNo(5)+i);
-				awardSncode.setLibId(merchant.getLibId());
-				//awardSncode.setSnImg(createQrCode(awardSncode.getSnCode()));
-				awardSncode.setStatus(0);
-				awardSncode.setCreateTime(new Date());
-				awardSncodes.add(awardSncode);
-			}
-		}
 		//保存兑换码
 		this.save(awardSncodes);
 		//加载兑换码到redis
@@ -150,87 +130,37 @@ public class AwardSncodeServiceImpl extends BaseServiceImpl<AwardSncode, String>
 	
 	@Override
 	public synchronized void cleanAwardSncodeByCode(AwardActivity awardActivity) {
-
 		List<AwardStock> awardStocks=new ArrayList<AwardStock>();
 		List<AwardConsume> awardConsumes=new ArrayList<AwardConsume>();
 		List<AwardSncode> statusAwardSncodes=new ArrayList<AwardSncode>();
 		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel1MaterialId()) && awardActivity.getLevel1Num()>0) {
-			List<AwardSncode> awardSncodes=this.findAwardSncodeByAwardMaterialId(awardActivity.getId(), awardActivity.getLevel1MaterialId(), 0);
-			if(awardSncodes!=null && awardSncodes.size()>0) {
-			
-				for (AwardSncode awardSncode : awardSncodes) {
-					awardSncode.setStatus(5);
-					awardSncode.setUpdateTime(new Date());
-					statusAwardSncodes.add(awardSncode);
-				}
-				
-				
-				AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), awardActivity.getLevel1MaterialId());
-				awardStock.setStockNumber(awardStock.getStockNumber()+awardSncodes.size());
-				awardStocks.add(awardStock);
-
-				AwardConsume awardConsume=new AwardConsume();
-				awardConsume.setFromMerchantId(awardActivity.getMerchantId());
-				awardConsume.setToMerchantId(null);
-				awardConsume.setAwardMaterialId(awardActivity.getLevel1MaterialId());
-				awardConsume.setNumber(awardSncodes.size());
-				awardConsume.setType(5);
-				awardConsume.setRemarks("取消活动返回库存量");
-				awardConsumes.add(awardConsume);
-			}
-		}
+		List<AwardActivityInfo> awardActivityInfos=awardActivityInfoService.findAwardActivityInfoByActivityId(awardActivity.getId());
 		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel2MaterialId()) && awardActivity.getLevel2Num()>0) {
-			List<AwardSncode> awardSncodes=this.findAwardSncodeByAwardMaterialId(awardActivity.getId(), awardActivity.getLevel2MaterialId(), 0);
+		for (AwardActivityInfo awardActivityInfo : awardActivityInfos) {
+			
+			List<AwardSncode> awardSncodes=this.findAwardSncodeByAwardMaterialId(awardActivity.getId(), awardActivityInfo.getMaterialId(), 0);
 			if(awardSncodes!=null && awardSncodes.size()>0) {
-				
 				for (AwardSncode awardSncode : awardSncodes) {
 					awardSncode.setStatus(5);
 					awardSncode.setUpdateTime(new Date());
 					statusAwardSncodes.add(awardSncode);
 				}
-				
-				AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), awardActivity.getLevel2MaterialId());
+				AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), awardActivityInfo.getMaterialId());
 				awardStock.setStockNumber(awardStock.getStockNumber()+awardSncodes.size());
 				awardStocks.add(awardStock);
-				
 
 				AwardConsume awardConsume=new AwardConsume();
 				awardConsume.setFromMerchantId(awardActivity.getMerchantId());
 				awardConsume.setToMerchantId(null);
-				awardConsume.setAwardMaterialId(awardActivity.getLevel2MaterialId());
+				awardConsume.setAwardMaterialId(awardActivityInfo.getMaterialId());
 				awardConsume.setNumber(awardSncodes.size());
 				awardConsume.setType(5);
 				awardConsume.setRemarks("取消活动返回库存量");
 				awardConsumes.add(awardConsume);
-			}
-		}
-		
-		if(StringUtils.isNotEmpty(awardActivity.getLevel3MaterialId()) && awardActivity.getLevel3Num()>0) {
-			List<AwardSncode> awardSncodes=this.findAwardSncodeByAwardMaterialId(awardActivity.getId(), awardActivity.getLevel3MaterialId(), 0);
-			if(awardSncodes!=null && awardSncodes.size()>0) {
-				
-				for (AwardSncode awardSncode : awardSncodes) {
-					awardSncode.setStatus(5);
-					awardSncode.setUpdateTime(new Date());
-					statusAwardSncodes.add(awardSncode);
-				}
 				
-				AwardStock awardStock=awardStockService.getAwardStockByMaterialId(awardActivity.getMerchantId(), awardActivity.getLevel3MaterialId());
-				awardStock.setStockNumber(awardStock.getStockNumber()+awardSncodes.size());
-				awardStocks.add(awardStock);
-				
-				AwardConsume awardConsume=new AwardConsume();
-				awardConsume.setFromMerchantId(awardActivity.getMerchantId());
-				awardConsume.setToMerchantId(null);
-				awardConsume.setAwardMaterialId(awardActivity.getLevel3MaterialId());
-				awardConsume.setNumber(awardSncodes.size());
-				awardConsume.setType(5);
-				awardConsume.setRemarks("取消活动返回库存量");
-				awardConsumes.add(awardConsume);
 			}
 		}
+		
 		this.save(statusAwardSncodes);
 		awardStockService.save(awardStocks);
 		awardConsumeService.saveAwardConsumeLog(awardConsumes);

+ 1 - 0
src/main/java/com/ssj/service/sys/fx/service/impl/MerchantServiceImpl.java

@@ -1450,6 +1450,7 @@ public class MerchantServiceImpl extends BaseServiceImpl<Merchant, String> imple
 				oldmerchant.setHardwareService(merchant.getHardwareService());
 				oldmerchant.setHardwarePrice(merchant.getHardwarePrice());
 				oldmerchant.setAddress(merchant.getAddress());
+				oldmerchant.setMealType(merchant.getMealType());
 				oldmerchant.setLibServiceMonth(merchant.getLibServiceMonth());
 				if(StringUtils.isNotEmpty(summaryTime)) {
 					oldmerchant.setCurSummaryTime(summaryTime!=null ? DateHelper.parseDate(summaryTime, "yyyy-MM-dd"): null);

+ 179 - 31
src/main/java/com/ssj/sys/controller/AwardController.java

@@ -1,5 +1,25 @@
 package com.ssj.sys.controller;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpSession;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.ssj.bean.common.framework.core.domain.Response;
 import com.ssj.bean.sys.award.domain.AwardActivity;
 import com.ssj.bean.sys.award.domain.AwardConsume;
@@ -9,22 +29,18 @@ import com.ssj.bean.sys.fx.domain.Merchant;
 import com.ssj.bean.sys.role.domain.Admin;
 import com.ssj.framework.basic.common.bean.SplitPage;
 import com.ssj.framework.core.common.controller.BaseController;
-import com.ssj.service.sys.award.service.*;
+import com.ssj.service.sys.award.service.AwardActivityInfoService;
+import com.ssj.service.sys.award.service.AwardActivityLogService;
+import com.ssj.service.sys.award.service.AwardActivityService;
+import com.ssj.service.sys.award.service.AwardConsumeService;
+import com.ssj.service.sys.award.service.AwardGrantInfoService;
+import com.ssj.service.sys.award.service.AwardGrantService;
+import com.ssj.service.sys.award.service.AwardMaterialService;
+import com.ssj.service.sys.award.service.AwardSncodeService;
+import com.ssj.service.sys.award.service.AwardStockService;
 import com.ssj.service.sys.fx.service.MerchantService;
 import com.ssj.sys.util.thirdparty.excel.CustomizeToExcel;
 import com.ssj.sys.util.thirdparty.excel.ExcelColumn;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpSession;
-import java.util.*;
 
 /**
  *    新版的抽奖后台管理功能
@@ -46,11 +62,17 @@ public class AwardController extends BaseController {
     private AwardActivityLogService awardActivityLogService;
     
     @Autowired
+    private AwardActivityInfoService awardActivityInfoService;
+    
+    @Autowired
     private AwardStockService awardStockService;
     
     @Autowired
     private AwardGrantService awardGrantService;
     
+    @Autowired
+    private AwardGrantInfoService awardGrantInfoService;
+    
 	@Autowired
 	private MerchantService merchantService;
 	
@@ -402,6 +424,42 @@ public class AwardController extends BaseController {
     }
 	
 	
+	@RequestMapping("/grant/info")
+    public String grantInfo(Model model,
+			            @RequestParam(required = false, defaultValue = "30") int pageSize,
+			            @RequestParam(required = false, defaultValue = "1") int pageNo) throws Exception {
+		
+		HttpSession session = request.getSession();
+		Admin admin =(Admin) session.getAttribute("admin");
+		Merchant curMerchant=merchantService.getMerchantByPosCode(admin.getLoginName());
+		
+		//如果是SSJ_FX管理层的商户,直接查指点下级的商户列表。
+		//如果不是SSJ_FX管理层的商户,直接查出它的所有的级的商户列表。
+	 	Map<String, Object> params = new HashMap<String, Object>();
+	 	
+        params.put("grantId", request.getParameter("grantId")==null?"":request.getParameter("grantId"));
+        params.put("level", request.getParameter("level")==null?"":request.getParameter("level"));
+       
+        
+        SplitPage sp = new SplitPage();
+        sp.setAction(request.getRequestURI());
+        sp.setPageNo(pageNo);
+        sp.setPageSize(pageSize);
+        sp.setParams(params);
+        Page<Map<String,Object>> page = awardGrantInfoService.findAwardGrantInfoByGrantId(params, initPage(pageNo, pageSize));
+        List<Map<String,Object>> list=page.getContent();
+       
+        sp.setRowCnt((int) page.getTotalElements());
+        model.addAttribute("curMerchant",curMerchant);
+        model.addAttribute("list",list);
+        model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
+        model.addAttribute("page", sp);
+        model.addAttribute("search", params);
+        return "sys/award/grant/info";
+    }
+	
+	
+	
 	
 	//奖品的发放新增,编辑
 	@RequestMapping("/grant/edit")
@@ -443,7 +501,7 @@ public class AwardController extends BaseController {
 	//奖品发放新增,编辑,保存
 	@RequestMapping("/grant/save")
 	@ResponseBody
-    public Response grantSave(Model model,AwardGrant awardGrant)throws Exception {
+    public Response grantSave(Model model,AwardGrant awardGrant,String level1MaterialIds,String level2MaterialIds,String level3MaterialIds)throws Exception {
 		Response response = new  Response();
 		
 		HttpSession session = request.getSession();
@@ -453,28 +511,52 @@ public class AwardController extends BaseController {
 		awardGrant.setFromMerchantId(curMerchant.getId());
 		awardGrant.setCreateTime(new Date());
 		
-		if(StringUtils.isNotEmpty(awardGrant.getLevel1MaterialId())) {
-			Integer stock=awardStockService.getStockNumByMerchantIdAndLevelMaterialId(curMerchant.getId(), awardGrant.getLevel1MaterialId());
-			if(stock<awardGrant.getLevel1Num()) {
-				response.failure("您的一等奖库存不足。");
-				return response;
+		if(StringUtils.isNotEmpty(level1MaterialIds)) {
+			JSONArray jsonArray=JSONArray.parseArray(level1MaterialIds);
+			Integer level1Num=0;
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
+				Integer stock=awardStockService.getStockNumByMerchantIdAndLevelMaterialId(curMerchant.getId(), jsonObject.getString("level1MaterialId"));
+				if(stock<jsonObject.getIntValue("level1Num")) {
+					response.failure("您的一等奖库存不足。");
+					return response;
+				}
+				level1Num=level1Num+jsonObject.getIntValue("level1Num");
 			}
+			awardGrant.setLevel1Num(level1Num);
+			awardGrant.setLevel1MaterialIdJson(jsonArray);
 		}
 		
-		if(StringUtils.isNotEmpty(awardGrant.getLevel2MaterialId())) {
-			Integer stock=awardStockService.getStockNumByMerchantIdAndLevelMaterialId(curMerchant.getId(), awardGrant.getLevel2MaterialId());
-			if(stock<awardGrant.getLevel2Num()) {
-				response.failure("您的二等奖库存不足。");
-				return response;
+		if(StringUtils.isNotEmpty(level2MaterialIds)) {
+			JSONArray jsonArray=JSONArray.parseArray(level2MaterialIds);
+			Integer level2Num=0;
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
+				Integer stock=awardStockService.getStockNumByMerchantIdAndLevelMaterialId(curMerchant.getId(), jsonObject.getString("level2MaterialId"));
+				if(stock<jsonObject.getIntValue("level2Num")) {
+					response.failure("您的二等奖库存不足。");
+					return response;
+				}
+				level2Num=level2Num+jsonObject.getIntValue("level2Num");
 			}
+			awardGrant.setLevel2Num(level2Num);
+			awardGrant.setLevel2MaterialIdJson(jsonArray);
 		}
 		
-		if(StringUtils.isNotEmpty(awardGrant.getLevel3MaterialId())) {
-			Integer stock=awardStockService.getStockNumByMerchantIdAndLevelMaterialId(curMerchant.getId(), awardGrant.getLevel3MaterialId());
-			if(stock<awardGrant.getLevel3Num()) {
-				response.failure("您的三等奖库存不足。");
-				return response;
+		if(StringUtils.isNotEmpty(level3MaterialIds)) {
+			JSONArray jsonArray=JSONArray.parseArray(level3MaterialIds);
+			Integer level3Num=0;
+			for (Object object : jsonArray) {
+				JSONObject jsonObject=(JSONObject)object;
+				Integer stock=awardStockService.getStockNumByMerchantIdAndLevelMaterialId(curMerchant.getId(), jsonObject.getString("level3MaterialId"));
+				if(stock<jsonObject.getIntValue("level3Num")) {
+					response.failure("您的三等奖库存不足。");
+					return response;
+				}
+				level3Num=level3Num+jsonObject.getIntValue("level3Num");
 			}
+			awardGrant.setLevel3Num(level3Num);
+			awardGrant.setLevel3MaterialIdJson(jsonArray);
 		}
 		
 		boolean is=true;
@@ -619,6 +701,41 @@ public class AwardController extends BaseController {
     }
 	
 	
+	@RequestMapping("/activity/info")
+    public String activityInfo(Model model,
+			            @RequestParam(required = false, defaultValue = "30") int pageSize,
+			            @RequestParam(required = false, defaultValue = "1") int pageNo) throws Exception {
+		
+		HttpSession session = request.getSession();
+		Admin admin =(Admin) session.getAttribute("admin");
+		Merchant curMerchant=merchantService.getMerchantByPosCode(admin.getLoginName());
+		
+		//如果是SSJ_FX管理层的商户,直接查指点下级的商户列表。
+		//如果不是SSJ_FX管理层的商户,直接查出它的所有的级的商户列表。
+	 	Map<String, Object> params = new HashMap<String, Object>();
+	 	
+        params.put("activityId", request.getParameter("activityId")==null?"":request.getParameter("activityId"));
+        params.put("level", request.getParameter("level")==null?"":request.getParameter("level"));
+       
+        
+        SplitPage sp = new SplitPage();
+        sp.setAction(request.getRequestURI());
+        sp.setPageNo(pageNo);
+        sp.setPageSize(pageSize);
+        sp.setParams(params);
+        Page<Map<String,Object>> page = awardActivityInfoService.findAwardActivityInfoByActivityId(params, initPage(pageNo, pageSize));
+        List<Map<String,Object>> list=page.getContent();
+       
+        sp.setRowCnt((int) page.getTotalElements());
+        model.addAttribute("curMerchant",curMerchant);
+        model.addAttribute("list",list);
+        model.addAttribute("listNavigatHtml", sp.getSysPaginHtml());
+        model.addAttribute("page", sp);
+        model.addAttribute("search", params);
+        return "sys/award/activity/info";
+    }
+	
+	
 	//我的活动列表
 		@RequestMapping("/activity/log")
 	    public String activityLog(Model model,
@@ -697,7 +814,7 @@ public class AwardController extends BaseController {
 	//活动新增,编辑,保存
 	@RequestMapping("/activity/save")
 	@ResponseBody
-    public Response activitySave(Model model,AwardActivity awardActivity) throws Exception {
+    public Response activitySave(Model model,AwardActivity awardActivity,String level1MaterialIds,String level2MaterialIds,String level3MaterialIds) throws Exception {
 		 Response response = new  Response();
 		 AwardActivity statusAwardActivity=awardActivityService.getAwardActivityByMerchantId(awardActivity.getMerchantId(),1);
 		 if(statusAwardActivity!=null) {
@@ -712,7 +829,38 @@ public class AwardController extends BaseController {
 		 if(StringUtils.isEmpty(awardActivity.getId())) {
 			 awardActivity.setStatus(1);
 			 awardActivity.setCreateTime(new Date());
-		
+			 
+			 if(StringUtils.isNotEmpty(level1MaterialIds)) {
+				 JSONArray jsonArray=JSONArray.parseArray(level1MaterialIds);
+				 Integer level1Num=0;
+				 for (Object object : jsonArray) {
+					JSONObject jsonObject=(JSONObject)object;
+					level1Num=level1Num+jsonObject.getIntValue("level1Num");
+				 }
+				 awardActivity.setLevel1Num(level1Num);
+				 awardActivity.setLevel1MaterialIdJson(jsonArray);
+			 }
+			 if(StringUtils.isNotEmpty(level2MaterialIds)) {
+				 JSONArray jsonArray=JSONArray.parseArray(level2MaterialIds);
+				 Integer level2Num=0;
+				 for (Object object : jsonArray) {
+					JSONObject jsonObject=(JSONObject)object;
+					level2Num=level2Num+jsonObject.getIntValue("level2Num");
+				 }
+				 awardActivity.setLevel2Num(level2Num);
+				 awardActivity.setLevel2MaterialIdJson(jsonArray);
+			 }
+			 if(StringUtils.isNotEmpty(level3MaterialIds)) {
+				 JSONArray jsonArray=JSONArray.parseArray(level3MaterialIds);
+				 Integer level3Num=0;
+				 for (Object object : jsonArray) {
+					JSONObject jsonObject=(JSONObject)object;
+					level3Num=level3Num+jsonObject.getIntValue("level3Num");
+				 }
+				 awardActivity.setLevel3Num(level3Num);
+				 awardActivity.setLevel3MaterialIdJson(jsonArray);
+			 }
+			 
 			 boolean is=awardActivityService.createAwardActivityAndAwardStock(awardActivity);
 			 if(is) {
 				response.success("成功");

+ 108 - 36
src/main/resources/templates/sys/award/activity/edit.html

@@ -97,40 +97,60 @@ dtext{
 			
 			<li>
 				<label>一等奖<b>*</b></label>
-				<div class="vocation" style="margin-right: 5px; width: 145px">
-					<select name="level1MaterialId" id="level1MaterialId" class="select1" > 
+				<div class="vocation" style="margin-right: 5px; width: 200px">
+					<select name="level1MaterialId" id="level1MaterialId" class="select1 level1MaterialId" > 
 						<option value="">选择奖品</option>
-						<option th:each="item:${level1Materials}" th:selected="${item.id eq awardActivity.level1MaterialId  ? true : false}"  th:value="${item.id}" th:text="${item.name}"></option>
+						<option th:each="item:${level1Materials}"   th:value="${item.id}" th:text="${item.name}"></option>
 					</select>
 				</div>
 				<input onChange="refreshRate()" style="width: 95px;" type="number" id="level1Num" class="dfinput fl" name="level1Num" th:value="${awardActivity.level1Num!=null ? awardActivity.level1Num : 0}"/>
-				<text>&nbsp;库存:<t id="level1_num" style="color:red">0</t>&nbsp;中奖率:<t id="level1_num_rate" style="color:red">0%</t></text>
+				<text>
+					&nbsp;
+					库存:<t id="level1_num" style="color:red">0</t>
+<!-- 					&nbsp; -->
+<!-- 					中奖率:<t id="level1_num_rate" style="color:red">0%</t> -->
+				</text>
 			</li>
 			
 			<li>
 				<label>二等奖<b></b></label>
-				<div class="vocation" style="margin-right: 5px; width: 145px">
-					<select name="level2MaterialId" id="level2MaterialId" class="select1" >
+				<div class="vocation" style="margin-right: 5px; width: 200px">
+					<select name="level2MaterialId" id="level2MaterialId" class="select1 level2MaterialId" >
 						<option value="">选择奖品</option> 
-						<option th:each="item:${level2Materials}" th:selected="${item.id eq awardActivity.level2MaterialId  ? true : false}"  th:value="${item.id}" th:text="${item.name}"></option>
+						<option th:each="item:${level2Materials}"  th:value="${item.id}" th:text="${item.name}"></option>
 					</select>
 				</div>
 				<input onChange="refreshRate()" style="width: 95px;" type="number" id="level2Num" class="dfinput fl" name="level2Num" th:value="${awardActivity.level2Num!=null ? awardActivity.level2Num : 0}"/>
-				<text>&nbsp;库存:<t id="level2_num" style="color:red">0</t>&nbsp;中奖率:<t id="level2_num_rate" style="color:red">0%</t></text>
+				<text>
+					&nbsp;
+					库存:<t id="level2_num" style="color:red">0</t>
+<!-- 					&nbsp; -->
+<!-- 					中奖率:<t id="level2_num_rate" style="color:red">0%</t> -->
+				</text>
 			</li>
 			
+			<div id="level3MaterialDiv">
+				<li>
+					<label>三等奖<b></b></label>
+					<div class="vocation" style="margin-right: 5px; width: 200px">
+						<select name="level3MaterialId"  class="select1 level3MaterialId" > 
+							<option value="">选择奖品</option>
+							<option th:each="item:${level3Materials}"  th:value="${item.id}" th:text="${item.name}"></option>
+						</select>
+					</div>
+					<input onChange="refreshRate()" style="width: 95px;" type="number" class="dfinput fl level3Num" name="level3Num" th:value="${awardActivity.level3Num!=null ? awardActivity.level3Num : 0}"/>
+					<text>
+						&nbsp;
+						库存:<t class="level_num" style="color:red">0</t>
+					</text>
+				</li>
+				
+				<li>
+					<label>&nbsp;<b></b></label>
+					<text style="font-weight: bold;cursor: pointer;color: #056dae;font-size: 14px;" id="addLevel3MaterialHtml">+添加奖品</text>
+				</li>
+			</div>
 			
-			<li>
-				<label>三等奖<b></b></label>
-				<div class="vocation" style="margin-right: 5px; width: 145px">
-					<select name="level3MaterialId" id="level3MaterialId" class="select1" > 
-						<option value="">选择奖品</option>
-						<option th:each="item:${level3Materials}" th:selected="${item.id eq awardActivity.level3MaterialId  ? true : false}"  th:value="${item.id}" th:text="${item.name}"></option>
-					</select>
-				</div>
-				<input onChange="refreshRate()" style="width: 95px;" type="number" id="level3Num" class="dfinput fl" name="level3Num" th:value="${awardActivity.level3Num!=null ? awardActivity.level3Num : 0}"/>
-				<text>&nbsp;库存:<t id="level3_num" style="color:red">0</t>&nbsp;中奖率:<t id="level3_num_rate" style="color:red">0%</t></text>
-			</li>
 			
 			<li>
 				<label>活动备注:<b></b></label>
@@ -153,6 +173,25 @@ dtext{
 			
 </div>
 
+<div id="level3MaterialHtml" style="display: none" >
+	<li>
+		<label>三等奖<b></b></label>
+		<div class="vocation" style="margin-right: 5px; width: 200px">
+			<select name="level3MaterialId"  class="select1 level3MaterialId" > 
+				<option value="">选择奖品</option>
+				<option th:each="item:${level3Materials}" th:value="${item.id}" th:text="${item.name}"></option>
+			</select>
+		</div>
+		<input onChange="refreshRate()" style="width: 95px;" type="number" class="dfinput fl level3Num" name="level3Num" th:value="${awardActivity.level3Num!=null ? awardActivity.level3Num : 0}"/>
+		<text>
+			&nbsp;
+			库存:<t class="level_num" style="color:red">0</t>
+			&nbsp;
+			<t class="level_delete" style="color:red;cursor: pointer;">-删除-</t>
+		</text>
+	</li>
+</div>
+
 </body>
 <script type="text/javascript">
 var id='[[${awardActivity.id}]]';
@@ -173,11 +212,15 @@ function save(){
 		return
 	}
 	
-	if($("#level1MaterialId").val()=='' && $("#level2MaterialId").val()=='' && $("#level3MaterialId").val()=='' ){
+	if($("#level1MaterialId").val()==''  ){
 		parent.layer.msg("请选择奖品",{icon:11});
 		return
 	}
 	
+	var level1MaterialJson=[];
+	var level2MaterialJson=[];
+	var level3MaterialJson=[];
+	
 	if($("#level1MaterialId").val()!=''){
 		if($("#level1Num").val()<=0){
 			parent.layer.msg("一等奖数量不能少等于0",{icon:11});
@@ -187,6 +230,7 @@ function save(){
 			parent.layer.msg("一等奖数量不能大于库存量",{icon:11});
 			return
 		}
+		level1MaterialJson.push({'level1MaterialId':$("#level1MaterialId").val(),'level1Num':$("#level1Num").val()});
 	}
 	
 	if($("#level2MaterialId").val()!=''){
@@ -198,19 +242,39 @@ function save(){
 			parent.layer.msg("二等奖数量不能大于库存量",{icon:11});
 			return
 		}
+		level2MaterialJson.push({'level2MaterialId':$("#level2MaterialId").val(),'level2Num':$("#level2Num").val()});
 	}
 	
-	if($("#level3MaterialId").val()!=''){
-		if($("#level3Num").val()<=0){
-			parent.layer.msg("三等奖数量不能少等于0",{icon:11});
-			return
-		}
-		if(parseInt($("#level3_num").html())<$("#level3Num").val()){
-			parent.layer.msg("三等奖数量不能大于库存量",{icon:11});
-			return
+// 	if($("#level3MaterialId").val()!=''){
+// 		if($("#level3Num").val()<=0){
+// 			parent.layer.msg("三等奖数量不能少等于0",{icon:11});
+// 			return
+// 		}
+// 		if(parseInt($("#level3_num").html())<$("#level3Num").val()){
+// 			parent.layer.msg("三等奖数量不能大于库存量",{icon:11});
+// 			return
+// 		}
+// 	}
+
+	var level3MaterialIds=$("#level3MaterialDiv").find(".level3MaterialId");
+	var level3Nums=$("#level3MaterialDiv").find(".level3Num");
+	var levelNums=$("#level3MaterialDiv").find(".level_num");
+	
+	for (var i = 0; i < level3MaterialIds.length; i++) {
+		if($(level3MaterialIds[i]).val()!=''){
+			if($(level3Nums[i]).val()<=0){
+				parent.layer.msg("三等奖数量不能少等于0",{icon:11});
+				return
+			}
+			if(parseInt($(levelNums[i]).html())<$(level3Nums[i]).val()){
+				parent.layer.msg("三等奖数量不能大于库存量",{icon:11});
+				return
+			}
+			level3MaterialJson.push({'level3MaterialId':$(level3MaterialIds[i]).val(),'level3Num':$(level3Nums[i]).val()});
 		}
 	}
 	
+	
 	parent.layer.confirm("确定保存活动信息?", {
 		icon: 4, btn: ['确定','关闭'],offset: '100px' //按钮
 	}, function(){
@@ -221,12 +285,11 @@ function save(){
             'portNum' : $("#portNum").val(),
             'partakeNum' : $("#partakeNum").val(),
             'title' : $("#title").val(),
-            'level1MaterialId' : $("#level1MaterialId").val(),
-            'level1Num' : $("#level1Num").val(),
-            'level2MaterialId' : $("#level2MaterialId").val(),
-            'level2Num' : $("#level2Num").val(),
-            'level3MaterialId' : $("#level3MaterialId").val(),
-            'level3Num' : $("#level3Num").val(),
+            
+            'level1MaterialIds' : JSON.stringify(level1MaterialJson),
+            'level2MaterialIds' : JSON.stringify(level2MaterialJson),
+            'level3MaterialIds' : JSON.stringify(level3MaterialJson),
+            
             'remarks' : $("#remarks").val(),
             'img' : $("#img").val()
         };
@@ -258,6 +321,10 @@ function refreshRate(){
 
 $(function (){
 	
+	 $('#addLevel3MaterialHtml').click(function(){
+		 $(this).parent().before($("#level3MaterialHtml").html());
+	 });
+	
 	 $('#merchantId').change(function(){
       	var data= $(this).val();
     	var portnum= $(this).find("option:selected").attr('data-portnum'); 
@@ -289,12 +356,17 @@ $(function (){
       	getStock($("#level2_num"),merchantId,levelMaterialId);
    	 });
 	 
-	 $('#level3MaterialId').change(function(){
+	 $("body").on("change",'.level3MaterialId',function(){
       	var levelMaterialId= $(this).val();
     	var merchantId= $("#merchantId").val();
-      	getStock($("#level3_num"),merchantId,levelMaterialId);
+    	
+      	getStock($(this).parent().parent().find(".level_num"),merchantId,levelMaterialId);
+      	
    	 });
 			 
+	 $("body").on("click",'.level_delete',function(){
+		 $(this).parent().parent().remove();
+	  });
 	 
 	 function getStock(obj,merchantId,levelMaterialId){
 		 var url="[[${sysUrl}]]/sys/award/grant/stock/get";

+ 134 - 0
src/main/resources/templates/sys/award/activity/info.html

@@ -0,0 +1,134 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+<title>私塾家</title>
+<script th:include="sys/common/metaCSS" th:remove="tag"></script> 
+<script th:include="sys/common/metaJS" th:remove="tag"></script> 
+<script src="sys/js/My97DatePicker/WdatePicker.js" th:src="@{/static/sys/js/My97DatePicker/WdatePicker.js}"></script>
+<link href="sys/css/jquery.searchableSelect.css" th:href="@{/static/sys/css/jquery.searchableSelect.css}" rel="stylesheet"/>
+<script src="js/layer/layer.js" th:src="@{/static/sys/js/jquery.searchableSelect.js}"></script>
+</head>
+<style>
+	.tablelink{margin-right:10px;}
+	.stylecss{
+	      color: red;
+	}
+	.select_width{
+	     width: 220px;
+	}
+	.date_width{
+	     width: 150px;
+	}
+</style>
+<body>
+<div class="place">
+	<span>位置:</span>
+	<ul class="placeul">
+		<li><a href="#">新版抽奖管理</a></li>
+		<li><a href="#">活动奖品明细</a></li>
+	</ul>
+</div>
+<div class="rightinfo">
+	<form id="seachform" th:action="@{/sys/award/activity/info.html}" method="post">
+	<input type="hidden" th:value="${search.get('activityId')}" name="activityId" >
+	<ul class="seachform">
+		<li>
+			<label>奖品等级</label>
+			<select class="scinput select_width"  id="level" name="level"   style="width: 150px;" >
+				<option value="">全部</option>
+				<option  th:selected="${search.get('level') eq '1' ? true : false}" value="1">一等奖</option>
+				<option  th:selected="${search.get('level') eq '2' ? true : false}" value="2">二等奖</option>
+				<option  th:selected="${search.get('level') eq '3' ? true : false}" value="3">三等奖</option>
+			</select>
+		</li>
+		<li>
+			<input type="button" class="scbtn" value="查询" />
+		</li>
+		
+	</ul>
+	</form>
+	<table class="tablelist">
+		<thead>
+		    <tr>
+				<th style="width: 50px;">序号</th>
+				<th>奖品名称</th>
+				<th>奖品等级</th>
+				<th>奖品数量</th>
+		    </tr>
+		</thead>
+		<tbody>
+			<tr th:each="item:${list}" >
+				<td th:text="${itemStat.count}"></td>
+				<td th:text="${item.get('name')}"></td>
+				<td th:switch="${item.get('level')}">
+				   <span th:case="1" style="color:red">一等奖</span>
+				   <span th:case="2" style="color:red">二等奖</span>
+				   <span th:case="3" style="color:red">三等奖</span>
+				</td>
+			<td th:text="${item.get('num')}"></td>
+			</tr>
+		</tbody>
+	</table>
+	<!-- 分页 -->
+	<div class="pagin">
+		<div class="message">共<i class="blue">[[${page.rowCnt}]]</i>条记录,当前显示第&nbsp;<i class="blue">[[${page.pageNo }]]&nbsp;</i>页</div>
+		<div th:utext='${listNavigatHtml}' th:remove="tag" ></div>
+	</div>
+	
+</div>
+</body>
+<script type="text/javascript">
+	
+	$(function(){
+		$('#merchantId').searchableSelect();
+	});
+
+
+	function editCardActivity(id){
+		var title="添加活动";
+		if(id!=null && id!='' && id!=undefined){
+			title="编辑活动";
+		}
+		parent.layer.open({
+		    type: 2,
+		    title: title,
+		    closeBtn: 1, //不显示关闭按钮
+		    shift: 0.8,
+		    offset: '100px',
+		    area: ['40%', '70%'],
+		    content: '[[${sysUrl}]]/sys/award/activity/edit.html?id='+id
+		});
+	}
+	
+	
+	function statusCardActivity(id){
+		parent.layer.confirm("确定取消活动?", {
+			icon: 4, btn: ['确定','关闭'],offset: '100px' //按钮
+		}, function(){
+			var url="[[${sysUrl}]]/sys/award/activity/status";
+			var params ={
+			 	'id' : id,
+	            'status' :"0"
+	        };
+			$.post(url,params,function(data){
+				if(data.meta.success){
+					parent.layer.msg("删除成功",{icon:1});
+					parent.location.reload();
+					parent.layer.close(parent.layer.getFrameIndex(window.name));
+				}else{
+					parent.layer.msg(data.meta.message,{icon:11});
+				}
+			});
+		});
+	}
+	
+	$("#button").on('click',function(){
+		document.getElementById("seachform").action = "[[${sysUrl}]]/sys/award/material/list";
+		$("#seachform").submit();
+		window.setTimeout(function(){
+			document.getElementById("seachform").action = "[[${sysUrl}]]/sys/award/material/list.html";
+		},3000);
+	});
+</script>
+
+
+</html>

+ 16 - 4
src/main/resources/templates/sys/award/activity/list.html

@@ -96,9 +96,21 @@
 					<td th:text="${item.get('port_num')}"></td>
 					<td th:text="${item.get('title')}"></td>
 					<td th:text="${item.get('partake_num')}"></td>
-					<td th:text="${ item.get('level1_material_name')!=null ? (item.get('level1_material_name')+' / '+item.get('level1_num')+'个' ) : '无'  }"></td>
-					<td th:text="${ item.get('level2_material_name')!=null ? (item.get('level2_material_name')+' / '+item.get('level2_num')+'个'  ) : '无'  }"></td>
-					<td th:text="${ item.get('level3_material_name')!=null ? (item.get('level3_material_name')+' / '+item.get('level3_num')+'个'  ) : '无'  }"></td>
+					<td >
+						<a style="color: red" href="javascript:;" th:href="@{/sys/award/activity/info.html(activityId=${item.id},level=1 )}">
+							[[${item.get('level1_num')}]]个
+						</a>
+					</td>
+					<td >
+						<a style="color: red" href="javascript:;" th:href="@{/sys/award/activity/info.html(activityId=${item.id},level=2 )}">
+							[[${item.get('level2_num')}]]个
+						</a>
+					</td>
+					<td >
+						<a style="color: red" href="javascript:;" th:href="@{/sys/award/activity/info.html(activityId=${item.id},level=3 )}">
+							[[${item.get('level3_num')}]]个
+						</a>
+					</td>
 					<td th:text="${item.get('remarks')}"></td>
 					<td >
 						<img style="height: 40px;" th:if="${item.get('img')!=null && item.get('img')!=''}" th:src="${imgUrl+item.get('img')}">
@@ -148,7 +160,7 @@
 		    closeBtn: 1, //不显示关闭按钮
 		    shift: 0.8,
 		    offset: '100px',
-		    area: ['40%', '70%'],
+		    area: ['800px', '70%'],
 		    content: '[[${sysUrl}]]/sys/award/activity/edit.html?id='+id
 		});
 	}

+ 3 - 3
src/main/resources/templates/sys/award/examine/list.html

@@ -120,9 +120,9 @@
 <!-- 					   <span th:case="1" style="color:red">发放</span> -->
 <!-- 					   <span th:case="2" style="color:red">接收</span> -->
 <!-- 					</td> -->
-					<td th:text="${ item.get('level1_material_name')!=null ? (item.get('level1_material_name')+' / '+item.get('level1_num')+'个'  ) : '无'  }"></td>
-					<td th:text="${ item.get('level2_material_name')!=null ? (item.get('level2_material_name')+' / '+item.get('level2_num')+'个'  ) : '无'  }"></td>
-					<td th:text="${ item.get('level3_material_name')!=null ? (item.get('level3_material_name')+' / '+item.get('level3_num')+'个'  ) : '无'  } "></td>
+					<td th:text="${ item.get('level1_num')!=null ? (item.get('level1_num')+'个'  ) : '无'  }"></td>
+					<td th:text="${ item.get('level2_num')!=null ? (item.get('level2_num')+'个'  ) : '无'  }"></td>
+					<td th:text="${ item.get('level3_num')!=null ? (item.get('level3_num')+'个'  ) : '无'  } "></td>
 					<td th:text="${item.get('create_time')}"></td>
 					<td  th:switch="${item.status}">
 					   <span th:case="0" style="color:red">已取消</span>

+ 127 - 47
src/main/resources/templates/sys/award/grant/edit.html

@@ -91,40 +91,62 @@ dtext{
 			<li>
 				<label>一等奖<b>*</b></label>
 				<div class="vocation" style="margin-right: 5px; width: 145px">
-					<select name="level1MaterialId" id="level1MaterialId" class="select1" > 
+					<select name="level1MaterialId" id="level1MaterialId" class="select1 level1MaterialId" > 
 						<option value="">选择奖品</option>
 						<option th:each="item:${level1Materials}"  th:value="${item.id}" th:text="${item.name}"></option>
 					</select>
 				</div>
-				<input onblur='grantRate($("#level1Num"),$("#level1_num_rate"));' style="width: 95px;" type="number" id="level1Num" class="dfinput fl" name="level1Num" value="0" />
-				<text>&nbsp;库存:<t id="level1_num" style="color:red">0</t>&nbsp;&nbsp;比例:<t id="level1_num_rate" data-val="0.005" data-numval="1"  style="color:red">200:1</t></text>
+				<input onblur='grantRate(this);' style="width: 95px;" type="number" id="level1Num" class="dfinput fl level1Num" name="level1Num" value="0" />
+				<text>
+					&nbsp;
+					库存:<t id="level_num" class="level_num" style="color:red">0</t>
+					&nbsp;&nbsp;
+					比例:<t id="level_num_rate" class="level_num_rate" data-val="0.005" data-numval="1"  style="color:red">200:1</t>
+				</text>
 			</li>
 			
 			<li>
 				<label>二等奖<b></b></label>
 				<div class="vocation" style="margin-right: 5px; width: 145px">
-					<select name="level2MaterialId" id="level2MaterialId" class="select1" > 
+					<select name="level2MaterialId" id="level2MaterialId" class="select1 level2MaterialId" > 
 						<option value="">选择奖品</option>
 						<option th:each="item:${level2Materials}"  th:value="${item.id}" th:text="${item.name}"></option>
 					</select>
 				</div>
-				<input onblur='grantRate($("#level2Num"),$("#level2_num_rate"));' style="width: 95px;" type="number" id="level2Num" class="dfinput fl" name="level2Num" value="0" />
-				<text>&nbsp;库存:<t id="level2_num" style="color:red">0</t>&nbsp;&nbsp;比例:<t id="level2_num_rate" data-val="0.015" data-numval="3"  style="color:red">200:3</t></text>
+				<input onblur='grantRate(this);' style="width: 95px;" type="number" id="level2Num" class="dfinput fl level2Num" name="level2Num" value="0" />
+				<text>
+					&nbsp;
+					库存:<t id="level_num"  class="level_num" style="color:red">0</t>
+					&nbsp;&nbsp;
+					比例:<t id="level_num_rate" class="level_num_rate" data-val="0.015" data-numval="3"  style="color:red">200:3</t>
+				</text>
 			</li>
 			
+			<div id="level3MaterialDiv">
+				<li>
+					<label>三等奖<b></b></label>
+					<div class="vocation" style="margin-right: 5px; width: 145px;">
+						<select name="level3MaterialId"  class="select1 level3MaterialId" > 
+							<option value="">选择奖品</option>
+							<option th:each="item:${level3Materials}"  th:value="${item.id}" th:text="${item.name}"></option>
+						</select>
+					</div>
+					<input onblur='grantRate(this);' style="width: 95px;" type="number" class="dfinput fl level3Num" name="level3Num" value="0" />
+					
+					<text>
+						&nbsp;
+						库存:<t class="level_num" style="color:red">0</t>
+						&nbsp;&nbsp;
+						比例:<t class="level_num_rate" data-val="0.075"  data-numval="15" style="color:red">200:15</t>
+					</text>
+					
+				</li>
 			
-			<li>
-				<label>三等奖<b></b></label>
-				<div class="vocation" style="margin-right: 5px; width: 145px">
-					<select name="level3MaterialId" id="level3MaterialId" class="select1" > 
-						<option value="">选择奖品</option>
-						<option th:each="item:${level3Materials}"  th:value="${item.id}" th:text="${item.name}"></option>
-					</select>
-				</div>
-				<input onblur='grantRate($("#level3Num"),$("#level3_num_rate"));' style="width: 95px;" type="number" id="level3Num" class="dfinput fl" name="level3Num" value="0" />
-				<text>&nbsp;库存:<t id="level3_num" style="color:red">0</t>&nbsp;&nbsp;比例:<t id="level3_num_rate" data-val="0.075"  data-numval="15" style="color:red">200:15</t></text>
-			</li>
-		
+				<li>
+					<label>&nbsp;<b></b></label>
+					<text style="font-weight: bold;cursor: pointer;color: #056dae;font-size: 14px" id="addLevel3MaterialHtml">+添加奖品</text>
+				</li>
+			</div>
 			<li>
 				<label>钉钉单号:<b></b></label>
 				<input type="text" id="dingNumber" class="dfinput fl" name="dingNumber" />
@@ -172,6 +194,30 @@ dtext{
 			
 </div>
 
+<div id="level3MaterialHtml" style="display: none">
+	<li>
+		<label>三等奖<b></b></label>
+		<div class="vocation" style="margin-right: 5px; width: 145px;">
+			<select name="level3MaterialId" class="select1 level3MaterialId" > 
+				<option value="">选择奖品</option>
+				<option th:each="item:${level3Materials}"  th:value="${item.id}" th:text="${item.name}"></option>
+			</select>
+		</div>
+		<input onblur='grantRate(this);' style="width: 95px;" type="number"  class="dfinput fl level3Num" name="level3Num" value="0" />
+		<text>
+			&nbsp;
+			库存:<t class="level_num" style="color:red">0</t>
+			&nbsp;&nbsp;
+			比例:<t class="level_num_rate" data-val="0.075"  data-numval="15" style="color:red">200:15</t>
+			&nbsp;
+			<t class="level_delete" style="color:red;cursor: pointer;">-删除-</t>
+		</text>
+		
+	</li>
+</div>
+
+
+
 </body>
 <script type="text/javascript">
 var shadmin="[[${curMerchant.posCode}]]";
@@ -193,11 +239,15 @@ function save(){
 		return
 	}
 	
-	if($("#level1MaterialId").val()=='' && $("#level2MaterialId").val()=='' && $("#level3MaterialId").val()=='' ){
-		parent.layer.msg("请选择奖品",{icon:11});
+	if($("#level1MaterialId").val()==''){
+		parent.layer.msg("请选择一等奖品",{icon:11});
 		return
 	}
 	
+	var level1MaterialJson=[];
+	var level2MaterialJson=[];
+	var level3MaterialJson=[];
+	
 	if($("#level1MaterialId").val()!=''){
 		if($("#level1Num").val()<=0){
 			parent.layer.msg("一等奖数量不能少等于0",{icon:11});
@@ -208,9 +258,10 @@ function save(){
 			return
 		}
 		
-		if(!grantRate($("#level1Num"),$("#level1_num_rate"))){
+		if(!grantRate($("#level1Num"))){
 			return
 		}
+		level1MaterialJson.push({'level1MaterialId':$("#level1MaterialId").val(),'level1Num':$("#level1Num").val()});
 	}
 	if($("#level2MaterialId").val()!=''){
 		if($("#level2Num").val()<=0){
@@ -222,36 +273,51 @@ function save(){
 			return
 		}
 		
-		if(!grantRate($("#level2Num"),$("#level2_num_rate"))){
+		if(!grantRate($("#level2Num"))){
 			return
 		}
+		level2MaterialJson.push({'level2MaterialId':$("#level2MaterialId").val(),'level2Num':$("#level2Num").val()});
 	}
-	if($("#level3MaterialId").val()!=''){
-		if($("#level3Num").val()<=0){
-			parent.layer.msg("三等奖数量不能少等于0",{icon:11});
-			return
-		}
-		if(parseInt($("#level3_num").html())<$("#level3Num").val()){
-			parent.layer.msg("三等奖数量不能大于库存量",{icon:11});
-			return
-		}
-		if(!grantRate($("#level3Num"),$("#level3_num_rate"))){
-			return
+	
+	var level3MaterialIds=$("#level3MaterialDiv").find(".level3MaterialId");
+	var level3Nums=$("#level3MaterialDiv").find(".level3Num");
+	
+	for (var i = 0; i < level3MaterialIds.length; i++) {
+		if(level3MaterialIds[i]!=''){
+			if(level3Nums[i]<=0){
+				parent.layer.msg("三等奖数量不能少等于0",{icon:11});
+				return
+			}
+			
+			level3MaterialJson.push({'level3MaterialId':$(level3MaterialIds[i]).val(),'level3Num':$(level3Nums[i]).val()});
 		}
 	}
 	
+// 	if($("#level3MaterialId").val()!=''){
+// 		if($("#level3Num").val()<=0){
+// 			parent.layer.msg("三等奖数量不能少等于0",{icon:11});
+// 			return
+// 		}
+// 		if(parseInt($("#level3_num").html())<$("#level3Num").val()){
+// 			parent.layer.msg("三等奖数量不能大于库存量",{icon:11});
+// 			return
+// 		}
+// 		if(!grantRate($("#level3Num"),$("#level3_num_rate"))){
+// 			return
+// 		}
+// 	}
+	
 	parent.layer.confirm("确定配送奖品?", {
 		icon: 4, btn: ['确定','关闭'],offset: '100px' //按钮
 	}, function(){
 		var url="[[${sysUrl}]]/sys/award/grant/save";
 		var params ={
             'toMerchantId' : $("#toMerchantId").val(),
-            'level1MaterialId' : $("#level1MaterialId").val(),
-            'level2MaterialId' : $("#level2MaterialId").val(),
-            'level3MaterialId' : $("#level3MaterialId").val(),
-            'level1Num' : $("#level1Num").val(),
-            'level2Num' : $("#level2Num").val(),
-            'level3Num' : $("#level3Num").val(),
+            
+            'level1MaterialIds' : JSON.stringify(level1MaterialJson),
+            'level2MaterialIds' : JSON.stringify(level2MaterialJson),
+            'level3MaterialIds' : JSON.stringify(level3MaterialJson),
+            
             'remarks' : $("#remarks").val(),
             
             'dingNumber' : $("#dingNumber").val(),
@@ -295,7 +361,10 @@ function merchantInfo(){
 }
 
 //level1Num level1_num_rate  grantRate($("#level1Num"),$("#level1_num_rate"));
-function grantRate(level,rate){
+function grantRate(obj){
+	var level=$(obj);
+	var rate=$(obj).parent().find(".leve_num_rate");
+	
 	if($("#portNum").val()<=0){
 		parent.layer.msg("此商户端口数不足,无法为其配送奖品。",{icon:11});
 		return false;
@@ -316,34 +385,45 @@ $(function (){
 	
 	 merchantInfo();
 	
+	 $('#addLevel3MaterialHtml').click(function(){
+		 $(this).parent().before($("#level3MaterialHtml").html());
+	 });
+	 
 	 $('#toMerchantId').change(function(){
 	      merchantInfo();  	
 	 });
 	
 	 $('#level1MaterialId').change(function(){
       	var levelMaterialId= $(this).val();
-      	getStock($("#level1_num"),levelMaterialId);
       	
-      	grantRate($("#level1Num"),$("#level1_num_rate"));
+      	getStock($(this).parent().parent().find(".level_num"),levelMaterialId);
+      	
+      	grantRate($(this).parent().parent().find(".level1Num"));
       	
    	 });
 	 
 	 
 	 $('#level2MaterialId').change(function(){
       	var levelMaterialId= $(this).val();
-      	getStock($("#level2_num"),levelMaterialId);
       	
-      	grantRate($("#level2Num"),$("#level2_num_rate"));
+      	getStock($(this).parent().parent().find(".level_num"),levelMaterialId);
+      	
+    	grantRate($(this).parent().parent().find(".level2Num"));
    	 });
 	 
 	 
-	 $('#level3MaterialId').change(function(){
+	 $("body").on("change",'.level3MaterialId',function(){
       	var levelMaterialId= $(this).val();
-      	getStock($("#level3_num"),levelMaterialId);
       	
-      	grantRate($("#level3Num"),$("#level3_num_rate"));
+      	getStock($(this).parent().parent().find(".level_num"),levelMaterialId);
+      	
+      	grantRate($(this).parent().parent().find(".level3Num"));
    	 });
 	 
+	 
+	 $("body").on("click",'.level_delete',function(){
+		 $(this).parent().parent().remove();
+	  });
 
 	 function getStock(obj,levelMaterialId){
 		 var url="[[${sysUrl}]]/sys/award/grant/stock/get";

+ 134 - 0
src/main/resources/templates/sys/award/grant/info.html

@@ -0,0 +1,134 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+<title>私塾家</title>
+<script th:include="sys/common/metaCSS" th:remove="tag"></script> 
+<script th:include="sys/common/metaJS" th:remove="tag"></script> 
+<script src="sys/js/My97DatePicker/WdatePicker.js" th:src="@{/static/sys/js/My97DatePicker/WdatePicker.js}"></script>
+<link href="sys/css/jquery.searchableSelect.css" th:href="@{/static/sys/css/jquery.searchableSelect.css}" rel="stylesheet"/>
+<script src="js/layer/layer.js" th:src="@{/static/sys/js/jquery.searchableSelect.js}"></script>
+</head>
+<style>
+	.tablelink{margin-right:10px;}
+	.stylecss{
+	      color: red;
+	}
+	.select_width{
+	     width: 220px;
+	}
+	.date_width{
+	     width: 150px;
+	}
+</style>
+<body>
+<div class="place">
+	<span>位置:</span>
+	<ul class="placeul">
+		<li><a href="#">新版抽奖管理</a></li>
+		<li><a href="#">配送奖品明细</a></li>
+	</ul>
+</div>
+<div class="rightinfo">
+	<form id="seachform" th:action="@{/sys/award/grant/info.html}" method="post">
+	<input type="hidden" th:value="${search.get('grantId')}" name="grantId" >
+	<ul class="seachform">
+		<li>
+			<label>奖品等级</label>
+			<select class="scinput select_width"  id="level" name="level"   style="width: 150px;" >
+				<option value="">全部</option>
+				<option  th:selected="${search.get('level') eq '1' ? true : false}" value="1">一等奖</option>
+				<option  th:selected="${search.get('level') eq '2' ? true : false}" value="2">二等奖</option>
+				<option  th:selected="${search.get('level') eq '3' ? true : false}" value="3">三等奖</option>
+			</select>
+		</li>
+		<li>
+			<input type="button" class="scbtn" value="查询" />
+		</li>
+		
+	</ul>
+	</form>
+	<table class="tablelist">
+		<thead>
+		    <tr>
+				<th style="width: 50px;">序号</th>
+				<th>奖品名称</th>
+				<th>奖品等级</th>
+				<th>奖品数量</th>
+		    </tr>
+		</thead>
+		<tbody>
+			<tr th:each="item:${list}" >
+				<td th:text="${itemStat.count}"></td>
+				<td th:text="${item.get('name')}"></td>
+					<td th:switch="${item.get('level')}">
+				   <span th:case="1" style="color:red">一等奖</span>
+				   <span th:case="2" style="color:red">二等奖</span>
+				   <span th:case="3" style="color:red">三等奖</span>
+				</td>
+				<td th:text="${item.get('num')}"></td>
+			</tr>
+		</tbody>
+	</table>
+	<!-- 分页 -->
+	<div class="pagin">
+		<div class="message">共<i class="blue">[[${page.rowCnt}]]</i>条记录,当前显示第&nbsp;<i class="blue">[[${page.pageNo }]]&nbsp;</i>页</div>
+		<div th:utext='${listNavigatHtml}' th:remove="tag" ></div>
+	</div>
+	
+</div>
+</body>
+<script type="text/javascript">
+	
+	$(function(){
+		$('#merchantId').searchableSelect();
+	});
+
+
+	function editCardActivity(id){
+		var title="添加活动";
+		if(id!=null && id!='' && id!=undefined){
+			title="编辑活动";
+		}
+		parent.layer.open({
+		    type: 2,
+		    title: title,
+		    closeBtn: 1, //不显示关闭按钮
+		    shift: 0.8,
+		    offset: '100px',
+		    area: ['40%', '70%'],
+		    content: '[[${sysUrl}]]/sys/award/activity/edit.html?id='+id
+		});
+	}
+	
+	
+	function statusCardActivity(id){
+		parent.layer.confirm("确定取消活动?", {
+			icon: 4, btn: ['确定','关闭'],offset: '100px' //按钮
+		}, function(){
+			var url="[[${sysUrl}]]/sys/award/activity/status";
+			var params ={
+			 	'id' : id,
+	            'status' :"0"
+	        };
+			$.post(url,params,function(data){
+				if(data.meta.success){
+					parent.layer.msg("删除成功",{icon:1});
+					parent.location.reload();
+					parent.layer.close(parent.layer.getFrameIndex(window.name));
+				}else{
+					parent.layer.msg(data.meta.message,{icon:11});
+				}
+			});
+		});
+	}
+	
+	$("#button").on('click',function(){
+		document.getElementById("seachform").action = "[[${sysUrl}]]/sys/award/material/list";
+		$("#seachform").submit();
+		window.setTimeout(function(){
+			document.getElementById("seachform").action = "[[${sysUrl}]]/sys/award/material/list.html";
+		},3000);
+	});
+</script>
+
+
+</html>

+ 16 - 4
src/main/resources/templates/sys/award/grant/list.html

@@ -135,9 +135,21 @@
 <!-- 					   <span th:case="1" style="color:red">发放</span> -->
 <!-- 					   <span th:case="2" style="color:red">接收</span> -->
 <!-- 					</td> -->
-					<td th:text="${ item.get('level1_material_name')!=null ? (item.get('level1_material_name')+' / '+item.get('level1_num')+'个'  ) : '无'  }"></td>
-					<td th:text="${ item.get('level2_material_name')!=null ? (item.get('level2_material_name')+' / '+item.get('level2_num')+'个'  ) : '无'  }"></td>
-					<td th:text="${ item.get('level3_material_name')!=null ? (item.get('level3_material_name')+' / '+item.get('level3_num')+'个'  ) : '无'  } "></td>
+					<td>
+						<a style="color: red" href="javascript:;" th:href="@{/sys/award/grant/info.html(grantId=${item.id},level=1 )}">
+							[[${item.get('level1_num')}]]个
+						</a>
+					</td>
+					<td >
+						<a style="color: red" href="javascript:;" th:href="@{/sys/award/grant/info.html(grantId=${item.id},level=2 )}">
+							[[${item.get('level2_num')}]]个
+						</a>
+					</td>
+					<td >
+						<a style="color: red" href="javascript:;" th:href="@{/sys/award/grant/info.html(grantId=${item.id},level=3 )}">
+							[[${item.get('level3_num')}]]个
+						</a>
+					</td>
 					<td th:text="${item.get('create_time')}"></td>
 					<td  th:switch="${item.status}">
 					   <span th:case="0" style="color:red">已取消</span>
@@ -193,7 +205,7 @@
 		    closeBtn: 1, //不显示关闭按钮
 		    shift: 0.8,
 		    offset: '100px',
-		    area: ['40%', '70%'],
+		    area: ['800px', '70%'],
 		    content: '[[${sysUrl}]]/sys/award/grant/edit.html?id='+id
 		});
 	}

+ 15 - 0
src/main/resources/templates/sys/fx/merchantAdd.html

@@ -121,6 +121,19 @@ dtext{
 				</div>
 			</li>
 			
+			
+			<li>
+				<label>套餐:套餐类型<b>*</b></label>
+				<div class="vocation" style="margin-right: 5px; width: 345px">
+					<select name="mealType" id="mealType" class="select1"  > 
+						<option value="0" th:selected="${merchant.mealType==0 ? true : false}">合同签约模式(旧模式)</option>
+						<option value="1" th:selected="${merchant.mealType==1 ? true : false}">优选套餐</option>
+						<option value="2" th:selected="${merchant.mealType==2 ? true : false}">VIP套餐</option>
+						<option value="3" th:selected="${merchant.mealType==3 ? true : false}">尊享套餐</option>
+					</select>
+				</div>
+			</li>
+			
 			<li>
 				<label>套餐:服务包类型<b>*</b></label>
 				<div class="vocation" style="margin-right: 5px; width: 345px">
@@ -133,6 +146,7 @@ dtext{
 				</div>
 				<label th:if="${merchant.id!=null}"  style="width: 230px;color:red">[修改套餐模式,不会影响加油包有效性 ]</label>
 			</li>
+			
 
 			<li>
 				<label>合同时间:<b >*</b></label>
@@ -750,6 +764,7 @@ function save(){
             'hardwareService':$("#hardwareService").val(),
             
             'signType':$("#signType").val(),
+            'mealType':$("#mealType").val(),
             'startTime':$("#signTime").val(),
             'endTime':$("#endSignTime").val(),
             

+ 16 - 7
src/main/resources/templates/sys/fx/merchantAllList.html

@@ -149,9 +149,9 @@
 				</a>
 			</ul>
 			
-			<a href="javascript:;" onclick="savemerchant('')">
-				<li class="click"><span><img th:src="@{/static/sys/images/t01.png}"></span>添加</li>
-			</a>
+<!-- 			<a href="javascript:;" onclick="savemerchant('')"> -->
+<!-- 				<li class="click"><span><img th:src="@{/static/sys/images/t01.png}"></span>添加</li> -->
+<!-- 			</a> -->
 		</li>
 	</ul>
 	</form>
@@ -171,6 +171,7 @@
 		    	<th >单位名称 </th>
 		    	<th style="width: 60px;">商户级别</th>
 		    	<th >关联机构 </th>
+		    	<th >商户套餐 </th>
 		    	<th >商户模式 </th>
 		    	<th style="width: 60px;">签约端口数量</th>
 		    	<th style="width: 60px;">机构塾币/套餐人数</th>
@@ -201,6 +202,14 @@
 						<a href="javascript:;" th:onclick="'openNew(\''+${item.libId}+'\')'" th:if="${item.libId!='' && item.libId!=null}"	class="tablelink">[[${item.libJoin.leagueName}]]</a>
 					</td>
 					
+					<td  th:switch="${item.mealType}">
+					   <span th:case="0" style="color:red">旧兼容模式</span>
+					   <span th:case="1" >优选套餐</span>
+					   <span th:case="2" >VIP套餐</span>
+					   <span th:case="3" >尊享套餐</span>
+					   <span th:case="*" style="color:red">旧兼容模式</span>
+					</td>
+					
 					<td  th:switch="${item.signType}">
 					   <span th:case="0" style="color:red">旧兼容模式</span>
 					   <span th:case="1" >服务包1</span>
@@ -243,10 +252,10 @@
 							<a href="javascript:;" th:if="${item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'savemerchant(\''+${item.id}+'\')'"  	class="tablelink">修改</a>
 						</di>
 						
-							<a href="javascript:;" th:if="${item.signType==0 && item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'joinServiceEdit(\''+${item.id}+'\')'" class="tablelink">塾币</a>
-							<a href="javascript:;" th:if="${item.signType!=0 && item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'mealServiceAdd(\''+${item.id}+'\')'" class="tablelink">加油包</a>
-							<a href="javascript:;" th:if="${item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'updatemerchant(\''+${item.id}+'\',\'4\')'"   class="tablelink">删除</a>
-							<a href="javascript:;" th:if="${item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'savemerchant(\''+${item.id}+'\')'"  	class="tablelink">修改</a>
+<!-- 							<a href="javascript:;" th:if="${item.signType==0 && item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'joinServiceEdit(\''+${item.id}+'\')'" class="tablelink">塾币</a> -->
+<!-- 							<a href="javascript:;" th:if="${item.signType!=0 && item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'mealServiceAdd(\''+${item.id}+'\')'" class="tablelink">加油包</a> -->
+<!-- 							<a href="javascript:;" th:if="${item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'updatemerchant(\''+${item.id}+'\',\'4\')'"   class="tablelink">删除</a> -->
+<!-- 							<a href="javascript:;" th:if="${item.status!=4 && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'savemerchant(\''+${item.id}+'\')'"  	class="tablelink">修改</a> -->
 						
 												
 						<a href="javascript:;" th:if="${item.status!=4 && item.libId!='' && item.libId!=null && (curMerchant.orgCode eq 'SSJ-FX' || #strings.contains(item.orgCode,curMerchant.orgCode) ) }"  th:onclick="'untyingmerchant(\''+${item.id}+'\')'"  	class="tablelink">解绑</a>