wuwen 5 anos atrás
pai
commit
1b0e7d48d8

+ 29 - 21
src/main/java/com/ssj/service/sys/fx/service/impl/MerchantServiceImpl.java

@@ -1440,7 +1440,10 @@ public class MerchantServiceImpl extends BaseServiceImpl<Merchant, String> imple
 				oldmerchant.setHardwarePrice(merchant.getHardwarePrice());
 				oldmerchant.setAddress(merchant.getAddress());
 				oldmerchant.setLibServiceMonth(merchant.getLibServiceMonth());
-				oldmerchant.setNextSummaryTime(summaryTime!=null ? DateHelper.parseDate(summaryTime, "yyyy-MM-dd"): null);
+				if(StringUtils.isNotEmpty(summaryTime)) {
+					oldmerchant.setCurSummaryTime(summaryTime!=null ? DateHelper.parseDate(summaryTime, "yyyy-MM-dd"): null);
+					oldmerchant.setNextSummaryTime(summaryTime!=null ? DateHelper.parseDate(summaryTime, "yyyy-MM-dd"): null);
+				}
 				oldmerchant.setLocation(location);
 				oldmerchant.setSignTime(startTime!=null ? DateHelper.parseDate(startTime, "yyyy-MM-dd"): null);
 				oldmerchant.setEndSignTime(endTime!=null ? DateHelper.parseDate(endTime, "yyyy-MM-dd"): null);
@@ -1492,21 +1495,23 @@ public class MerchantServiceImpl extends BaseServiceImpl<Merchant, String> imple
 					}
 					
 					//记录套餐更改记录
-					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);
+					for (int i = 1; i <= merchant.getLibServiceMonth(); i++) {
+						TbLibJoinConsume consume=new TbLibJoinConsume();
+						consume.setToLibId(merchant.getLibId());
+						consume.setToMerchantId(merchant.getId());
+						consume.setLibService(oldmerchant.getLibService());
+						consume.setPlatformService(0);
+						consume.setType(1);
+						consume.setRemarks("充值【套餐模式更改】,开通月份:"+i);
+						consume.setCreateTime(new Date());
+						libJoinConsumeService.save(consume);
+					}
 					
 					
 					//旧套餐大于新套餐的话,就服务降级
 					if(oldmerchant.getSignType()>merchant.getSignType()
 							&& StringUtils.isNotEmpty(oldmerchant.getLibId())) {
-						//libVipServiceService.removeLibService(oldmerchant.getLibId(), oldmerchant.getLibService());
+						libVipServiceService.removeLibService(oldmerchant.getLibId(), oldmerchant.getLibService());
 					}
 					//更新套餐
 					oldmerchant.setSignType(merchant.getSignType());
@@ -1564,7 +1569,8 @@ public class MerchantServiceImpl extends BaseServiceImpl<Merchant, String> imple
 				merchant.setCreateTime(new Date());
 				merchant.setSaleLoginName(curadmin.getLoginName());
 				merchant.setCurIsSummary(0);
-				merchant.setNextSummaryTime(summaryTime!=null ? DateHelper.parseDate(summaryTime, "yyyy-MM-dd"): null);
+				merchant.setCurSummaryTime(StringUtils.isNotEmpty(summaryTime) ? DateHelper.parseDate(summaryTime, "yyyy-MM-dd"): null);
+				merchant.setNextSummaryTime(StringUtils.isNotEmpty(summaryTime) ? DateHelper.parseDate(summaryTime, "yyyy-MM-dd"): null);
 				merchant.setSignTime(startTime!=null ? DateHelper.parseDate(startTime, "yyyy-MM-dd"):null);
 				merchant.setEndSignTime(endTime!=null ? DateHelper.parseDate(endTime, "yyyy-MM-dd"): null);
 				String code="SSJ-FX";
@@ -1639,15 +1645,17 @@ public class MerchantServiceImpl extends BaseServiceImpl<Merchant, String> imple
 				
 				
 				//记录开通商户记录
-				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);
+				for (int i = 1; i <= merchant.getLibServiceMonth(); i++) {
+					TbLibJoinConsume consume=new TbLibJoinConsume();
+					consume.setToLibId(merchant.getLibId());
+					consume.setToMerchantId(merchant.getId());
+					consume.setLibService(merchant.getLibService());
+					consume.setPlatformService(0);
+					consume.setType(1);
+					consume.setRemarks("充值【套餐模式开通】,开通月份:"+i);
+					consume.setCreateTime(new Date());
+					libJoinConsumeService.save(consume);
+				}
 	
 				this.syncRecordByMerchant(curadmin.getLoginName(), merchant.getId(),"", "新增套餐商户");
 		}

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

@@ -148,8 +148,8 @@ public class MerchantSignServiceImpl extends BaseServiceImpl<MerchantSign, Strin
 					}
 					
 					merchant.setCurIsSummary(merchant.getCurIsSummary()==null ? 1 : merchant.getCurIsSummary()+1);
-					merchant.setCurSummaryTime(new Date());
-					merchant.setNextSummaryTime(DateHelper.getMonthDate(merchant.getCurSummaryTime(),1));
+					//merchant.setCurSummaryTime(new Date());
+					merchant.setNextSummaryTime(DateHelper.getMonthDate(new Date(),1));
 					merchantService.save(merchant);
 					
 					//记录

+ 16 - 16
src/main/java/com/ssj/service/weixin/library/service/impl/LibJoinServiceConsumeImpl.java

@@ -130,22 +130,22 @@ public class LibJoinServiceConsumeImpl extends BaseServiceImpl<TbLibJoinConsume,
 						}
 					}else {
 						//如果还没结算过,就当次开始结算
-						if(merchant.getLibServiceMonth()>0 && (merchant.getCurIsSummary()==null || merchant.getCurIsSummary()==0)) {
-							merchant.setCurIsSummary(1);
-							merchant.setCurSummaryTime(new Date());
-							merchant.setNextSummaryTime(DateHelper.getMonthDate(merchant.getCurSummaryTime(),1));
-							merchantService.save(merchant);
-							
-							TbLibJoinConsume consume = new TbLibJoinConsume();
-							consume.setFromLibId(libId);
-							consume.setFromMerchantId(merchant.getId());
-							consume.setLibService(merchant.getLibService());
-							consume.setPlatformService(0);
-							consume.setType(2);
-							consume.setRemarks("消费【新模式用户激活消费】");
-							consume.setCreateTime(new Date());
-							this.save(consume);
-						}
+//						if(merchant.getLibServiceMonth()>0 && (merchant.getCurIsSummary()==null || merchant.getCurIsSummary()==0)) {
+//							merchant.setCurIsSummary(1);
+//							merchant.setCurSummaryTime(new Date());
+//							merchant.setNextSummaryTime(DateHelper.getMonthDate(merchant.getCurSummaryTime(),1));
+//							merchantService.save(merchant);
+//							
+//							TbLibJoinConsume consume = new TbLibJoinConsume();
+//							consume.setFromLibId(libId);
+//							consume.setFromMerchantId(merchant.getId());
+//							consume.setLibService(merchant.getLibService());
+//							consume.setPlatformService(0);
+//							consume.setType(2);
+//							consume.setRemarks("消费【新模式用户激活消费】");
+//							consume.setCreateTime(new Date());
+//							this.save(consume);
+//						}
 					}
 					
 				}

+ 87 - 37
src/main/java/com/ssj/service/weixin/sales/service/impl/LibVipServiceServiceImpl.java

@@ -1,6 +1,31 @@
 package com.ssj.service.weixin.sales.service.impl;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.hibernate.validator.constraints.NotBlank;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
+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.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.ssj.alipay.utils.AlipayOrderHelper;
 import com.ssj.bean.curator.TbVacationLimit;
 import com.ssj.bean.sys.give.GiveRecord;
@@ -8,21 +33,32 @@ import com.ssj.bean.weixin.libmy.domain.LibVip;
 import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
 import com.ssj.bean.weixin.libmy.domain.TbLibManager;
 import com.ssj.bean.weixin.order.domain.Order;
-import com.ssj.bean.weixin.sales.domain.*;
+import com.ssj.bean.weixin.sales.domain.LibBorrowedService;
+import com.ssj.bean.weixin.sales.domain.LibOrderDetails;
+import com.ssj.bean.weixin.sales.domain.LibSalesPrice;
+import com.ssj.bean.weixin.sales.domain.LibVipService;
+import com.ssj.bean.weixin.sales.domain.WorkDay;
 import com.ssj.bean.weixin.user.domain.User;
 import com.ssj.bean.weixin.zyb.domain.ZuoybCourse;
-import com.ssj.dao.weixin.sales.dao.*;
+import com.ssj.dao.weixin.sales.dao.LibCourseDao;
+import com.ssj.dao.weixin.sales.dao.LibSalesPriceDao;
+import com.ssj.dao.weixin.sales.dao.LibStaffingQueryDao;
+import com.ssj.dao.weixin.sales.dao.LibVipServiceDao;
+import com.ssj.dao.weixin.sales.dao.LibVipServiceQueryDao;
 import com.ssj.framework.basic.utils.DateHelper;
 import com.ssj.framework.core.common.service.BaseServiceImpl;
 import com.ssj.framework.core.persistence.DynamicSpecifications;
 import com.ssj.framework.core.persistence.SearchFilter;
 import com.ssj.framework.core.security.manager.TokenManager;
+import com.ssj.framework.core.util.HttpRemote;
+import com.ssj.framework.core.util.PropertiesUtil;
 import com.ssj.framework.core.util.ResponseConstant;
 import com.ssj.framework.core.util.ResponseEntity;
 import com.ssj.framework.core.util.StringUtil;
 import com.ssj.framework.core.util.SystemResourceLocator;
 import com.ssj.framework.weixin.pay.OrderHelper;
 import com.ssj.framework.weixin.pay.OrderUtil;
+import com.ssj.framework.weixin.pay.util.MD5Util;
 import com.ssj.framework.weixin.util.DateUtil;
 import com.ssj.service.conch.common.dto.ServiceRecordDto;
 import com.ssj.service.conch.common.request.PayVipBatchReq;
@@ -39,22 +75,6 @@ import com.ssj.service.weixin.sales.service.LibVipServiceService;
 import com.ssj.service.weixin.sales.service.WorkDayService;
 import com.ssj.service.weixin.user.service.UserService;
 import com.ssj.service.weixin.zuoyb.service.ZuoybCourseService;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.time.DateFormatUtils;
-import org.hibernate.validator.constraints.NotBlank;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.Cacheable;
-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.math.BigDecimal;
-import java.util.*;
 
 /** 
  * @author  ZhangCaibao 
@@ -1682,29 +1702,59 @@ public class LibVipServiceServiceImpl extends BaseServiceImpl<LibVipService, Str
             tokenManager.delString("CACH_SERVICE:ChildServiceList:com.ssj.service.weixin.sales.service.impl.LibVipServiceServiceImplgetChildServiceList" + vipId);
 		});
 	}
+	
 
 	@Override
 	public void removeLibService(String libId, Integer num) {
-		 if (num != null) {
-	            TbLibJoin libJoin = joinService.getById(libId);
-	            if (libJoin != null) {
-	                int studentNum = vipService.countByLibId(libId);
-	                //降级后的学生数大于机构可签约数,直接失效所有
-	                if (studentNum > num) {
-	                    //将馆下所有相关校区服务失效
-	                    libVipServiceDao.clearServiceByLibId(libId);
-	                    //解绑馆下所有学生
-	                    vipService.updateLibId(libId);
-	                }
-	            }
-	        } else {
-	            //将馆下所有相关校区服务失效
-	            libVipServiceDao.clearServiceByLibId(libId);
-	            //解绑馆下所有学生
-	            vipService.updateLibId(libId);
-	        }
 		
+		String host=PropertiesUtil.getValue("API_OPEN_URL");
+		String appid="zhidian";
+		String accessKey="Zhidian@34889_";
+		
+		String accessToken=createOpenToken(appid, accessKey);
+		String url=host+"/open/api/parents/share/dealServiceCRM?appid="+appid+"&accessToken="+accessToken;
+		
+		JSONObject json=new JSONObject();
+		json.put("appid", libId);
+		json.put("libId", libId);
+		json.put("num", num);
+		
+		try {
+			logger.info("调用第三方接口【dealServiceCRM】,请求URL:"+url);
+			logger.info("调用第三方接口【dealServiceCRM】,请求参数:"+json);
+			String text=HttpRemote.POSTMethod(url, json.toJSONString());
+			logger.info("调用第三方接口【dealServiceCRM】,返回结果:"+text);
+		} catch (Exception e) {
+			logger.info("调用第三方接口【dealServiceCRM】,异常");
+			e.printStackTrace();
+		}
 	}
-
+	
+	 public static String createOpenToken(String appid, String accessKey) {
+		 long time = System.currentTimeMillis() / 60000;
+		 return MD5Util.MD5Encode(appid + accessKey + time, "utf-8");
+	 }
+	
+	
+	 public static void main(String[] args) {
+		String appid="zhidian";
+		String accessKey="Zhidian@34889_";
+		String accessToken=createOpenToken(appid, accessKey);
+		String url="https://master.sharingschool.com/open/api/parents/share/dealServiceCRM?appid="+appid+"&accessToken="+accessToken;
+		
+		JSONObject json=new JSONObject();
+		json.put("libId", "11");
+		json.put("num", 22);
+		try {
+			String text=HttpRemote.POSTMethod(url, json.toJSONString());
+			System.out.println("调用第三方接口【dealServiceCRM】,返回结果:"+text);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		 
+	}
+	 
+	 
+	 
 
 }

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

@@ -149,7 +149,7 @@ dtext{
 			
 			<li>
 				<label><b >【服务包模式】</b>激活时间:<b >*</b></label>
-				<input type="text"  class="dfinput fl"  id="nextSummaryTime" name="nextSummaryTime"  onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',autoPickDate:true,minDate:'%y-%M-%d'})" autocomplete="off" th:value="${#dates.format(merchant.nextSummaryTime, 'yyyy-MM-dd')}" placeholder="激活时间">
+				<input type="text"  class="dfinput fl"  id="curSummaryTime" name="curSummaryTime"  onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',autoPickDate:true,minDate:'%y-%M-%d'})" autocomplete="off" th:value="${#dates.format(merchant.curSummaryTime, 'yyyy-MM-dd')}" placeholder="激活时间">
 			</li>
 			
 			<li>
@@ -754,7 +754,7 @@ function save(){
             'endTime':$("#endSignTime").val(),
             
             'libServiceMonth':$("#libServiceMonth").val(),
-            'summaryTime':$("#nextSummaryTime").val(),
+            'summaryTime':$("#curSummaryTime").val(),
             
             'province':$("#province").val(),
             'city':$("#city").val(),

+ 10 - 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>
@@ -179,6 +179,7 @@
 		    	<th style="max-width: 160px;" >合同时间</th>
 		    	<th>充值/已结算(月份)</th>
 		    	<th style="width: 60px;" >激活时间</th>
+		    	<th style="width: 60px;" >下个结算日</th>
 		        <th  >操作</th> 
 		    </tr> 
 		</thead>
@@ -220,6 +221,8 @@
 					   <span th:if="${item.nextSummaryTime==null && ( item.signType==1 || item.signType==2 || item.signType==3 )}" >已结清</span>
 					</td>
 					
+					<td  th:text="${#calendars.format(item.curSummaryTime,'yyyy-MM-dd')}" ></td> 
+					
 					<td  th:text="${#calendars.format(item.nextSummaryTime,'yyyy-MM-dd')}" ></td> 
 					
 <!-- 					<td  th:switch="${item.status}"> -->
@@ -240,10 +243,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>