huangxiao пре 2 недеља
родитељ
комит
b1c906b09b

+ 9 - 0
src/main/java/net/mingsoft/tf/action/BrowseAction.java

@@ -91,6 +91,7 @@ public class BrowseAction extends net.mingsoft.tf.action.BaseAction{
     @Parameters({
         @Parameter(name = "browseData", description = "日期", in = ParameterIn.QUERY),
         @Parameter(name = "browseVisits", description = "访问量", in = ParameterIn.QUERY),
+        @Parameter(name = "browseAdmission", description = "入场量", in = ParameterIn.QUERY),
     })
     @RequestMapping(value ="/list",method = {RequestMethod.GET,RequestMethod.POST})
     @ResponseBody
@@ -134,6 +135,7 @@ public class BrowseAction extends net.mingsoft.tf.action.BaseAction{
     @Parameters({
         @Parameter(name = "browseData", description = "日期", required = false, in = ParameterIn.QUERY),
         @Parameter(name = "browseVisits", description = "访问量", required = false, in = ParameterIn.QUERY),
+        @Parameter(name = "browseAdmission", description = "入场量", required = false, in = ParameterIn.QUERY),
     })
     @PostMapping("/save")
     @ResponseBody
@@ -144,6 +146,9 @@ public class BrowseAction extends net.mingsoft.tf.action.BaseAction{
         if (!StringUtil.checkLength(browse.getBrowseVisits()+"", 0, 11)) {
           return ResultData.build().error(getResString("err.length", this.getResString("browse.visits"), "0", "11"));
         }
+        if (!StringUtil.checkLength(browse.getBrowseAdmission()+"", 0, 11)) {
+          return ResultData.build().error(getResString("err.length", this.getResString("browse.admission"), "0", "11"));
+        }
         browseBiz.save(browse);
         return ResultData.build().success(browse);
     }
@@ -173,6 +178,7 @@ public class BrowseAction extends net.mingsoft.tf.action.BaseAction{
         @Parameter(name = "id", description = "主键ID", required =true,in = ParameterIn.QUERY),
         @Parameter(name = "browseData", description = "日期", required = false, in = ParameterIn.QUERY),
         @Parameter(name = "browseVisits", description = "访问量", required = false, in = ParameterIn.QUERY),
+        @Parameter(name = "browseAdmission", description = "入场量", required = false, in = ParameterIn.QUERY),
     })
     @PostMapping("/update")
     @ResponseBody
@@ -188,6 +194,9 @@ public class BrowseAction extends net.mingsoft.tf.action.BaseAction{
         if (!StringUtil.checkLength(browse.getBrowseVisits()+"", 0, 11)) {
           return ResultData.build().error(getResString("err.length", this.getResString("browse.visits"), "0", "11"));
         }
+        if (!StringUtil.checkLength(browse.getBrowseAdmission()+"", 0, 11)) {
+          return ResultData.build().error(getResString("err.length", this.getResString("browse.admission"), "0", "11"));
+        }
         browseBiz.updateById(browse);
         return ResultData.build().success(browse);
     }

+ 9 - 1
src/main/java/net/mingsoft/tf/biz/IBrowseBiz.java

@@ -6,11 +6,19 @@ import net.mingsoft.tf.entity.BrowseEntity;
 
 /**
  * 浏览量业务
+ *
  * @author 阿白
  * 创建日期:2025年12月31日 下午5:45:57<br/>
  * 历史修订:<br/>
  */
 public interface IBrowseBiz extends IBaseBiz<BrowseEntity> {
+    /**
+     * 保存浏览量
+     */
+    void addBrowseVisits();
 
-
+    /**
+     * 保存入场量
+     */
+    void addBrowseAdmission();
 }

+ 57 - 14
src/main/java/net/mingsoft/tf/biz/impl/BrowseBizImpl.java

@@ -1,27 +1,31 @@
 package net.mingsoft.tf.biz.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import cn.hutool.core.date.DatePattern;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import net.mingsoft.base.biz.impl.BaseBizImpl;
 import net.mingsoft.base.dao.IBaseDao;
-import java.util.*;
-import net.mingsoft.tf.entity.BrowseEntity;
 import net.mingsoft.tf.biz.IBrowseBiz;
 import net.mingsoft.tf.dao.IBrowseDao;
+import net.mingsoft.tf.entity.BrowseEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
-* 浏览量管理持久化层
-* @author 阿白
-* 创建日期:2025年12月31日 下午5:45:57<br/>
-* 历史修订:<br/>
-*/
+ * 浏览量管理持久化层
+ *
+ * @author 阿白
+ * 创建日期:2025年12月31日 下午5:45:57<br/>
+ * 历史修订:<br/>
+ */
 @Service("tfbrowseBizImpl")
-public class BrowseBizImpl extends BaseBizImpl<IBrowseDao,BrowseEntity> implements IBrowseBiz {
-
-
+public class BrowseBizImpl extends BaseBizImpl<IBrowseDao, BrowseEntity> implements IBrowseBiz {
     @Autowired
     private IBrowseDao browseDao;
-
+    private static final Set<String> day = new HashSet<>();
 
     @Override
     protected IBaseDao getDao() {
@@ -29,6 +33,45 @@ public class BrowseBizImpl extends BaseBizImpl<IBrowseDao,BrowseEntity> implemen
         return browseDao;
     }
 
+    @Override
+    public void addBrowseVisits() {
+        Date now = new Date();
+        String time = DatePattern.NORM_DATE_FORMAT.format(now);
+        if (day.contains(time)) {
+            update("update mdiy_form_browse set BROWSE_VISITS = BROWSE_VISITS + 1 where BROWSE_DATA = ?", time);
+        } else {
+            BrowseEntity browseEntity = getOne(new LambdaQueryWrapper<>(BrowseEntity.class).eq(BrowseEntity::getBrowseData, time));
+            if (browseEntity == null) {
+                browseEntity = new BrowseEntity();
+                browseEntity.setBrowseData(now);
+                browseEntity.setBrowseVisits(1);
+                browseEntity.setBrowseAdmission(0);
+            } else {
+                browseEntity.setBrowseVisits(browseEntity.getBrowseVisits() + 1);
+            }
+            saveOrUpdate(browseEntity);
+            day.add(time);
+        }
+    }
 
-
+    @Override
+    public void addBrowseAdmission() {
+        Date now = new Date();
+        String time = DatePattern.NORM_DATE_FORMAT.format(now);
+        if (day.contains(time)) {
+            update("update mdiy_form_browse set BROWSE_ADMISSION = BROWSE_ADMISSION + 1 where BROWSE_DATA = ?", time);
+        } else {
+            BrowseEntity browseEntity = getOne(new LambdaQueryWrapper<>(BrowseEntity.class).eq(BrowseEntity::getBrowseData, time));
+            if (browseEntity == null) {
+                browseEntity = new BrowseEntity();
+                browseEntity.setBrowseData(now);
+                browseEntity.setBrowseVisits(0);
+                browseEntity.setBrowseAdmission(1);
+            } else {
+                browseEntity.setBrowseAdmission(browseEntity.getBrowseAdmission() + 1);
+            }
+            saveOrUpdate(browseEntity);
+            day.add(time);
+        }
+    }
 }

+ 1 - 0
src/main/java/net/mingsoft/tf/dao/IBrowseDao.xml

@@ -5,6 +5,7 @@
 	<resultMap id="resultMap" type="net.mingsoft.tf.entity.BrowseEntity">
 				<result column="BROWSE_DATA" property="browseData" /><!--日期 -->
 				<result column="BROWSE_VISITS" property="browseVisits" /><!--访问量 -->
+				<result column="BROWSE_ADMISSION" property="browseAdmission" /><!--入场量 -->
 	</resultMap>
 
 	<select id="query" resultMap="resultMap">

+ 18 - 0
src/main/java/net/mingsoft/tf/entity/BrowseEntity.java

@@ -37,6 +37,11 @@ private static final long serialVersionUID = 1767174357606L;
     */
     
     private Integer browseVisits;
+    /**
+    * 入场量
+    */
+    
+    private Integer browseAdmission;
 
 
     /**
@@ -65,6 +70,19 @@ private static final long serialVersionUID = 1767174357606L;
     public Integer getBrowseVisits() {
         return this.browseVisits;
     }
+    /**
+    * 设置入场量
+    */
+    public void setBrowseAdmission(Integer browseAdmission) {
+        this.browseAdmission = browseAdmission;
+    }
+
+    /**
+    * 获取入场量
+    */
+    public Integer getBrowseAdmission() {
+        return this.browseAdmission;
+    }
 
 
 }

+ 3 - 2
src/main/java/net/mingsoft/tf/resources/resources_en_US.properties

@@ -1,3 +1,6 @@
+browse.data=browse data
+browse.visits=browse visits
+browse.admission=browse admission
 business.name=business name
 business.type=business type
 business.info=business info
@@ -100,8 +103,6 @@ design.visits=design visits
 design.avatar=design avatar
 design.info=design info
 design.works=design works
-browse.data=browse data
-browse.visits=browse visits
 records.user=records user
 records.enterprise=records enterprise
 records.enterprise.id=records enterprise id

+ 3 - 2
src/main/java/net/mingsoft/tf/resources/resources_zh_CN.properties

@@ -1,3 +1,6 @@
+browse.data=\u65e5\u671f
+browse.visits=\u8bbf\u95ee\u91cf
+browse.admission=\u5165\u573a\u91cf
 business.name=\u540d\u79f0
 business.type=\u7c7b\u578b
 business.info=\u4ecb\u7ecd
@@ -100,8 +103,6 @@ design.visits=\u8bbf\u95ee\u91cf
 design.avatar=\u5934\u50cf
 design.info=\u7b80\u4ecb
 design.works=\u4f5c\u54c1
-browse.data=\u65e5\u671f
-browse.visits=\u8bbf\u95ee\u91cf
 records.user=\u7528\u6237
 records.enterprise=\u4f01\u4e1a
 records.enterprise.id=\u4f01\u4e1aID

+ 1 - 29
src/main/java/net/mingsoft/tf/www/BrowseAction.java

@@ -1,12 +1,9 @@
 package net.mingsoft.tf.www;
 
-import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import net.mingsoft.base.entity.ResultData;
 import net.mingsoft.tf.biz.IBrowseBiz;
 import net.mingsoft.tf.biz.IBrowseRecordsBiz;
-import net.mingsoft.tf.entity.BrowseEntity;
 import net.mingsoft.tf.entity.BrowseRecordsEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -15,10 +12,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Set;
-
 @Controller
 @RequestMapping("/tf/browse")
 public class BrowseAction {
@@ -26,7 +19,6 @@ public class BrowseAction {
     private IBrowseRecordsBiz browseRecordsBiz;
     @Autowired
     private IBrowseBiz browseBiz;
-    private static Set<String> day = new HashSet<>();
 
     /**
      * 记录访问量
@@ -35,7 +27,7 @@ public class BrowseAction {
     @ResponseBody
     public ResultData visits(@RequestBody BrowseRecordsEntity entity) {
         saveBrowseRecordsEntity(entity);
-        incrementDailyVisits();
+        browseBiz.addBrowseVisits();
         incrementVisits(entity);
         return ResultData.build().success();
     }
@@ -45,26 +37,6 @@ public class BrowseAction {
         browseRecordsBiz.update("DELETE FROM mdiy_form_browse_records WHERE id NOT IN (SELECT id FROM (SELECT id FROM mdiy_form_browse_records ORDER BY id desc LIMIT ?) AS tmp)", 30);
     }
 
-    private void incrementDailyVisits() {
-//        TODO 移到biz里,可保存入场量
-        Date now = new Date();
-        String time = DatePattern.NORM_DATE_FORMAT.format(now);
-        if (day.contains(time)) {
-            browseBiz.update("update mdiy_form_browse set BROWSE_VISITS = BROWSE_VISITS + 1 where BROWSE_DATA = ?", time);
-        } else {
-            BrowseEntity browseEntity = browseBiz.getOne(new LambdaQueryWrapper<>(BrowseEntity.class).eq(BrowseEntity::getBrowseData, time));
-            if (browseEntity == null) {
-                browseEntity = new BrowseEntity();
-                browseEntity.setBrowseData(now);
-                browseEntity.setBrowseVisits(1);
-            } else {
-                browseEntity.setBrowseVisits(browseEntity.getBrowseVisits() + 1);
-            }
-            browseBiz.saveOrUpdate(browseEntity);
-            day.add(time);
-        }
-    }
-
     private void incrementVisits(BrowseRecordsEntity entity) {
         if (StrUtil.isNotBlank(entity.getRecordsEnterpriseId())) {
             browseBiz.update("update mdiy_form_enterprise set ENTERPRISE_VISITS = ifnull(ENTERPRISE_VISITS, 0) + 1 where id = ?", entity.getRecordsEnterpriseId());

+ 4 - 3
src/main/java/net/mingsoft/tf/wx/gate/GateAction.java

@@ -1,6 +1,7 @@
 package net.mingsoft.tf.wx.gate;
 
 import lombok.extern.slf4j.Slf4j;
+import net.mingsoft.tf.biz.IBrowseBiz;
 import net.mingsoft.tf.biz.IGateService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -24,6 +25,8 @@ public class GateAction {
     private IGateService gateService;
     @Autowired
     private Environment env;
+    @Autowired
+    private IBrowseBiz browseBiz;
 
     /**
      * 心跳
@@ -72,9 +75,7 @@ public class GateAction {
                 .code(0)
                 .msg("无效");
         if (gateService.checkCode(request.getTicketCode())) {
-            // TODO 保存入场总数
-            // TODO 图表接口查入场总数
-            // TODO 展会没开始,不能进?
+            browseBiz.addBrowseAdmission();
             builder.code(1)
                     .msg("通过");
         }

+ 26 - 5
src/main/webapp/WEB-INF/manager/tf/browse/form.ftl

@@ -16,10 +16,6 @@
         <el-main class="ms-container" v-loading="loading">
             <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="right" size="default">
 
-                        <el-row
-                                :gutter="0"
-                                justify="start" align="top">
-                                <el-col :span=12>
         <!--日期-->
     
         <el-form-item  label="日期" prop="browseData">
@@ -34,7 +30,9 @@ placeholder="请选择日期"                    :readonly="false"
                     type="date">
             </el-date-picker>
         </el-form-item>
-                                </el-col>
+                        <el-row
+                                :gutter="0"
+                                justify="start" align="top">
                                 <el-col :span=12>
             <!--访问量-->
 
@@ -49,6 +47,20 @@ placeholder="请选择日期"                    :readonly="false"
                 </el-input>
 	        </el-form-item>   
                                 </el-col>
+                                <el-col :span=12>
+            <!--入场量-->
+
+	        <el-form-item  label="入场量" prop="browseAdmission">
+	            <el-input
+                        v-model.number="form.browseAdmission"
+                         :disabled="false"
+                          :readonly="false"
+                          :style="{width:  '100%'}"
+                          :clearable="true"
+                        placeholder="请输入入场量">
+                </el-input>
+	        </el-form-item>   
+                                </el-col>
                         </el-row>
             </el-form>
         </el-main>
@@ -71,11 +83,15 @@ placeholder="请选择日期"                    :readonly="false"
                    browseData:"",
                     // 访问量
                     browseVisits:'',
+                    // 入场量
+                    browseAdmission:'',
 
                 },
                 rules:{
                         // 访问量
                         browseVisits: [{"type":"number","message":"访问量格式不正确"}],
+                        // 入场量
+                        browseAdmission: [{"type":"number","message":"入场量格式不正确"}],
 
                 },
 
@@ -145,6 +161,11 @@ placeholder="请选择日期"                    :readonly="false"
                      if(res.data.browseVisits){
                      	res.data.browseVisits=String(res.data.browseVisits);
                      }
+                   
+                   // 自定义模型需要根据控件配置转换
+                     if(res.data.browseAdmission){
+                     	res.data.browseAdmission=String(res.data.browseAdmission);
+                     }
 
                         that.form = res.data;
                     }

+ 13 - 2
src/main/webapp/WEB-INF/manager/tf/browse/index.ftl

@@ -40,14 +40,16 @@
                     </el-table-column>
                             <el-table-column label="访问量"   align="right" prop="browseVisits">
                             </el-table-column>
+                            <el-table-column label="入场量"   align="right" prop="browseAdmission">
+                            </el-table-column>
                     <el-table-column  min-width="180" align="center" label="创建时间" prop="createDate"></el-table-column>
                     <el-table-column label="操作"  width="180" align="center" fixed="right">
                             <template #default="scope">
                                 <@shiro.hasPermission name="tf:browse:update">
-                                    <el-link type="primary" :underline="false" @click="save(scope.row.id)">编辑</el-link>
+                                    <el-link type="primary" @click="save(scope.row.id)">编辑</el-link>
                                 </@shiro.hasPermission>
                             <@shiro.hasPermission name="tf:browse:del">
-                                <el-link type="primary" :underline="false" @click="del([scope.row])" v-if="scope.row.del!=3">删除</el-link>
+                                <el-link type="primary" @click="del([scope.row])" v-if="scope.row.del!=3">删除</el-link>
                             </@shiro.hasPermission>
                 </template>
                 </el-table-column>
@@ -99,6 +101,15 @@
     "name": "访问量",
     "type": "number"
     },
+    {
+    "isSearch": "",
+    "action": "and",
+    "field": "BROWSE_ADMISSION",
+    "el": "eq",
+    "model": "browseAdmission",
+    "name": "入场量",
+    "type": "number"
+    },
                 ],
                 dataList: [], //浏览量列表
                 selectionList:[],//浏览量列表选中

+ 6 - 1
src/main/webapp/static/locale/lang/browse/en_US.js

@@ -1,6 +1,11 @@
 var en_US ={
     form:{
-                gridZhylq:{
+                browseData:{
+            text:'日期',
+            placeholder:'请选择日期',
+            help:'',
+        },
+        gridZhylq:{
             text:'栅格布局',
             placeholder:'',
             help:'',

+ 6 - 1
src/main/webapp/static/locale/lang/browse/zh_CN.js

@@ -1,7 +1,12 @@
 
 var zh_CN ={
     form:{
-                gridZhylq:{
+                browseData:{
+            text:'日期',
+            placeholder:'请选择日期',
+            help:'',
+        },
+        gridZhylq:{
             text:'栅格布局',
             placeholder:'',
             help:'',