Przeglądaj źródła

1.添加snb审核流程

slambb 4 lat temu
rodzic
commit
bda59dac4d

+ 1 - 0
src/main/java/com/td/boss/config/enums/ResultEnum.java

@@ -55,6 +55,7 @@ public enum ResultEnum {
 
     APPLY_SNB_AMOUNT_ERROR(605,"snb参数错误!"),
     APPLY_SNB_TOO_MUCH(606,"snb申请过多,待审核完成后再申请!"),
+    APPLY_SNB_HAS_APPLY(607,"已有一笔snb申请中,待审核完成后再申请!"),
 
     //土地数据
     LAND_DATA_ERROR(701,"土地数据不能初始化!"),

+ 4 - 2
src/main/java/com/td/boss/game/complayerland/controller/ComPlayerLandController.java

@@ -497,8 +497,10 @@ public class ComPlayerLandController extends CommonController<ComPlayerLandVo, C
             List<ComPlayerDisasterProtected> protectList = disasterProtectedService.getComPlayerDisasterProtectedByUserIdOrderByProtectTimeDesc(comPlayerLandAndPlantVo.getUserId());
 
             //灾难发生时间
-            Date endDate = com.td.boss.util.DateUtil.getOldDateAddDay(comPlayerLandAndPlantVo.getPlantStart(), comPlayerLandAndPlantVo.getPlantMature());
-            long randomDate = RandomUtil.randomLong(comPlayerLandAndPlantVo.getPlantStart().getTime(), endDate.getTime());
+            Date endDate = DateUtil.getOldDateAddDay(comPlayerLandAndPlantVo.getPlantStart(), comPlayerLandAndPlantVo.getPlantMature());
+            //log.info(comPlayerLandAndPlantVo.getPlantStart().getTime() + "= " + endDate.getTime());
+            long randomDate =comPlayerLandAndPlantVo.getPlantStart().compareTo(endDate) == 0?
+                    endDate.getTime(): RandomUtil.randomLong(comPlayerLandAndPlantVo.getPlantStart().getTime(), endDate.getTime());
             Date disasterDate = new Date(randomDate);
             //获取损失的数据
             List<ComPlayerProfit> comPlayerProfits = comPlayerProfitService.findByUserIdAndPlantFlagAndLandId(comPlayerLandAndPlantVo.getUserId(), comPlayerLandAndPlantVo.getPlantFlag(), comPlayerLandAndPlantVo.getConfigLandId());

+ 4 - 2
src/main/java/com/td/boss/game/complayerland/service/ComPlayerDisasterLogServiceImpl.java

@@ -246,7 +246,9 @@ public class ComPlayerDisasterLogServiceImpl extends CommonServiceImpl<ComPlayer
                 if (redisLock.lock(_disasterKey, String.valueOf(time))) {
                     //灾难发生时间
                     Date endDate = com.td.boss.util.DateUtil.getOldDateAddDay(_comPlayerLand.getPlantStart(), _comPlayerLand.getPlantMature());
-                    long randomDate = RandomUtil.randomLong(_comPlayerLand.getPlantStart().getTime(), endDate.getTime());
+                    long randomDate = _comPlayerLand.getPlantStart().compareTo(endDate) == 0?
+                            endDate.getTime():
+                            RandomUtil.randomLong(_comPlayerLand.getPlantStart().getTime(), endDate.getTime());
                     Date disasterDate = new Date(randomDate);
                     //获取损失的数据
                     List<ComPlayerProfit> comPlayerProfits = comPlayerProfitService.findByUserIdAndPlantFlagAndLandId(_comPlayerLand.getUserId(), _comPlayerLand.getPlantFlag(), _comPlayerLand.getConfigLandId());
@@ -281,7 +283,7 @@ public class ComPlayerDisasterLogServiceImpl extends CommonServiceImpl<ComPlayer
                     if (!isBeastProfit && protectedDate != null && disasterDate.before(protectedDate)) {
                         //灾难的随机时间比防护包时间后,说明防护包到期
                         //成熟的时候触发第一次自然灾难
-                        ComPlayerProfitVo beastProfitVo =  comPlayerProfitService.addFirstDisasterAndLoss(CopyUtil.copy(_comPlayerLand, ComPlayerLand.class),
+                        ComPlayerProfitVo beastProfitVo = comPlayerProfitService.addFirstDisasterAndLoss(CopyUtil.copy(_comPlayerLand, ComPlayerLand.class),
                                 comMallSeedVo, 3, _allLossProfit);
                         //多次执行需要加上当前操作的利润
                         _allLossProfit += beastProfitVo.getStolen();

+ 19 - 7
src/main/java/com/td/boss/game/comsnbapply/controller/ComSnbApplyController.java

@@ -29,33 +29,45 @@ public class ComSnbApplyController extends CommonController<ComSnbApplyVo, ComSn
 
 
     @GetMapping("getPage")
-    public Result<PageInfo<ComSnbApplyVo>> getPageFunction(@RequestParam(value = "userId") String userId) {
+    public Result<PageInfo<ComSnbApplyVo>> getPageFunction(@RequestParam(value = "userId") String userId,
+                                                           @RequestParam(value = "isState") Integer isState,
+                                                           @RequestParam(value = "page") Integer page,
+                                                           @RequestParam(value = "limit") Integer limit) {
         ComSnbApplyVo comSnbApplyVo = new ComSnbApplyVo();
         comSnbApplyVo.setUserId(userId);
+        comSnbApplyVo.setIsState(isState);
+        comSnbApplyVo.setPage(page + 1);
+        comSnbApplyVo.setRows(limit);
         return comSnbApplyService.page(comSnbApplyVo);
     }
 
     @PostMapping("applySnbToCnt")
     public Result<ComSnbApplyVo> applySnbToCntFunction(@RequestParam(value = "userId") String userId,
-                                                 @RequestParam(value = "applyAmount") Integer applyAmount){
+                                                       @RequestParam(value = "applyAmount") Integer applyAmount) {
         //判断输入数量,不能为负数
-        if(applyAmount<=0){
-            return Result.of(null,false, ResultEnum.APPLY_SNB_AMOUNT_ERROR.getMessage(),ResultEnum.APPLY_SNB_AMOUNT_ERROR.getCode());
+        if (applyAmount <= 0) {
+            return Result.of(null, false, ResultEnum.APPLY_SNB_AMOUNT_ERROR.getMessage(), ResultEnum.APPLY_SNB_AMOUNT_ERROR.getCode());
         }
         // 判断当前是否累加超过当前用户的snb
-        List<ComSnbApply> comSnbApplies = comSnbApplyService.findAllByUserIdAndIsState(userId,0);
+        List<ComSnbApply> comSnbApplies = comSnbApplyService.findAllByUserIdAndIsState(userId, 0);
+        for (int i = 0; i < comSnbApplies.size(); i++) {
+            if(applyAmount.equals(comSnbApplies.get(i).getSnb())){
+                return Result.of(null, false, ResultEnum.APPLY_SNB_HAS_APPLY.getMessage(), ResultEnum.APPLY_SNB_HAS_APPLY.getCode());
+            }
+        }
         Integer _applySnb = comSnbApplies.stream().mapToInt(ComSnbApply::getSnb).sum();
         //加上当前的
         _applySnb += applyAmount;
 
         ComUsersVo comUsersVo = comUsersService.findByUserId(userId);
         double _allSnbDouble = DoubleUtil.add(comUsersVo.getSnb().doubleValue(), comUsersVo.getSnbPart());
-        if(DoubleUtil.compare(_allSnbDouble,_applySnb.doubleValue()).equals(-1)){
-            return Result.of(null,false, ResultEnum.APPLY_SNB_TOO_MUCH.getMessage(),ResultEnum.APPLY_SNB_TOO_MUCH.getCode());
+        if (DoubleUtil.compare(_allSnbDouble, _applySnb.doubleValue()).equals(-1)) {
+            return Result.of(null, false, ResultEnum.APPLY_SNB_TOO_MUCH.getMessage(), ResultEnum.APPLY_SNB_TOO_MUCH.getCode());
         }
 
         ComSnbApplyVo comSnbApplyVo = new ComSnbApplyVo();
         comSnbApplyVo.setUserId(userId);
+        comSnbApplyVo.setAddress(comUsersVo.getAddress());
         comSnbApplyVo.setSnb(applyAmount);
         comSnbApplyVo.setSnbDescribe("applySnbToCnt,发起兑换记录snb!");
         comSnbApplyVo.setIsState(0);

+ 2 - 0
src/main/java/com/td/boss/game/comsnbapply/pojo/ComSnbApply.java

@@ -14,6 +14,8 @@ public class ComSnbApply implements Serializable {
 
     private String userId;//
 
+    private String address;//
+
     private Integer snb;//游戏的snb
 
     private Integer isState;//0:申请中,1:申请通过,2:申请驳回

+ 3 - 0
src/main/java/com/td/boss/game/comsnbapply/repository/ComSnbApplyRepository.java

@@ -15,4 +15,7 @@ public interface ComSnbApplyRepository extends CommonRepository<ComSnbApply, Str
     Optional<ComSnbApply> findByUserIdAndSnbAndIsState(String userId,Integer snb,Integer isState);
 
     List<ComSnbApply> findAllByUserId(String userId);
+
+
+    List<ComSnbApply> findAllByIdIn(List<String> ids);
 }

+ 14 - 12
src/main/java/com/td/boss/game/comsnbapply/scheduled/BackService.java

@@ -1,16 +1,14 @@
 package com.td.boss.game.comsnbapply.scheduled;
 
 import cn.hutool.core.date.DateUtil;
+import com.td.boss.game.comsnbapply.pojo.ComSnbApply;
 import com.td.boss.game.comsnbapply.service.ComSnbApplyService;
 import com.td.boss.game.comsnbapply.vo.ComSnbApplyVo;
 import com.td.boss.sys.syssetting.pojo.SysSetting;
 import com.td.boss.sys.syssettingtask.pojo.SysSettingTask;
 import com.td.boss.sys.syssettingtask.service.SysSettingTaskService;
 import com.td.boss.sys.syssettingtask.vo.SysSettingTaskVo;
-import com.td.boss.util.RedisData;
-import com.td.boss.util.RedisLock;
-import com.td.boss.util.SysSettingTaskUtil;
-import com.td.boss.util.SysSettingUtil;
+import com.td.boss.util.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Conditional;
@@ -39,15 +37,15 @@ public class BackService {
     private RedisLock redisLock;
 
     @PostConstruct
-    public void init(){
+    public void init() {
         log.info("apply snb run task...");
     }
 
     @Scheduled(cron = "0/10 * * * * *")
-    public void scheduleTask(){
+    public void scheduleTask() {
         //log.info("task running....");
         //todo 处理是否自动审查
-        if("N".equals(SysSettingTaskUtil.getSysSettingTask().getApplyAutoExamine())){
+        if ("N".equals(SysSettingTaskUtil.getSysSettingTask().getApplyAutoExamine())) {
             return;
         }
         long time = System.currentTimeMillis() + RedisData.getAutoApplyTimeout();
@@ -60,13 +58,17 @@ public class BackService {
         ComSnbApplyVo getComSnbApplyVo = new ComSnbApplyVo();
         getComSnbApplyVo.setIsState(0);//查找正在申请中的数据,isState = 0;
         List<ComSnbApplyVo> comSnbApplyVos = comSnbApplyService.list(getComSnbApplyVo).getData();
-        log.info("审查任务数量:{}个", comSnbApplyVos.size());
+        //log.info("审查任务数量:{}个", comSnbApplyVos.size());
         for (ComSnbApplyVo comSnbApplyVo : comSnbApplyVos) {
-            //全部给通过
-            comSnbApplyVo.setIsState(1);
-            comSnbApplyService.save(comSnbApplyVo);
+            //snb 在[max,min]区间,才能过审
+            if (comSnbApplyVo.getSnb() <= SysSettingTaskUtil.getSysSettingTask().getConditionSnbMax() &&
+                    comSnbApplyVo.getSnb() >= SysSettingTaskUtil.getSysSettingTask().getConditionSnbMin() ) {
+                //全部给通过
+                comSnbApplyVo.setIsState(1);
+            }
         }
+        comSnbApplyService.saveAll(CopyUtil.copyList(comSnbApplyVos, ComSnbApply.class));
         redisLock.unlock(_redisKey, String.valueOf(time));
-        log.info("正在自动审查中任务结束");
+        //log.info("正在自动审查中任务结束");
     }
 }

+ 5 - 0
src/main/java/com/td/boss/game/comsnbapply/service/ComSnbApplyService.java

@@ -14,4 +14,9 @@ public interface ComSnbApplyService extends CommonService<ComSnbApplyVo, ComSnbA
     ComSnbApply findByUserIdAndSnbAndIsState(String userId,Integer snb,Integer isState);
 
     List<ComSnbApply> findAllByUserId(String userId);
+
+    List<ComSnbApply> findAllByIn(List<String> ids);
+
+    List<ComSnbApply> saveAll(List<ComSnbApply> comSnbApplies);
+
 }

+ 12 - 0
src/main/java/com/td/boss/game/comsnbapply/service/ComSnbApplyServiceImpl.java

@@ -35,4 +35,16 @@ public class ComSnbApplyServiceImpl extends CommonServiceImpl<ComSnbApplyVo, Com
     public List<ComSnbApply> findAllByUserId(String userId) {
         return comSnbApplyRepository.findAllByUserId(userId);
     }
+
+
+    @Override
+    public List<ComSnbApply> findAllByIn(List<String> ids) {
+        return comSnbApplyRepository.findAllByIdIn(ids);
+    }
+
+    @Override
+    public List<ComSnbApply> saveAll(List<ComSnbApply> comSnbApplies) {
+        return comSnbApplyRepository.saveAll(comSnbApplies);
+    }
+
 }

+ 2 - 0
src/main/java/com/td/boss/game/comsnbapply/vo/ComSnbApplyVo.java

@@ -10,6 +10,8 @@ public class ComSnbApplyVo extends PageCondition implements Serializable {
 
     private String userId;//
 
+    private String address;//
+
     private Integer snb;//游戏的snb
 
     private Integer isState;//0:申请中,1:申请通过,2:申请驳回

+ 4 - 0
src/main/java/com/td/boss/game/comsnbfreeze/controller/ComSnbFreezeController.java

@@ -136,6 +136,8 @@ public class ComSnbFreezeController extends CommonController<ComSnbFreezeVo, Com
         //todo 新增一个判断当前交易是否存在对应snb通过审核的
         ComSnbApply comSnbApply = comSnbApplyService.findByUserIdAndSnbAndIsState(id.toString(),snbAmount,1);
         if(comSnbApply == null){
+            comSnbApply.setIsState(2);
+            comSnbApplyService.save(CopyUtil.copy(comSnbApply, ComSnbApplyVo.class));
             map.put("msg", "此交易未通过审核,返回给用户账户待用户提交审核");
             return Result.of(map);
         }
@@ -146,6 +148,8 @@ public class ComSnbFreezeController extends CommonController<ComSnbFreezeVo, Com
             map.put("msg", "账户snb不足");
             //WALLET_SNB_INSUFFICIENT_QUANTITY(602,"snb不足以支付!")
             //return Result.of(map, false, ResultEnum.WALLET_SNB_INSUFFICIENT_QUANTITY.getMessage(), ResultEnum.WALLET_SNB_INSUFFICIENT_QUANTITY.getCode());
+            comSnbApply.setIsState(2);
+            comSnbApplyService.save(CopyUtil.copy(comSnbApply, ComSnbApplyVo.class));
             return Result.of(map);
         }
         //如果数量够,写入修改对应操作

+ 55 - 37
src/main/java/com/td/boss/sys/sysGame/controller/sysGamePropertyController.java

@@ -20,6 +20,7 @@ import com.td.boss.game.commallseed.service.ComMallSeedService;
 import com.td.boss.game.commallseed.vo.ComMallSeedVo;
 import com.td.boss.game.complayergoods.service.ComPlayerGoodsService;
 import com.td.boss.game.complayergoods.vo.ComPlayerGoodsTypeSumVo;
+import com.td.boss.game.comsnbapply.pojo.ComSnbApply;
 import com.td.boss.game.comsnbapply.service.ComSnbApplyService;
 import com.td.boss.game.comsnbapply.vo.ComSnbApplyVo;
 import com.td.boss.game.comsnbtran.service.ComSnbTranService;
@@ -28,15 +29,16 @@ import com.td.boss.game.comsnbtran.vo.ComSnbTranTranTypeSumVo;
 import com.td.boss.game.comusers.pojo.ComUsers;
 import com.td.boss.game.comusers.service.ComUsersService;
 import com.td.boss.game.comusers.vo.ComUsersVo;
+import com.td.boss.sys.sysGame.vo.SysApplySNBToCNTVo;
+import com.td.boss.util.CopyUtil;
 import com.td.boss.util.SysSettingTaskUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 
+import java.util.Arrays;
 import java.util.List;
 
 @Slf4j
@@ -70,19 +72,18 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
 
 
     @GetMapping("CNTAndSNB")
-    public ModelAndView CNTAndSNB(){
+    public ModelAndView CNTAndSNB() {
 
         return new ModelAndView("sys/aComCNTAnbSNB/CNTAndSNB");
     }
 
 
-
     //土地租赁消耗总CNT数量,今日新增土地租赁消耗CNT数量
     @PostMapping("findAllCNTGroupByPayType")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComCntOrderPayTypeSumVo>> findAllCNTGroupByPayType(ComCntOrderVo comCntOrderVo){
-        List<ComCntOrderPayTypeSumVo> comCntOrderPayTypeSumVoList =  comCntOrderService.findAllCNTSumGroupByPayType();
+    public Result<PageInfo<ComCntOrderPayTypeSumVo>> findAllCNTGroupByPayType(ComCntOrderVo comCntOrderVo) {
+        List<ComCntOrderPayTypeSumVo> comCntOrderPayTypeSumVoList = comCntOrderService.findAllCNTSumGroupByPayType();
         PageInfo<ComCntOrderPayTypeSumVo> pageInfo = new PageInfo<>();
         pageInfo.setPage(1);//页码
         pageInfo.setPageSize(5);//页面大小
@@ -95,8 +96,8 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     @PostMapping("findAllCNTSumGroupByPayTypeFromDate")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComCntOrderPayTypeSumVo>> findAllCNTSumGroupByPayTypeFromDate(ComCntOrderDateVo comCntOrderDateVo){
-        List<ComCntOrderPayTypeSumVo> comCntOrderPayTypeSumVoList =  comCntOrderService.findAllCNTSumGroupByPayTypeFromDate(comCntOrderDateVo.getStartTime(),comCntOrderDateVo.getEndTime());
+    public Result<PageInfo<ComCntOrderPayTypeSumVo>> findAllCNTSumGroupByPayTypeFromDate(ComCntOrderDateVo comCntOrderDateVo) {
+        List<ComCntOrderPayTypeSumVo> comCntOrderPayTypeSumVoList = comCntOrderService.findAllCNTSumGroupByPayTypeFromDate(comCntOrderDateVo.getStartTime(), comCntOrderDateVo.getEndTime());
         PageInfo<ComCntOrderPayTypeSumVo> pageInfo = new PageInfo<>();
         pageInfo.setPage(1);//页码
         pageInfo.setPageSize(5);//页面大小
@@ -110,8 +111,8 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     @PostMapping("findAllSNBGroupByPayType")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComSnbTranTranTypeSumVo>> findAllSNBGroupByPayType(ComCntOrderVo comCntOrderVo){
-        List<ComSnbTranTranTypeSumVo> comSnbTranTranTypeSumVoList =  comSnbTranService.findAllSNBSumGroupByPayType();
+    public Result<PageInfo<ComSnbTranTranTypeSumVo>> findAllSNBGroupByPayType(ComCntOrderVo comCntOrderVo) {
+        List<ComSnbTranTranTypeSumVo> comSnbTranTranTypeSumVoList = comSnbTranService.findAllSNBSumGroupByPayType();
         PageInfo<ComSnbTranTranTypeSumVo> pageInfo = new PageInfo<>();
         pageInfo.setPage(1);//页码
         pageInfo.setPageSize(5);//页面大小
@@ -124,8 +125,8 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     @PostMapping("findAllSNBSumGroupByPayTypeFromDate")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComSnbTranTranTypeSumVo>> findAllSNBSumGroupByPayTypeFromDate(ComSnbTranDateVo comSnbTranDateVo){
-        List<ComSnbTranTranTypeSumVo> comSnbTranTranTypeSumVoList =  comSnbTranService.findAllSNBSumGroupByPayTypeFromDate(comSnbTranDateVo.getStartTime(),comSnbTranDateVo.getEndTime());
+    public Result<PageInfo<ComSnbTranTranTypeSumVo>> findAllSNBSumGroupByPayTypeFromDate(ComSnbTranDateVo comSnbTranDateVo) {
+        List<ComSnbTranTranTypeSumVo> comSnbTranTranTypeSumVoList = comSnbTranService.findAllSNBSumGroupByPayTypeFromDate(comSnbTranDateVo.getStartTime(), comSnbTranDateVo.getEndTime());
         PageInfo<ComSnbTranTranTypeSumVo> pageInfo = new PageInfo<>();
         pageInfo.setPage(1);//页码
         pageInfo.setPageSize(5);//页面大小
@@ -136,7 +137,7 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     }
 
     @GetMapping("playerGoods")
-    public ModelAndView playerGoods(){
+    public ModelAndView playerGoods() {
 
         return new ModelAndView("sys/aComPlayerGoods/playerGoods");
     }
@@ -144,8 +145,8 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     @PostMapping("findAllGroupByGoodsType")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComPlayerGoodsTypeSumVo>> findAllGroupByGoodsType(){
-        List<ComPlayerGoodsTypeSumVo> comPlayerGoodsTypeSumVoList =  comPlayerGoodsService.findAllGroupByGoodsType();
+    public Result<PageInfo<ComPlayerGoodsTypeSumVo>> findAllGroupByGoodsType() {
+        List<ComPlayerGoodsTypeSumVo> comPlayerGoodsTypeSumVoList = comPlayerGoodsService.findAllGroupByGoodsType();
         PageInfo<ComPlayerGoodsTypeSumVo> pageInfo = new PageInfo<>();
         pageInfo.setPage(1);//页码
         pageInfo.setPageSize(5);//页面大小
@@ -156,10 +157,9 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     }
 
 
-
     //获取种子设置页面
     @GetMapping("seedConfig")
-    public ModelAndView seedConfig(){
+    public ModelAndView seedConfig() {
         return new ModelAndView("sys/aComConfig/seedConfig");
     }
 
@@ -167,8 +167,8 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     @PostMapping("findAllSeedConfig")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComMallSeed>> findAllSeedConfig(){
-        List<ComMallSeed> comMallSeedList =  comMallSeedService.findMallSeedAll();
+    public Result<PageInfo<ComMallSeed>> findAllSeedConfig() {
+        List<ComMallSeed> comMallSeedList = comMallSeedService.findMallSeedAll();
         PageInfo<ComMallSeed> pageInfo = new PageInfo<>();
         pageInfo.setPage(1);//页码
         pageInfo.setPageSize(10);//页面大小
@@ -181,21 +181,22 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     @PostMapping("saveSeedConfig")
     @Decrypt
     @Encrypt
-    public Result saveSeedConfig(ComMallSeedVo comMallSeedVo){
+    public Result saveSeedConfig(ComMallSeedVo comMallSeedVo) {
         return comMallSeedService.save(comMallSeedVo);
     }
 
 
     //获取土地设置页面
     @GetMapping("landConfig")
-    public ModelAndView landConfig(){
+    public ModelAndView landConfig() {
         return new ModelAndView("sys/aComConfig/landConfig");
     }
+
     @PostMapping("findAllLandConfig")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComConfigLand>> findAllLandConfig(){
-        List<ComConfigLand> comConfigLandList =  comConfigLandService.findConfigLandAll();
+    public Result<PageInfo<ComConfigLand>> findAllLandConfig() {
+        List<ComConfigLand> comConfigLandList = comConfigLandService.findConfigLandAll();
         PageInfo<ComConfigLand> pageInfo = new PageInfo<>();
         pageInfo.setPage(1);//页码
         pageInfo.setPageSize(comConfigLandList.size());//页面大小
@@ -204,23 +205,25 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
         pageInfo.setTotal(1);//总页数
         return Result.of(pageInfo);
     }
+
     @PostMapping("saveLandConfig")
     @Decrypt
     @Encrypt
-    public Result saveLandConfig(ComConfigLandVo comConfigLandVo){
+    public Result saveLandConfig(ComConfigLandVo comConfigLandVo) {
         return comConfigLandService.save(comConfigLandVo);
     }
+
     //获取果实销售价格
     @GetMapping("fruitConfig")
-    public ModelAndView fruitConfig(){
+    public ModelAndView fruitConfig() {
         return new ModelAndView("sys/aComConfig/fruitConfig");
     }
 
     @PostMapping("findAllFruitConfig")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComFruit>> findAllFruitConfig(){
-        List<ComFruit> comFruitList =  comFruitService.findFruitAll();
+    public Result<PageInfo<ComFruit>> findAllFruitConfig() {
+        List<ComFruit> comFruitList = comFruitService.findFruitAll();
         PageInfo<ComFruit> pageInfo = new PageInfo<>();
         pageInfo.setPage(1);//页码
         pageInfo.setPageSize(comFruitList.size());//页面大小
@@ -229,26 +232,28 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
         pageInfo.setTotal(1);//总页数
         return Result.of(pageInfo);
     }
+
     @PostMapping("saveFruitConfig")
     @Decrypt
     @Encrypt
-    public Result saveFruitConfig(ComFruitVo comFruitVo){
+    public Result saveFruitConfig(ComFruitVo comFruitVo) {
         return comFruitService.save(comFruitVo);
     }
 
 
-
-
     @GetMapping("applySnbToCntView")
-    public ModelAndView usersApplySnbToCnt(){
-        return new ModelAndView("sys/aComApplySNBToCNT/applySNBToCNT","sysSettingTask", SysSettingTaskUtil.getSysSettingTask());
+    public ModelAndView usersApplySnbToCnt() {
+        ModelAndView modelAndView = new ModelAndView("sys/aComApplySNBToCNT/applySNBToCNT", "sysSettingTask",
+                SysSettingTaskUtil.getSysSettingTask());
+        modelAndView.getModelMap().addAttribute("applyState",0);
+        return modelAndView;
     }
 
 
     @PostMapping("findApplySnbToCntPage")
     @Decrypt
     @Encrypt
-    public Result<PageInfo<ComSnbApplyVo>> findUsersApplySnbToCnt(ComSnbApplyVo comSnbApplyVo){
+    public Result<PageInfo<ComSnbApplyVo>> findUsersApplySnbToCnt(ComSnbApplyVo comSnbApplyVo) {
         return comSnbApplyService.page(comSnbApplyVo);
     }
 
@@ -256,9 +261,22 @@ public class sysGamePropertyController extends CommonController<ComUsersVo, ComU
     @PostMapping("updateApplySnbToCntData")
     @Decrypt
     @Encrypt
-    public Result<ComSnbApplyVo> updateApplySnbToCntData(ComSnbApplyVo comSnbApplyVo){
+    public Result<ComSnbApplyVo> updateApplySnbToCntData(ComSnbApplyVo comSnbApplyVo) {
         return comSnbApplyService.save(comSnbApplyVo);
     }
 
-
+    @PostMapping("updateApplySnbToCntDataList")
+    @Decrypt
+    @Encrypt
+    public Result<String> updateApplySnbToCntDataList(SysApplySNBToCNTVo sysApplySNBToCNTVo) {
+        //再保存新的
+        List<ComSnbApply> comSnbApplies = comSnbApplyService.findAllByIn(Arrays.asList(sysApplySNBToCNTVo.getApplyIdList().split(",")));
+        for (ComSnbApply comSnbApply : comSnbApplies) {
+           if(!comSnbApply.getIsState().equals(3)){
+               comSnbApply.setIsState(sysApplySNBToCNTVo.getIsState());
+           }
+        }
+        comSnbApplyService.saveAll(comSnbApplies);
+        return Result.of("success");
+    }
 }

+ 16 - 0
src/main/java/com/td/boss/sys/sysGame/vo/SysApplySNBToCNTVo.java

@@ -0,0 +1,16 @@
+package com.td.boss.sys.sysGame.vo;
+
+import com.td.boss.common.pojo.PageCondition;
+import com.td.boss.sys.sysauthority.vo.SysAuthorityVo;
+import com.td.boss.sys.sysuser.vo.SysUserVo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class SysApplySNBToCNTVo extends PageCondition implements Serializable {
+    private Integer isState;//0:申请中,1:申请通过,2:申请驳回,3,进入冻结流程
+
+    private String applyIdList;//审核数据的id集合
+}

+ 4 - 0
src/main/java/com/td/boss/sys/syssettingtask/pojo/SysSettingTask.java

@@ -14,6 +14,10 @@ public class SysSettingTask implements Serializable {
 
     private String applyAutoExamine;//是否自动审查 Y/N
 
+    private Integer conditionSnbMax;//自动过审时候限制snb条件,最大值
+
+    private Integer conditionSnbMin;//自动过审时候限制snb条件,最小值
+
     private Date createTime;//创建时间
 
     private Date updateTime;//修改时间

+ 4 - 0
src/main/java/com/td/boss/sys/syssettingtask/vo/SysSettingTaskVo.java

@@ -10,6 +10,10 @@ public class SysSettingTaskVo extends PageCondition implements Serializable {
 
     private String applyAutoExamine;//是否自动审查 Y/N
 
+    private Integer conditionSnbMax;//自动过审时候限制snb条件,最大值
+
+    private Integer conditionSnbMin;//自动过审时候限制snb条件,最小值
+
     private Date createTime;//创建时间
 
     private Date updateTime;//修改时间

+ 128 - 37
src/main/resources/static/sys/aComApplySNBToCNT/js/applySNBToCNT.js

@@ -3,7 +3,7 @@ let tree;
 let startDate = new Date(new Date(new Date().toLocaleDateString()).getTime()),
     endDate = new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1);
 let snbStartDate = startDate, snbEndDate = endDate;
-
+let applyState = 0;
 layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], function () {
     let table = layui.table;
     let form = layui.form;//select、单选、复选等依赖form
@@ -22,8 +22,7 @@ layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], func
             , limitName: 'rows' //每页数据量的参数名,默认:limit
         }
         , where: {
-            startTime: commonUtil.parseTime(snbStartDate),
-            endTime: commonUtil.parseTime(snbEndDate)
+            isState: applyState
         }
         , response: {
             statusName: 'flag' //规定数据状态的字段名称,默认:code
@@ -35,7 +34,7 @@ layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], func
         //响应后数据处理
         , parseData: function (res) { //res 即为原始返回的数据
             var data = res.data;
-            console.log("返回的地址数据:", data);
+            // console.log("返回的地址数据:", data);
             //这里应该是反回一个用户,后台做成了页面数据。但是只带一条数据
             return {
                 "flag": res.flag, //解析接口状态
@@ -65,11 +64,12 @@ layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], func
                     }
                 }
                 , {field: 'id', title: 'ID'}
-                , {field: 'userId', title: '用户id'}
-                , {field: 'snb', title: '申请的Snb',sort: true}
+                , {field: 'userId', title: '用户id', hidden: true}
+                , {field: 'address', title: '用户address'}
+                , {field: 'snb', title: '申请的Snb', sort: true}
                 , {field: 'snbDescribe', title: '描述'}
-                , {field: 'createTime', title: '创建时间',sort: true}
-                , {field: 'updateTime', title: '更新时间',sort: true}
+                , {field: 'createTime', title: '创建时间', sort: true}
+                , {field: 'updateTime', title: '更新时间', sort: true}
                 , {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150}
             ]]
         , defaultToolbar: ['', 'exports', 'print']
@@ -78,28 +78,82 @@ layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], func
         , cellMinWidth: 80
     });
 
-    //radio checkbox
-    $("#sysSettingTaskForm").find("[name='applyAutoExamine'][value='" + $("#applyAutoExamine").val() + "']").attr("checked", true);
-    form.render();
 
     //头工具栏事件
     table.on('toolbar(test)', function (obj) {
         let data = obj.data;
         switch (obj.event) {
             case 'applySnbTableReload':
-                searchSNBFromDate();
+                applySnbTableReloadFunction();
+                break;
+            case 'batchApproval':
+                let checkStatusApproval = table.checkStatus('applySnbTable'), dataApproval = checkStatusApproval.data,
+                    dataApprovalId = [];
+                if (dataApproval.length > 0) {
+                    for (let i in dataApproval) {
+                        dataApprovalId.push(dataApproval[i].id);
+                    }
+
+                    layer.confirm('确定同意吗?', {icon: 3, title: '提示信息'}, function (index) {
+                        let _loadingIndex = layer.msg('操作中,请稍候', {icon: 16, time: false, shade: 0.8});
+                        let postData = {
+                            isState: 1,
+                            applyIdList: dataApprovalId.join(",")
+                        };
+                        $.post(ctx + "/sys/sysProperty/updateApplySnbToCntDataList", postData, function (res) {
+                            layer.close(_loadingIndex);
+                            if (!res.flag) {
+                                layer.msg(res.msg, {icon: 2, time: 2000}, function () {
+                                });
+                                return;
+                            }
+                            applySnbTableReloadFunction();
+                        });
+
+                        layer.close(index);
+
+                    })
+                } else {
+                    layer.msg("请选择需要通过的行");
+                }
                 break;
-            case 'getCheckData':
-                let checkStatus1 = table.checkStatus('applySnbTable'),data1 = checkStatus1.data;
-                layer.alert(JSON.stringify(data1));
+            case 'batchRejection':
+                let checkStatusReject = table.checkStatus('applySnbTable'), dataReject = checkStatusReject.data,
+                    dataRejectId = [];
+                if (dataReject.length > 0) {
+                    for (let i in dataReject) {
+                        dataRejectId.push(dataReject[i].id);
+                    }
+                    layer.confirm('确定驳回吗?', {icon: 3, title: '提示信息'}, function (index) {
+                        let _loadingIndex = layer.msg('操作中,请稍候', {icon: 16, time: false, shade: 0.8});
+                        let postData = {
+                            isState: 2,
+                            applyIdList: dataRejectId.join(",")
+                        };
+                        $.post(ctx + "/sys/sysProperty/updateApplySnbToCntDataList", postData, function (res) {
+                            layer.close(_loadingIndex);
+                            if (!res.flag) {
+                                layer.msg(res.msg, {icon: 2, time: 2000}, function () {
+                                });
+                                return;
+                            }
+                            applySnbTableReloadFunction();
+                        });
+
+                        layer.close(index);
+
+                    })
+                } else {
+                    layer.msg("请选择需要驳回的行");
+                }
                 break;
             case 'getCheckLength':
-                let checkStatus2 = table.checkStatus('applySnbTable'),data2 = checkStatus2.data;
-                layer.msg('选中了:'+ data2.length + ' 个');
+                let checkStatus2 = table.checkStatus('applySnbTable'), data2 = checkStatus2.data;
+                layer.msg('选中了:' + data2.length + ' 个');
                 break;
             case 'isAll':
                 let checkStatus3 = table.checkStatus('applySnbTable');
-                layer.msg(checkStatus3.isAll ? '全选': '未全选')
+                layer.msg(checkStatus3.isAll ? '全选' : '未全选')
                 break;
         }
     });
@@ -110,7 +164,7 @@ layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], func
         switch (obj.event) {
             case 'edit':
                 //编辑
-                console.log("edit");
+                // console.log("edit");
                 //回显操作表单
                 // $("#comUserForm").form(data);
                 // form.render();
@@ -150,30 +204,66 @@ layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], func
         }
     });
 
-    laydate.render({
-        elem: '#applySnbTableDate'
-        , type: 'datetime'
-        , value: commonUtil.parseTime(snbStartDate) + ' - ' + commonUtil.parseTime(snbEndDate)
-        , isInitValue: true
-        , range: true
-        , done: function (_value, _date, _endDate) {
-            let _array = _value.split(' - ');
-            snbStartDate = _array[0];
-            snbEndDate = _array[1];
-            searchSNBFromDate();
+
+    let $ = layui.$, active = {
+        reload: function () {
+            let addressReload = $('#addressReload');
+            // console.log("reload");
+            tableApplySNBToCNT.reload({
+                page: {
+                    curr: 1 //重新从第 1 页开始
+                }
+                , method: 'POST'
+                , url: ctx + "/sys/sysProperty/findApplySnbToCntPage"
+                , where: {
+                    address: addressReload.val().length != 0 ? addressReload.val() : null,
+                    isState: applyState
+                }
+                , done: function (res, curr, count) {
+                    // console.log(res, curr, count);
+                    // this.where={};
+                    //不清空,有问题:搜索条件会保留
+                    //清空,  有问题:分页的时候没有搜索条件了,分页会受到影响
+                }
+            });
+
         }
+    };
+
+    $('.addressTable .layui-btn').on('click', function () {
+        let type = $(this).data('type');
+        active[type] ? active[type].call(this) : '';
+    });
+
+    // console.log(applyState,$("#applyState").val(), $("#applyAutoExamine").val())
+    // $("#applyContainer").find("[name='applyState'][value='" + $("#applyState").val() + "']").attr("checked", true);
+
+    // element.tabChange('test', layid);
+
+    element.on('tab(test)', function (data) {
+        applyState = data.index;
+        tableApplySNBToCNT.reload({
+            page: {
+                curr: 1 //重新从第 1 页开始
+            }
+            , method: 'POST'
+            , url: ctx + "/sys/sysProperty/findApplySnbToCntPage"
+            , where: {
+                isState: data.index
+            }
+        });
     });
+
+    //radio checkbox
+    $("#sysSettingTaskForm").find("[name='applyAutoExamine'][value='" + $("#applyAutoExamine").val() + "']").attr("checked", true);
+    form.render();
 });
 
-function searchSNBFromDate() {
+function applySnbTableReloadFunction() {
     tableApplySNBToCNT.reload({
-        page: false
+        page: true
         , method: 'POST'
         , url: ctx + "/sys/sysProperty/findApplySnbToCntPage"
-        , where: {
-            startTime: commonUtil.parseTime(snbStartDate),
-            endTime: commonUtil.parseTime(snbEndDate)
-        }
         , done: function (res, curr, count) {
             // console.log(res, curr, count);
             // this.where={};
@@ -189,7 +279,8 @@ function searchSNBFromDate() {
 function sysSettingTaskFormSave() {
     let serializeObject = $("#sysSettingTaskForm").serializeObject();
     $.post(ctx + "/sys/sysSettingTask/save", serializeObject, function (data) {
-        layer.msg("修改成功!", {icon: 1, time: 2000}, function () {});
+        layer.msg("修改成功!", {icon: 1, time: 2000}, function () {
+        });
         $("#sysSettingTaskForm").form(data.data);
         $("#applyAutoExamine").val(data.data.applyAutoExamine)
     });

+ 50 - 23
src/main/resources/view/sys/aComApplySNBToCNT/applySNBToCNT.html

@@ -12,57 +12,84 @@
 <div class="layui-row layui-col-space15">
     <div class="layui-col-md12">
         <div class="layui-card">
-            <div class="layui-card-header">
-                <label class="layui-form-label" >筛选日期:</label>
-                <div class="layui-input-inline" style="width: 300px;">
-                    <input type="text" class="layui-input" id="applySnbTableDate" placeholder=" - ">
-                </div>
-            </div>
             <div class="layui-card-body">
                 <form id="sysSettingTaskForm" class="layui-form layui-form-pane">
-                    <div class="layui-form-item  layui-form-text">
-                        <label class="layui-form-label">是否开启自动审查</label>
-                        <div class="layui-input-block">
-                            <input id="applyAutoExamine" th:value="${sysSettingTask.applyAutoExamine}"  hidden="hidden"/>
-                            <input type="radio" name="applyAutoExamine" value="Y" title="是">
-                            <input type="radio" name="applyAutoExamine" value="N" title="否">
+                    <div class="layui-form-item">
+                        <div class="layui-inline">
+                            <label class="layui-form-label">自动审查</label>
+                            <div class="layui-input-block">
+                                <input id="applyAutoExamine" th:value="${sysSettingTask.applyAutoExamine}"  hidden="hidden"/>
+                                <input type="radio" name="applyAutoExamine" value="Y" title="是">
+                                <input type="radio" name="applyAutoExamine" value="N" title="否">
+                            </div>
                         </div>
-                    </div>
-                    <div class="layui-form-item  layui-form-text">
-                        <label class="layui-form-label">更新时间</label>
-                        <div class="layui-input-block">
-                            <input type="text" name="updateTime" th:value="${#dates.format(sysSettingTask.updateTime, 'yyyy-MM-dd HH:mm:ss')}" autocomplete="off"
-                                   placeholder="更新时间"
-                                   class="layui-input" readonly="readonly" disabled="disabled">
+                        <div class="layui-inline">
+                            <label class="layui-form-label">snb筛选范围</label>
+                            <div class="layui-input-inline" style="width: 100px;">
+                                <input type="text" name="conditionSnbMin" placeholder="min"  th:value="${sysSettingTask.conditionSnbMin}" autocomplete="off" class="layui-input">
+                            </div>
+                            <div class="layui-form-mid">-</div>
+                            <div class="layui-input-inline" style="width: 100px;">
+                                <input type="text" name="conditionSnbMax" placeholder="max"  th:value="${sysSettingTask.conditionSnbMax}" autocomplete="off" class="layui-input">
+                            </div>
                         </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <div class="layui-input-block">
+
+                        <div class="layui-inline">
+                            <label class="layui-form-label">更新时间</label>
+                            <div class="layui-input-block">
+                                <input type="text" name="updateTime" th:value="${#dates.format(sysSettingTask.updateTime, 'yyyy-MM-dd HH:mm:ss')}" autocomplete="off"
+                                       placeholder="更新时间"
+                                       class="layui-input" readonly="readonly" disabled="disabled">
+                            </div>
+                        </div>
+
+                        <div class="layui-inline">
                             <a class="layui-btn" onclick="sysSettingTaskFormSave()">修改</a>
                         </div>
                     </div>
+
                     <!-- 隐藏域 -->
                     <input type="text" name="id"  th:value="${sysSettingTask.id}" hidden="hidden"/>
                     <input type="text" name="createTime"  th:value="${#dates.format(sysSettingTask.createTime, 'yyyy-MM-dd HH:mm:ss')}" hidden="hidden"/>
                 </form>
             </div>
             <div class="layui-card-body">
+                <div class="addressTable" style="margin-bottom: 20px;">
+                    钱包地址:
+                    <div class="layui-inline">
+                        <input class="layui-input" name="id" id="addressReload" autocomplete="off">
+                    </div>
+                    <button class="layui-btn" data-type="reload">搜索</button>
+                </div>
+                <div class="layui-tab" lay-filter="test">
+                    <ul class="layui-tab-title">
+                        <li class="layui-this" lay-id="0">申请中</li>
+                        <li lay-id="1">申请通过</li>
+                        <li lay-id="2">申请驳回</li>
+                        <li lay-id="3">进入冻结流程</li>
+                    </ul>
+
+                </div>
                 <!-- 表格主体 -->
                 <table class="layui-hide" id="applySnbTable" lay-filter="test"></table>
 
                 <!-- 模板 -->
                 <script type="text/html" id="applySnbTableToolbarDemo">
+
                     <div class="layui-btn-container">
                         <button class="layui-btn" lay-event="applySnbTableReload">刷新</button>
-                        <button class="layui-btn" lay-event="getCheckData">获取选中行数据</button>
+                        <button class="layui-btn" lay-event="batchApproval">批量同意</button>
+                        <button class="layui-btn" lay-event="batchRejection">批量驳回</button>
                         <button class="layui-btn" lay-event="getCheckLength">获取选中数目</button>
                         <button class="layui-btn" lay-event="isAll">验证是否全选</button>
                     </div>
                 </script>
 
                 <script type="text/html" id="barDemo">
+                    {{# if(d.isState == 0){ }}
                     <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="agree">同意</a>
                     <a class="layui-btn layui-btn-xs" lay-event="reject">驳回</a>
+                    {{# } }}
                 </script>
             </div>
         </div>