Browse Source

赛事列表增加原价, 会员价

Memory_LG 3 weeks ago
parent
commit
aa60d5e77f

+ 5 - 1
qmjszx-admin/src/main/java/beilv/web/controller/carinformation/CardAppController.java

@@ -12,6 +12,7 @@ import beilv.common.core.page.PageDomain;
 import beilv.common.core.page.TableDataInfo;
 import beilv.common.core.page.TableSupport;
 import beilv.common.utils.DateUtils;
+import beilv.common.utils.DictUtils;
 import beilv.common.utils.StringUtils;
 import beilv.common.utils.uuid.IdUtils;
 import beilv.competition.domain.Competition;
@@ -31,6 +32,7 @@ import beilv.voucher.domain.BeilvVoucherMember;
 import beilv.voucher.service.IBeilvVoucherMemberService;
 import beilv.wx.pay.controller.WxPayController;
 import beilv.wx.pay.domain.vo.AppRefundParam;
+import cn.hutool.core.lang.Dict;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
@@ -238,7 +240,9 @@ public class CardAppController extends BaseController {
     @PostMapping("/getVipCardInfo")
     @ResponseBody
     public AjaxResult getVipCardInfo(@RequestBody VipCardLog vipCardLog) {
-        return AjaxResult.success(vipCardService.selectVipCardByUserId(vipCardLog.getUserId()));
+        VipCard vipCard = vipCardService.selectVipCardByUserId(vipCardLog.getUserId());
+        vipCard.setVipLevel(DictUtils.getDictLabel("vip_level", vipCard.getVipLevel()));
+        return AjaxResult.success(vipCard);
     }
 
     /**

+ 19 - 0
qmjszx-admin/src/main/java/beilv/web/controller/stadium/StadiumController.java

@@ -1,5 +1,6 @@
 package beilv.web.controller.stadium;
 
+import beilv.common.constant.PriceOptions;
 import beilv.common.core.controller.BaseController;
 import beilv.common.core.domain.AjaxResult;
 import beilv.common.core.domain.entity.SysDictData;
@@ -15,12 +16,17 @@ import beilv.stadium.domain.Stadium;
 import beilv.stadium.domain.StadiumBO;
 import beilv.stadium.service.IStadiumService;
 import beilv.system.domain.SysNotice;
+import beilv.system.service.ISysConfigService;
+import beilv.vipCard.service.IVipCardService;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
@@ -36,6 +42,10 @@ public class StadiumController extends BaseController {
 
     @Autowired
     private ICompetitionService competitionService;
+    @Autowired
+    private ISysConfigService configService;
+    @Autowired
+    private IVipCardService vipCardService;
 
     /**
      * 查询赛事发布列表
@@ -45,6 +55,15 @@ public class StadiumController extends BaseController {
         startPage();
         competition.setCompetitionState("competiton_state_2");
         List<Competition> list = competitionService.selectCompetitionList(competition);
+
+        String vipLevel = vipCardService.selectVipCardByUserId(competition.getUserId()).getVipLevel();
+        //查询会员折扣
+        BigDecimal coefficient = BigDecimal.valueOf(Double.parseDouble(StringUtils.isEmpty(configService.selectConfigByKey(vipLevel))? "1" : configService.selectConfigByKey(vipLevel)));
+        list.forEach(competition1 -> {
+            competition1.setCompetitionPrice(new PriceOptions(competition1.getCompetitionExpense(), coefficient));
+            competition1.setViewingPrice(new PriceOptions(competition1.getViewingTicket(), coefficient));
+        });
+
         return AjaxResult.success(getDataTable(list).getRows());
     }
 

+ 20 - 15
qmjszx-admin/src/main/resources/templates/competition/competition.html

@@ -74,9 +74,9 @@
             exportUrl: prefix + "/export",
             modalName: "赛事",
             columns: [
-               /* {
-                    checkbox: false
-                },*/
+                /* {
+                     checkbox: false
+                 },*/
                 {
                     field: 'id',
                     title: 'id',
@@ -113,13 +113,13 @@
                     field: 'applyBeforeTime',
                     title: '取消报名截至时间',
                     formatter: function (value, row, index) {
-                        return "赛事开始前"+value+"小时";
+                        return "赛事开始前" + value + "小时";
                     }
                 },
                 {
                     field: 'competitionExpense',
                     title: '报名费用'
-                },{
+                }, {
                     field: 'viewingTicket',
                     title: '观看费用'
                 },
@@ -139,9 +139,9 @@
                             actions.push('<a class="btn btn-success btn-xs ' + publisFlag + '" href="javascript:void(0)" onclick="publish(\'' + row.id + '\', \'' + row.competitionTitle + '\', \'' + row.applyStartTime + '\', \'' + row.applyBeforeTime + '\', \'' + row.applyEndTime + '\')"><i class="fa fa-edit"></i>发布</a> ')
                             actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editToSet(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
                             actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
-                        } else if(row.competitionState === 'competiton_state_4'){
+                        } else if (row.competitionState === 'competiton_state_4') {
 
-                        }else {
+                        } else {
                             actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="getTakePartList(\'' + row.id + '\')"><i class="fa fa-edit"></i>参赛名单</a> ')
                         }
 
@@ -152,13 +152,13 @@
         $.table.init(options);
     });
 
-    function getTakePartList(id){
-        $.modal.open("参赛人员名单", prefix+"/openDetails/"+id);
+    function getTakePartList(id) {
+        $.modal.open("参赛人员名单", prefix + "/openDetails/" + id);
     }
 
-    function publish(id, dataName, applyStartTime, applyBeforeTime, applyEndTime){
+    function publish(id, dataName, applyStartTime, applyBeforeTime, applyEndTime) {
         table.set();
-        $.modal.confirm("确定发布该条" + dataName + "信息吗?<br/>发布后赛事信息无法修改!", function() {
+        $.modal.confirm("确定发布该条" + dataName + "信息吗?<br/>发布后赛事信息无法修改!", function () {
             var url = $.common.isEmpty(id) ? table.options.publishUrl : table.options.publishUrl.replace("{id}", id);
             if (table.options.type == table_type.bootstrapTreeTable) {
                 debugger
@@ -172,12 +172,17 @@
                 var allowPublishTime = new Date(startTime.getTime() - beforeTimeMs);
                 // 获取当前时间
                 var currentTime = new Date();
-                if(startTime <= currentTime){
+                if (startTime <= currentTime) {
                     $.modal.alertError("赛事开始时间早于当前时间, 请先修改赛事开始时间!")
-                }else if(allowPublishTime <= currentTime){
+                } else if (allowPublishTime <= currentTime) {
                     $.modal.alertError("取消报名时间早于当前时间, 请先修改取消报名时间!")
-                }else if(allowPublishTime > currentTime){
-                    var data = { "id": id , "applyStartTime": formatApplyStartTime(startTime), "allowPublishTime": (startTime.getTime() - beforeTimeMs)/1000, "applyEndTime":formatApplyStartTime(new Date(applyEndTime))};
+                } else if (allowPublishTime > currentTime) {
+                    var data = {
+                        "id": id,
+                        "applyStartTime": formatApplyStartTime(startTime),
+                        "allowPublishTime": (startTime.getTime() - beforeTimeMs) / 1000,
+                        "applyEndTime": formatApplyStartTime(new Date(applyEndTime))
+                    };
                     $.operate.submit(url, "post", "json", data);
                 }
             }

+ 13 - 2
qmjszx-business/src/main/java/beilv/competition/domain/Competition.java

@@ -1,7 +1,9 @@
 package beilv.competition.domain;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
+import beilv.common.constant.PriceOptions;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.*;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -88,13 +90,13 @@ public class Competition extends BaseEntity {
      * 活动费用(每人)
      */
     @Excel(name = "赛事费用")
-    private Double competitionExpense;
+    private BigDecimal competitionExpense;
 
     /**
      * 观看门票
      */
     @Excel(name = "观看门票")
-    private Double viewingTicket;
+    private BigDecimal viewingTicket;
 
     /**
      * 活动详情
@@ -142,6 +144,15 @@ public class Competition extends BaseEntity {
     private String competitionImg;
 
     private Long allowPublishTime;
+
+    //参赛费用
+    private PriceOptions competitionPrice;
+    //门票费用
+    private PriceOptions viewingPrice;
+
+    private String userId;
+
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

+ 1 - 1
qmjszx-business/src/main/java/beilv/vipCard/service/impl/VipCardServiceImpl.java

@@ -71,7 +71,7 @@ public class VipCardServiceImpl implements IVipCardService {
         vipCard.setId(vipCardId);
         vipCard.setCreateTime(DateUtils.getNowDate());
         vipCard.setCardState("vip_card_state_open");
-        vipCard.setVipLevel("普通会员");
+        vipCard.setVipLevel("vip_level_1");
         return vipCardMapper.insertVipCard(vipCard) > 0 ? vipCardId : null;
     }
 

+ 3 - 0
qmjszx-business/src/main/resources/mapper/vipCardLog/VipCardLogMapper.xml

@@ -185,6 +185,9 @@
             <if test="userId != null and userId != ''">
                 and a.user_id = #{userId}
             </if>
+            <if test="orderType != null and orderType != ''">
+                and a.order_type = #{orderType}
+            </if>
         </where>
     </select>
 

+ 22 - 0
qmjszx-common/src/main/java/beilv/common/constant/PriceOptions.java

@@ -0,0 +1,22 @@
+package beilv.common.constant;
+
+import lombok.*;
+import org.apache.ibatis.type.Alias;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+@Setter
+@Getter
+@NoArgsConstructor
+@ToString
+@Alias("PriceOptions")
+public class PriceOptions {
+    private BigDecimal originalPrice;
+    private BigDecimal memberPrice;
+
+    public PriceOptions(BigDecimal originalPrice, BigDecimal coefficient) {
+        this.originalPrice = originalPrice;
+        this.memberPrice = originalPrice.multiply(coefficient).setScale(2, RoundingMode.HALF_UP);
+    }
+}