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

商户续费,报表呈现

shenhao 4 éve
szülő
commit
d9f6ff6d58

+ 52 - 7
src/main/java/com/ssj/api/controller/ApiTrainController.java

@@ -1,5 +1,6 @@
 package com.ssj.api.controller;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -7,6 +8,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.ssj.api.domain.vo.train.*;
+import com.ssj.bean.sys.fx.domain.Merchant;
+import com.ssj.service.sys.fx.service.MerchantMealService;
+import com.ssj.service.sys.fx.service.MerchantService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -17,11 +22,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.ssj.api.domain.model.RoleTypeModel;
-import com.ssj.api.domain.vo.train.TrainExamUserSaveVo;
-import com.ssj.api.domain.vo.train.TrainExamVo;
-import com.ssj.api.domain.vo.train.TrainLoginVo;
-import com.ssj.api.domain.vo.train.TrainVideoFileVo;
-import com.ssj.api.domain.vo.train.TrainVideoVo;
 import com.ssj.api.security.annotation.IgnoreSecurity;
 import com.ssj.bean.sys.train.bean.ExamInfo;
 import com.ssj.bean.sys.train.bean.TrainUser;
@@ -64,6 +64,12 @@ public class ApiTrainController extends BaseController {
 	
 	@Autowired
     private TrainUserService trainUserService;
+
+	@Autowired
+	private MerchantService merchantService;
+
+	@Autowired
+	private MerchantMealService merchantMealService;
 	
 
 	private static List<RoleTypeModel> defaultRoleTypeModels=new ArrayList<RoleTypeModel>();
@@ -498,6 +504,45 @@ public class ApiTrainController extends BaseController {
         }
         return responseEntity;
     }
-	
-	
+
+	@IgnoreSecurity
+	@RequestMapping(value = "/changeMerchant", method = RequestMethod.POST)
+	@ApiOperation(value = "处理塾币商户转新模式", httpMethod = "POST",  notes = "账号密码登录接口")
+	public ResponseEntity changeMerchant(@RequestParam(name = "accessToken") String accessToken,
+								@RequestBody List<MerchantVo> list) {
+		ResponseEntity responseEntity = new ResponseEntity();
+		Map<String, Object> data=new HashMap<String, Object>();
+		try {
+			list.forEach(o->{
+				Merchant libMerchant=merchantService.getById(o.getMerchantId());
+				String libId = libMerchant.getLibId();
+				//冻结
+				libMerchant.setStatus(1);
+				//清空
+				libMerchant.setLibId(null);
+				merchantService.save(libMerchant);
+				//创建新用户
+				Merchant newMerchant = new Merchant();
+				newMerchant.setLibId(libId);
+				//优选套餐
+				newMerchant.setMealType(1);
+				newMerchant.setPosCode(libMerchant.getPosCode());
+				newMerchant.setParentPosCode(libMerchant.getParentPosCode());
+				newMerchant.setUnitName(libMerchant.getUnitName());
+				newMerchant.setPosType(2);
+				newMerchant.setType(5);
+				newMerchant.setLocation(libMerchant.getLocation());
+				merchantService.saveMerchantByNewTemp(newMerchant,o.getBeginTime(),o.getBeginTime(),libMerchant.getId());
+
+				//给新商户创建服务订单
+				int buyMouth = o.getMaxCount()%o.getCostCount()>0?(o.getMaxCount()/o.getCostCount())+1:o.getMaxCount()/o.getCostCount();
+				merchantMealService.saveMerchantMeal(newMerchant.getId(), 5, o.getCostCount(),buyMouth , 0, BigDecimal.ZERO.doubleValue(), BigDecimal.ZERO.doubleValue(), o.getBeginTime(), o.getBeginTime());
+			});
+			responseEntity.success("转换成功!");
+		} catch (Exception e) {
+			e.printStackTrace();
+			responseEntity.failure(ResponseConstant.CODE_500, "系统繁忙,请稍后重试");
+		}
+		return responseEntity;
+	}
 }

+ 46 - 0
src/main/java/com/ssj/api/domain/vo/train/MerchantVo.java

@@ -0,0 +1,46 @@
+package com.ssj.api.domain.vo.train;
+
+import com.ssj.bean.common.framework.core.domain.BaseRequest;
+
+public class MerchantVo extends BaseRequest {
+
+	
+	private String merchantId;
+	
+	private int maxCount;
+	private int costCount;
+
+	private String beginTime;
+
+	public String getMerchantId() {
+		return merchantId;
+	}
+
+	public void setMerchantId(String merchantId) {
+		this.merchantId = merchantId;
+	}
+
+	public int getMaxCount() {
+		return maxCount;
+	}
+
+	public void setMaxCount(int maxCount) {
+		this.maxCount = maxCount;
+	}
+
+	public int getCostCount() {
+		return costCount;
+	}
+
+	public void setCostCount(int costCount) {
+		this.costCount = costCount;
+	}
+
+	public String getBeginTime() {
+		return beginTime;
+	}
+
+	public void setBeginTime(String beginTime) {
+		this.beginTime = beginTime;
+	}
+}

+ 5 - 0
src/main/java/com/ssj/dao/sys/fx/dao/MerchantAreaDao.java

@@ -2,6 +2,7 @@ package com.ssj.dao.sys.fx.dao;
 
 import com.ssj.bean.sys.fx.domain.MerchantArea;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
@@ -18,4 +19,8 @@ public interface MerchantAreaDao extends JpaRepository<MerchantArea, String> {
 
 	@Query(nativeQuery = true, value = " SELECT count(1) from fx_merchant_area t join fx_merchant t11 on t.merchant_id = t11.id join tb_lib_join t12 on t11.lib_id = t12.id where t.school_name=?1  ")
     int findLibCountBySchoolName(String schoolName);
+
+	@Modifying
+	@Query(nativeQuery = true, value = "update fx_merchant_area set merchant_id=?1 where merchant_id=?2")
+    void updateArea(String id, String oldId);
 }

+ 1 - 1
src/main/java/com/ssj/dao/sys/fx/dao/impl/FinanceQueryDaoImpl.java

@@ -641,7 +641,7 @@ public class FinanceQueryDaoImpl implements FinanceQueryDao {
          selSql.append("  	SELECT IFNULL( SUM( o.price ), 0 ) FROM fx_merchant_meal_order o  WHERE o.merchant_id = t.id AND TO_DAYS( o.create_time )>= TO_DAYS( ? ) AND TO_DAYS( o.create_time )<= TO_DAYS(? ) ");
          selSql.append("  ) AS pr_1, ");
          selSql.append("  ( ");
-         selSql.append("  	SELECT IFNULL(o.price*count(1)/(o.buy_month+o.give_month), 0 ) FROM fx_merchant_meal c LEFT JOIN fx_merchant_meal_order o ON c.order_id=o.id WHERE c.merchant_id = t.id AND c.type>1 AND c.remarks is NULL AND TO_DAYS( c.sign_time )>= TO_DAYS( ?) AND TO_DAYS( c.sign_time )<= TO_DAYS(?) ");
+         selSql.append("  	SELECT IFNULL(o.price*count(1)/(o.buy_month+o.give_month), 0 ) FROM fx_merchant_meal c LEFT JOIN fx_merchant_meal_order o ON c.order_id=o.id WHERE c.merchant_id = t.id AND c.type>1 AND c.remarks <>'开始计费期' AND TO_DAYS( c.sign_time )>= TO_DAYS( ?) AND TO_DAYS( c.sign_time )<= TO_DAYS(?) ");
          selSql.append("  ) AS pr_2, ");
          selSql.append("  ( ");
          selSql.append("  	SELECT IFNULL( SUM( o.price ), 0 ) FROM fx_merchant_sign_order o WHERE o.merchant_id = t.id  AND TO_DAYS( o.create_time )>= TO_DAYS( ? ) AND TO_DAYS( o.create_time )<= TO_DAYS(? ) ");

+ 1 - 1
src/main/java/com/ssj/dao/weixin/sales/dao/LibSalesPriceDao.java

@@ -38,7 +38,7 @@ public interface LibSalesPriceDao  extends JpaRepository<LibSalesPrice, String>{
 	 @Modifying
 	 public void updateName(String id ,String name);
 	 
-	 @Query(nativeQuery = true, value = " select *  from   tb_lib_sales_price  where lib_id = ?1  ORDER BY   species asc  ,type asc  ")
+	 @Query(nativeQuery = true, value = " select *  from   tb_lib_sales_price  where lib_id = ?1 and species='X001'  ORDER BY   species asc  ,type asc  ")
 	 public List<LibSalesPrice> findByLibId(String libId);
 	 
 	LibSalesPrice findByLibIdAndSpeciesAndType(String libId,String species ,String type);

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

@@ -16,4 +16,6 @@ public interface MerchantAreaService extends BaseService<MerchantArea, String> {
     MerchantArea findBySchoolIdAndMerchant(String areaId,String merchantId);
 
     int findLibCountBySchoolName(String schoolName);
+
+    void updateArea(String id, String oldId);
 }

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

@@ -153,6 +153,7 @@ public interface MerchantService extends BaseService<Merchant, String> {
 	
 	//更新商户的当前有效的服务包和加油包
 	Merchant updateMerchantByLibService(Merchant merchant);
-	
 
+
+    void saveMerchantByNewTemp(Merchant newMerchant, String beginTime, String endTime,String oldId);
 }

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

@@ -54,6 +54,11 @@ public class MerchantAreaServiceImpl extends BaseServiceImpl<MerchantArea, Strin
         return dao.findLibCountBySchoolName(schoolName);
     }
 
+    @Override
+    public void updateArea(String id, String oldId) {
+        dao.updateArea(id,oldId);
+    }
+
 }
 
 

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

@@ -1818,12 +1818,69 @@ public class MerchantServiceImpl extends BaseServiceImpl<Merchant, String> imple
 		
 		return null;
 	}
-	
-	
-	
-	
 
-	
+	@Override
+	public void saveMerchantByNewTemp(Merchant merchant, String startActiveTimeStr, String activeTimeStr,String oldId) {
+		merchant.setLocation(merchant.getLocation());
+		merchant.setPortNum(0);
+		merchant.setPrice((double) 0);
+		merchant.setOutPrice((double) 0);
+		merchant.setLibService(0);
+		merchant.setPlatformService(0);
+		merchant.setHardwareService(0);
+		merchant.setHardwarePrice((double)0);
+		merchant.setCreateTime(new Date());
+		merchant.setSaleLoginName("admin");
+		merchant.setCurIsSummary(0);
+		merchant.setStatus(3);
+
+		//激活开始日期
+		if(StringUtils.isNotEmpty(startActiveTimeStr)) {
+			merchant.setStartActiveTime(DateHelper.parseDate(startActiveTimeStr, "yyyy-MM-dd"));
+		}
+		//激活结束日期
+		if(StringUtils.isNotEmpty(activeTimeStr)) {
+			merchant.setActiveTime(DateHelper.parseDate(activeTimeStr, "yyyy-MM-dd"));
+		}
+		//计费开始日期也可设为空
+		merchant.setComputeTime(null);
+
+
+
+
+		//添加admin用户信息
+		Admin adminOld=adminService.getByLoginName(merchant.getPosCode());
+		merchant.setPosCode(merchant.getPosCode().concat("1"));
+		Admin admin=new Admin();
+		admin.setPassword(adminOld.getPassword());
+		admin.setLoginName(merchant.getPosCode());
+		admin.setNickName(merchant.getPosCode());
+		admin.setCreateTime(new Date());
+		admin.setStatus(1);
+		admin=adminService.save(admin);
+
+		String code="SSJ-FX";
+		if(StringUtils.isNotEmpty(merchant.getParentPosCode())){
+			Merchant pMerchant =this.getMerchantByPosCode(merchant.getParentPosCode());
+			code=pMerchant.getOrgCode()+"-"+merchant.getPosCode();
+		}else{
+			code=code+"-"+merchant.getPosCode();
+		}
+		merchant.setOrgCode(code);
+		//添加商户的权限
+		roleService.saveAdminRole(admin.getId(), "eadc6389-6a29-4864-bce6-a18b30e0a998");
+
+		//保存商户信息
+		merchant=this.save(merchant);
+
+		if(StringUtils.isNotEmpty(oldId)) {
+			//将原来商户的学校更新为现在商户的学校
+			merchantAreaService.updateArea(merchant.getId(),oldId);
+		}
+
+		this.syncRecordByMerchant("admin", merchant.getId(),"", "新增套餐商户");
+	}
+
 
 }
 

+ 2 - 2
src/main/java/com/ssj/sys/controller/FinanceReportController.java

@@ -515,7 +515,7 @@ public class FinanceReportController extends BaseController {
         sp.setParams(params);
         Page<Map<String,Object>> page = financeService.balanceConsumeDetailList_New2(params, initPage(pageNo, pageSize));
         List<Map<String,Object>> list=page.getContent();
-        for (Map<String, Object> map : list) {
+//        for (Map<String, Object> map : list) {
 //        	if(Integer.parseInt(map.get("meal_type").toString())==4) {
 //        		map.put("price_1", "0");
 //        	}else {
@@ -552,7 +552,7 @@ public class FinanceReportController extends BaseController {
 //        	map.put("price_1", "0");
 //        	map.put("sum_price_3", new BigDecimal(map.get("price").toString()).doubleValue()+new BigDecimal(map.get("price_1").toString()).doubleValue());
 
-		}
+//		}
         
         
         sp.setRowCnt((int) page.getTotalElements());