wuwen 5 роки тому
батько
коміт
80f550064d

+ 5 - 1
src/main/java/com/ssj/dao/sys/fx/dao/MerchantDao.java

@@ -43,8 +43,12 @@ public interface MerchantDao extends JpaRepository<Merchant, String> {
 	@Query(nativeQuery = true, value = " SELECT t.* from fx_merchant t LEFT JOIN tb_lib_vip v ON t.lib_id=v.lib_id WHERE v.id IS NOT NULL AND v.id=?1 ORDER BY t.create_time DESC LIMIT 1 ")
 	public Merchant getMerchantByVipId(String vipId);
 	
-	@Query(nativeQuery = true, value = " SELECT * from fx_merchant t where t.sign_type in (1,2,3) AND TO_DAYS(t.end_sign_time)<TO_DAYS(NOW()) ORDER BY t.create_time ASC ")
+	@Query(nativeQuery = true, value = " SELECT * from fx_merchant t where t.sign_type in (1,2,3) AND TO_DAYS(t.end_sign_time)<=TO_DAYS(NOW()) ORDER BY t.create_time ASC ")
 	public List<Merchant> findMerchantSignByEndTime();
 	
+	@Query(nativeQuery = true, value = " SELECT * from fx_merchant t where t.sign_type in (1,2,3) AND TO_DAYS(t.next_summary_time)<=TO_DAYS(NOW()) ORDER BY t.create_time ASC ")
+	public List<Merchant> findMerchantSignBySummaryTime();
+	
+	
 	
 }

+ 2 - 0
src/main/java/com/ssj/service/sys/fx/service/MerchantService.java

@@ -129,6 +129,8 @@ public interface MerchantService extends BaseService<Merchant, String> {
 	//套餐过期的商户
 	List<Merchant> findMerchantSignByEndTime();
 	
+	List<Merchant> findMerchantSignBySummaryTime();
+	
 
 
 }

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

@@ -1207,6 +1207,11 @@ public class MerchantServiceImpl extends BaseServiceImpl<Merchant, String> imple
 	public List<Merchant> findMerchantSignByEndTime() {
 		return dao.findMerchantSignByEndTime();
 	}
+
+	@Override
+	public List<Merchant> findMerchantSignBySummaryTime() {
+		return dao.findMerchantSignBySummaryTime();
+	}
 	
 
 }

+ 73 - 0
src/main/java/com/ssj/service/sys/fx/service/impl/MerchantSignServiceImpl.java

@@ -18,11 +18,14 @@ import com.ssj.bean.sys.fx.domain.Merchant;
 import com.ssj.bean.sys.fx.domain.MerchantSign;
 import com.ssj.bean.weixin.libmy.domain.LibVip;
 import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
+import com.ssj.bean.weixin.libmy.domain.TbLibJoinConsume;
 import com.ssj.dao.sys.fx.dao.FxQueryDao;
 import com.ssj.dao.sys.fx.dao.MerchantSignDao;
+import com.ssj.framework.basic.utils.DateHelper;
 import com.ssj.framework.core.common.service.BaseServiceImpl;
 import com.ssj.service.sys.fx.service.MerchantService;
 import com.ssj.service.sys.fx.service.MerchantSignService;
+import com.ssj.service.weixin.library.service.ILibJoinConsumeService;
 import com.ssj.service.weixin.library.service.ILibJoinService;
 import com.ssj.service.weixin.library.service.ILibVipService;
 
@@ -45,6 +48,9 @@ public class MerchantSignServiceImpl extends BaseServiceImpl<MerchantSign, Strin
 	private ILibJoinService libJoinService;
 	
 	@Autowired
+	private ILibJoinConsumeService libJoinConsumeService;
+	
+	@Autowired
 	private ILibVipService libVipService;
 	
     @Override
@@ -81,6 +87,18 @@ public class MerchantSignServiceImpl extends BaseServiceImpl<MerchantSign, Strin
 						
 					}
 				}
+				
+				//记录加油包记录
+				TbLibJoinConsume consume=new TbLibJoinConsume();
+				consume.setFromLibId(merchant.getLibId());
+				consume.setFromMerchantId(merchant.getId());
+				consume.setLibService(merchantSign.getLibService());
+				consume.setPlatformService(0);
+				consume.setType(2);
+				consume.setRemarks("消费【加油包过期】");
+				consume.setCreateTime(new Date());
+				libJoinConsumeService.save(consume);
+				
 			} catch (Exception e) {
 				e.printStackTrace();
 			}
@@ -90,6 +108,7 @@ public class MerchantSignServiceImpl extends BaseServiceImpl<MerchantSign, Strin
 		//2:处理商户主套餐过期的数据
 		List<Merchant> merchants=merchantService.findMerchantSignByEndTime();
 		for (Merchant merchant : merchants) {
+			Integer libService=merchant.getLibService();
 			try {
 				List<MerchantSign> signs=this.findMerchantSignByMerchantId(merchant.getId(), 0);
 				for (MerchantSign merchantSign : signs) {
@@ -101,15 +120,57 @@ public class MerchantSignServiceImpl extends BaseServiceImpl<MerchantSign, Strin
 				
 				merchant.setSignTime(null);
 				merchant.setEndSignTime(null);
+				merchant.setCurSummaryTime(null);
+				merchant.setNextSummaryTime(null);
 				merchant.setLibService(0);
 				merchantService.save(merchant);
 				
 				this.syncMerchantByLibJoin(merchant);
+				
+				try {
+					//记录
+					TbLibJoinConsume consume=new TbLibJoinConsume();
+					consume.setFromLibId(merchant.getLibId());
+					consume.setFromMerchantId(merchant.getId());
+					consume.setLibService(libService);
+					consume.setPlatformService(0);
+					consume.setType(2);
+					consume.setRemarks("消费【主套餐过期】");
+					consume.setCreateTime(new Date());
+					libJoinConsumeService.save(consume);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+				
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		
+		//2:处理商户结算的数据
+		List<Merchant> summaryMerchants=merchantService.findMerchantSignBySummaryTime();
+		for (Merchant merchant : summaryMerchants) {
+			try {
+				//记录
+				TbLibJoinConsume consume=new TbLibJoinConsume();
+				consume.setToLibId(merchant.getLibId());
+				consume.setToMerchantId(merchant.getId());
+				consume.setLibService(merchant.getLibService());
+				consume.setPlatformService(0);
+				consume.setType(2);
+				consume.setRemarks("消费【套餐月结算】");
+				consume.setCreateTime(new Date());
+				libJoinConsumeService.save(consume);
 			} catch (Exception e) {
 				e.printStackTrace();
 			}
 			
+			merchant.setCurIsSummary(0);
+			merchant.setCurSummaryTime(new Date());
+			merchant.setNextSummaryTime(DateHelper.getMonthDate(merchant.getCurSummaryTime(),1));
+			merchantService.save(merchant);
 		}
+		
 	}
     
     
@@ -154,6 +215,18 @@ public class MerchantSignServiceImpl extends BaseServiceImpl<MerchantSign, Strin
 		
 		//同步商户表与机构表
 		this.syncMerchantByLibJoin(merchant);
+		
+		//记录加油包记录
+		TbLibJoinConsume consume=new TbLibJoinConsume();
+		consume.setToLibId(merchant.getLibId());
+		consume.setToMerchantId(merchant.getId());
+		consume.setLibService(merchantSign.getLibService());
+		consume.setPlatformService(0);
+		consume.setType(1);
+		consume.setRemarks("加油包充值");
+		consume.setCreateTime(new Date());
+		libJoinConsumeService.save(consume);
+		
 	}
 
 	

+ 59 - 14
src/main/java/com/ssj/service/sys/role/service/impl/AdminServiceImpl.java

@@ -1,10 +1,29 @@
 package com.ssj.service.sys.role.service.impl;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+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.jpa.domain.Specification;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.ssj.bean.sys.fx.domain.Merchant;
 import com.ssj.bean.sys.fx.domain.MerchantArea;
 import com.ssj.bean.sys.role.domain.Admin;
 import com.ssj.bean.sys.role.domain.AdminRole;
 import com.ssj.bean.sys.role.domain.Role;
+import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
+import com.ssj.bean.weixin.libmy.domain.TbLibJoinConsume;
 import com.ssj.dao.sys.role.dao.AdminDao;
 import com.ssj.dao.sys.role.dao.AdminRoleDao;
 import com.ssj.dao.sys.role.dao.RoleQueryDao;
@@ -17,18 +36,8 @@ import com.ssj.service.sys.fx.service.MerchantAreaService;
 import com.ssj.service.sys.fx.service.MerchantService;
 import com.ssj.service.sys.role.service.AdminService;
 import com.ssj.service.sys.role.service.RoleService;
-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.jpa.domain.Specification;
-import org.springframework.data.repository.PagingAndSortingRepository;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
+import com.ssj.service.weixin.library.service.ILibJoinConsumeService;
+import com.ssj.service.weixin.library.service.ILibJoinService;
 @Service
 @Transactional
 public class AdminServiceImpl extends BaseServiceImpl<Admin, String> implements AdminService {
@@ -54,6 +63,12 @@ public class AdminServiceImpl extends BaseServiceImpl<Admin, String> implements
 	private MerchantAreaService merchantAreaService;
 	
 	@Autowired
+	private ILibJoinService libJoinService;
+	
+	@Autowired
+	private ILibJoinConsumeService libJoinConsumeService;
+	
+	@Autowired
 	private RedisUtil redisUtil;
 	
 	@Override
@@ -153,9 +168,39 @@ public class AdminServiceImpl extends BaseServiceImpl<Admin, String> implements
 				}
 				merchantAreaService.save(merchantAreas);
 			}
+			
 			merchantService.save(merchant);
-			//计算结算日期。
-			merchantService.computeMerchantSummaryTime(merchant);
+			
+			//商户同步学币/人数 到机构 / 时间
+			if(StringUtils.isNotEmpty(merchant.getLibId())) {
+				TbLibJoin  libJoin= libJoinService.getById(merchant.getLibId());
+				if(libJoin!=null) {
+					libJoin.setLibService(merchant.getLibService());
+					libJoin.setPlatformService(merchant.getPlatformService());
+					
+					libJoin.setSignType(merchant.getSignType());
+					libJoin.setSignTime(merchant.getSignTime());
+					libJoin.setEndSignTime(merchant.getEndSignTime());
+					
+					libJoinService.save(libJoin);
+				}	
+			}
+			
+			if(merchant.getSignType()==0) {
+				//判断的是否是旧模式兼容,修改了签约的时间,重新计算结算时间
+				merchantService.computeMerchantSummaryTime(merchant);
+			}else {
+				//记录加油包记录
+				TbLibJoinConsume consume=new TbLibJoinConsume();
+				consume.setToLibId(merchant.getLibId());
+				consume.setToMerchantId(merchant.getId());
+				consume.setLibService(merchant.getLibService());
+				consume.setPlatformService(0);
+				consume.setType(1);
+				consume.setRemarks("充值【套餐模式开通】");
+				consume.setCreateTime(new Date());
+				libJoinConsumeService.save(consume);
+			}
 			merchantService.syncRecordByMerchant(sessionUserName, merchant.getId(),ip, "新增商户");
 		}
 		return admin;

+ 27 - 6
src/main/java/com/ssj/sys/controller/FxController.java

@@ -56,6 +56,7 @@ import com.ssj.bean.sys.fx.domain.MerchantSign;
 import com.ssj.bean.sys.organization.domain.Organization;
 import com.ssj.bean.sys.role.domain.Admin;
 import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
+import com.ssj.bean.weixin.libmy.domain.TbLibJoinConsume;
 import com.ssj.bean.weixin.problem.domain.CnArea;
 import com.ssj.framework.basic.common.bean.SplitPage;
 import com.ssj.framework.basic.utils.DateHelper;
@@ -1391,8 +1392,9 @@ public class FxController  extends BaseController {
 				merchantAreaService.save(merchantAreas);
 			}
 			
-			//如果修改了套餐的模式,就重新处理数据,清理加油包
-			if(oldmerchant.getSignType()!=merchant.getSignType()) {
+			Integer mealNum=0;
+			//如果修改了套餐的模式,就重新处理数据 加油包
+			if(!oldmerchant.getSignType().equals(merchant.getSignType())) {
 				oldmerchant.setSignType(merchant.getSignType());
 				List<MerchantSign> merchantSigns=merchantSignService.findMerchantSignByMerchantId(merchant.getId(),0);
 				Integer signNum=0;
@@ -1402,18 +1404,20 @@ public class FxController  extends BaseController {
 				switch (merchant.getSignType()) {
 				case 1:
 					oldmerchant.setLibService(30+signNum);
+					mealNum=30;
 					break;
 				case 2:
 					oldmerchant.setLibService(50+signNum);
+					mealNum=50;
 					break;
 				case 3:
 					oldmerchant.setLibService(100+signNum);
+					mealNum=100;
 					break;
 				default:
 					oldmerchant.setLibService(0);
 					break;
 				}
-
 			}
 			
 			//判断的是否是旧模式兼容,修改了签约的时间,重新计算结算时间
@@ -1432,8 +1436,8 @@ public class FxController  extends BaseController {
 			}else {
 				oldmerchant.setSignTime(DateHelper.parseDate(startTime, "yyyy-MM-dd"));
 				oldmerchant.setEndSignTime(DateHelper.parseDate(endTime, "yyyy-MM-dd"));
-				oldmerchant.setCurSummaryTime(null);
-				oldmerchant.setNextSummaryTime(null);
+				oldmerchant.setCurSummaryTime(oldmerchant.getSignTime());
+				oldmerchant.setNextSummaryTime(DateHelper.getMonthDate(oldmerchant.getCurSummaryTime(),1));
 			}
 			
 			//商户同步学币/人数 到机构 / 时间
@@ -1453,6 +1457,20 @@ public class FxController  extends BaseController {
 			
 			merchantService.save(oldmerchant);
 			merchantService.syncRecordByMerchant(curadmin.getLoginName(), oldmerchant.getId(),WebUtil.getRemoteAddr(request), "修改商户");
+			
+			//记录加油包记录
+			if(mealNum>0) {
+				TbLibJoinConsume consume=new TbLibJoinConsume();
+				consume.setToLibId(merchant.getLibId());
+				consume.setToMerchantId(merchant.getId());
+				consume.setLibService(oldmerchant.getLibService());
+				consume.setPlatformService(0);
+				consume.setType(1);
+				consume.setRemarks("充值【套餐模式更改】");
+				consume.setCreateTime(new Date());
+				libJoinConsumeService.save(consume);
+			}
+			
 		}else{
 			List<Merchant> posCodeMerchants=merchantService.getMerchantByLikePosCode(merchant.getPosCode());
 			if(posCodeMerchants!=null && posCodeMerchants.size()>0){
@@ -1480,6 +1498,10 @@ public class FxController  extends BaseController {
 			
 			merchant.setSignTime(DateHelper.parseDate(startTime, "yyyy-MM-dd"));
 			merchant.setEndSignTime(DateHelper.parseDate(endTime, "yyyy-MM-dd"));
+			if(merchant.getSignType()!=0) {
+				merchant.setCurSummaryTime(merchant.getSignTime());
+				merchant.setNextSummaryTime(DateHelper.getMonthDate(merchant.getCurSummaryTime(),1));
+			}
 			switch (merchant.getSignType()) {
 			case 1:
 				merchant.setLibService(30);
@@ -1494,7 +1516,6 @@ public class FxController  extends BaseController {
 				merchant.setLibService(0);
 				break;
 			}
-			
 			adminService.saveFXAdmin(merchant, password, curadmin.getLoginName(), province, city, area,schoollist,WebUtil.getRemoteAddr(request));
 		}
 		response.success("成功");

+ 2 - 0
src/main/resources/templates/sys/fx/consumeList.html

@@ -105,6 +105,7 @@
  		    	<th style="width: 6%">平台塾币</th>
 <!-- 		        <th>备注</th>  -->
 		        <th style="width: 10%">操作时间</th> 
+		        <th style="width: 100px">备注</th>
 		    </tr>
 		</thead>
 		<tbody>
@@ -135,6 +136,7 @@
 					<td th:text="${item.platform_service}"></td>
 <!-- 					<td th:text="${item.remarks}"></td>  -->
 					<td th:text="${#calendars.format(item.create_time,'yyyy-MM-dd HH:mm:ss')}" ></td>  
+					<td th:text="${item.remarks}"></td>
 			</tr>
 		</tbody>
 	</table>

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

@@ -131,7 +131,7 @@ dtext{
 						<option value="3" th:selected="${merchant.signType==3 ? true : false}">尊享套餐</option>
 					</select>
 				</div>
-				<label th:if="${merchant.id!=null}"  style="width: 230px;color:red">[修改套餐模式,会直接影响加油包有效性 ]</label>
+				<label th:if="${merchant.id!=null}"  style="width: 230px;color:red">[修改套餐模式,会影响加油包有效性 ]</label>
 			</li>
 			
 			<li>