From ff94903b42fc1616cc139d071d915e271d12422a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 19 八月 2025 08:58:18 +0800
Subject: [PATCH] 会员订单
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipPaymentController.java | 181 ++++++++++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/vo/VipPaymentVO.java | 45 ++
cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java | 50 ++
cloud-server-management/src/main/webapp/WEB-INF/view/system/vipDetail/vip_detail.html | 109 ++++++
cloud-server-activity/src/main/java/com/dsh/activity/model/VipDetailVO.java | 84 ++++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/vo/VipDetailVO.java | 86 ++++
cloud-server-management/src/main/webapp/static/modular/system/vipDetail/vipDetail.js | 187 ++++++++++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipDetailDto.java | 22 +
cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java | 5
cloud-server-activity/src/main/java/com/dsh/activity/model/request/VipDetailDto.java | 32 +
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/CouponClient.java | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java | 221 ++---------
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipPaymentDto.java | 25 +
13 files changed, 869 insertions(+), 182 deletions(-)
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
index c770baa..fc7cf21 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -7,10 +7,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.dsh.activity.entity.Coupon;
-import com.dsh.activity.entity.CouponCity;
-import com.dsh.activity.entity.CouponStore;
-import com.dsh.activity.entity.UserCoupon;
+import com.dsh.activity.entity.*;
import com.dsh.activity.feignclient.account.AppUserClient;
import com.dsh.activity.feignclient.account.CityClient;
import com.dsh.activity.feignclient.account.StoreStaffClient;
@@ -29,14 +26,13 @@
import com.dsh.activity.feignclient.other.model.TOperatorCity;
import com.dsh.activity.model.CouponListVo;
import com.dsh.activity.model.CouponRecordQuery;
+import com.dsh.activity.model.VipDetailVO;
import com.dsh.activity.model.request.CommodityRequest;
import com.dsh.activity.model.request.CouponDataVo;
import com.dsh.activity.model.request.CouponPackageReq;
+import com.dsh.activity.model.request.VipDetailDto;
import com.dsh.activity.model.response.CouponPackageResp;
-import com.dsh.activity.service.CouponCityService;
-import com.dsh.activity.service.CouponStoreService;
-import com.dsh.activity.service.ICouponService;
-import com.dsh.activity.service.UserCouponService;
+import com.dsh.activity.service.*;
import com.dsh.activity.util.GDMapGeocodingUtil;
import com.dsh.activity.util.ResultUtil;
import com.dsh.activity.util.TokenUtil;
@@ -47,7 +43,9 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -67,6 +65,8 @@
@Autowired
private ICouponService couponService;
+ @Autowired
+ private VipDetailService vipDetailService;
@Autowired
private TokenUtil tokenUtil;
@@ -106,7 +106,41 @@
+ @PostMapping("/base/coupon/vipDetail")
+ @ResponseBody
+ List<VipDetailVO> vipDetail(VipDetailDto vipDetailDto){
+ List<VipDetailVO> vipDetailVOS = new ArrayList<>();
+ List<VipDetail> list = vipDetailService.lambdaQuery()
+ .in(!vipDetailDto.getVipIds().isEmpty(), VipDetail::getVipId, vipDetailDto.getVipIds())
+ .in(!vipDetailDto.getUserIds().isEmpty(), VipDetail::getAppUserId, vipDetailDto.getUserIds())
+ .in(!vipDetailDto.getStoreIds().isEmpty(), VipDetail::getUseStoreId, vipDetailDto.getStoreIds())
+ .ge(StringUtils.hasLength(vipDetailDto.getStartTime()), VipDetail::getInsertTime, vipDetailDto.getStartTime())
+ .le(StringUtils.hasLength(vipDetailDto.getEndTime()), VipDetail::getInsertTime, vipDetailDto.getEndTime())
+ .ge(StringUtils.hasLength(vipDetailDto.getUseStartTime()), VipDetail::getUseTime, vipDetailDto.getUseStartTime())
+ .le(StringUtils.hasLength(vipDetailDto.getUseEndTime()), VipDetail::getUseTime, vipDetailDto.getUseEndTime())
+ .eq(vipDetailDto.getOperatorId() != null, VipDetail::getOperatorId, vipDetailDto.getOperatorId())
+ .eq(vipDetailDto.getType() != null, VipDetail::getType, vipDetailDto.getType())
+ .eq(vipDetailDto.getStatus() != null, VipDetail::getStatus, vipDetailDto.getStatus()).list();
+ // 使用 Stream + 手动拷贝提升性能和可读性(或使用 MapStruct)
+ vipDetailVOS = list.stream().map(vipDetail -> {
+ VipDetailVO vo = new VipDetailVO();
+ BeanUtils.copyProperties(vo, vipDetail); // 注意参数顺序是否正确
+ return vo;
+ }).collect(Collectors.toList());
+ List<Coupon> coupons = couponService.list();
+ for (VipDetailVO vipDetailVO : vipDetailVOS) {
+ if (vipDetailVO.getType()==1){
+ Coupon coupon = coupons.stream().filter(coupon1 -> coupon1.getId().equals(vipDetailVO.getCouponId())).findFirst().orElse(null);
+ if (coupon!=null){
+ vipDetailVO.setTicketName(coupon.getName());
+ vipDetailVO.setGoodsName(coupon.getName());
+ }
+ }
+
+ }
+ return vipDetailVOS;
+ }
/**
* 查询注册赠送优惠券 判断当前优惠券限领数量
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java
index 40ca4ab..b7382ef 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -9,6 +10,7 @@
@Data
@ApiModel(value = "VipDetail", description = "会员权益明细")
+@TableName("t_vip_detail")
public class VipDetail {
@ApiModelProperty(value = "主键")
@@ -53,7 +55,8 @@
@ApiModelProperty(value = "使用场地id")
private Integer useSiteId;
-
+ @ApiModelProperty(value = "使用商品id")
+ private Integer useGoodsId;
@ApiModelProperty(value = "使用时间")
private Date useTime;
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/VipDetailVO.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/VipDetailVO.java
new file mode 100644
index 0000000..874c6ca
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/VipDetailVO.java
@@ -0,0 +1,84 @@
+package com.dsh.activity.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 会员权益明细列表
+ */
+@Data
+public class VipDetailVO {
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+
+ @ApiModelProperty(value = "用户id")
+ private Integer appUserId;
+ @ApiModelProperty(value = "用户名称")
+ private String appUserName;
+ @ApiModelProperty(value = "用户电话")
+ private String appUserPhone;
+
+ @ApiModelProperty(value = "使用状态 1待使用 2已使用 3已过期")
+ private Integer status;
+
+ @ApiModelProperty(value = "获取时间")
+ private Date insertTime;
+
+ @ApiModelProperty(value = "会员id")
+ private Integer vipId;
+ @ApiModelProperty(value = "会员名称")
+ private String vipName;
+ @ApiModelProperty(value = "会员权益类型 1优惠券 2门票")
+ private Integer type;
+
+ @ApiModelProperty(value = "会员支付记录id")
+ private Integer vipPaymentId;
+
+ @ApiModelProperty(value = "优惠券id")
+ private Integer couponId;
+
+
+ @ApiModelProperty(value = "门票名称/优惠券名称")
+ private String ticketName;
+
+ @ApiModelProperty(value = "开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+ private Date startTime;
+
+ @ApiModelProperty(value = "结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+ private Date endTime;
+
+ @ApiModelProperty(value = "可用次数")
+ private Integer useCount;
+
+ @ApiModelProperty(value = "使用门店id")
+ private Integer useStoreId;
+ @ApiModelProperty(value = "门店名称")
+ private String storeName;
+ @ApiModelProperty(value = "使用场地id")
+ private Integer useSiteId;
+
+ @ApiModelProperty(value = "使用商品id")
+ private Integer useGoodsId;
+ @ApiModelProperty(value = "使用商品/场地名称")
+ private String goodsName;
+
+ @ApiModelProperty(value = "使用时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+ private Date useTime;
+
+ @ApiModelProperty(value = "运营商id")
+ private Integer operatorId;
+ @ApiModelProperty(value = "运营商名称")
+ private String operatorName;
+
+ @ApiModelProperty(value = "用户优惠券id")
+ private Long userCouponId;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/VipDetailDto.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/VipDetailDto.java
new file mode 100644
index 0000000..52a7eea
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/VipDetailDto.java
@@ -0,0 +1,32 @@
+package com.dsh.activity.model.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 会员权益明细
+ */
+@Data
+public class VipDetailDto {
+ // 会员ids
+ List<Integer> vipIds;
+ // 用户ids
+ List<Integer> userIds;
+ // 门店ids
+ List<Integer> storeIds;
+ // 获得时间 开始
+ String startTime;
+ // 获得时间 结束
+ String endTime;
+ // 使用时间开始
+ String useStartTime;
+ // 使用时间结束
+ String useEndTime;
+ // 运营商id
+ Integer operatorId;
+ // 使用状态 1未使用 2已使用 3已过期
+ Integer status;
+ // 权益类型 1优惠券2门票
+ Integer type;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/CouponClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/CouponClient.java
index 95aaddf..440ce62 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/CouponClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/CouponClient.java
@@ -4,6 +4,8 @@
import com.dsh.course.feignClient.activity.model.*;
import com.dsh.guns.modular.system.model.CouponDataVo;
import com.dsh.guns.modular.system.model.CouponStore;
+import com.dsh.guns.modular.system.model.dto.VipDetailDto;
+import com.dsh.guns.modular.system.model.vo.VipDetailVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -62,4 +64,6 @@
void updateType(Long id);
@PostMapping("/base/pointMerchars/goodsList")
List<PointsMerchandise> goodsList();
+ @PostMapping("/base/coupon/vipDetail")
+ List<VipDetailVO> vipDetail(VipDetailDto vipDetailDto);
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java
index f6db7eb..aa90268 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java
@@ -3,19 +3,24 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.feignClient.account.AppUserClient;
import com.dsh.course.feignClient.account.model.QueryByNamePhone;
+import com.dsh.course.feignClient.account.model.TAppUser;
import com.dsh.course.feignClient.activity.CouponClient;
import com.dsh.course.feignClient.activity.model.Coupon;
import com.dsh.course.feignClient.activity.model.CouponCity;
import com.dsh.course.feignClient.activity.model.TicketDetailVO;
+import com.dsh.guns.config.UserExt;
import com.dsh.guns.core.base.controller.BaseController;
import com.dsh.guns.core.common.constant.factory.PageFactory;
import com.dsh.guns.modular.system.model.*;
-import com.dsh.guns.modular.system.service.IProtocolService;
-import com.dsh.guns.modular.system.service.IStoreService;
-import com.dsh.guns.modular.system.service.IVipService;
+import com.dsh.guns.modular.system.model.dto.VipDetailDto;
+import com.dsh.guns.modular.system.model.dto.VipPaymentDto;
+import com.dsh.guns.modular.system.model.vo.VipDetailVO;
+import com.dsh.guns.modular.system.model.vo.VipPaymentVO;
+import com.dsh.guns.modular.system.service.*;
import com.dsh.guns.modular.system.util.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -44,7 +49,11 @@
private IStoreService storeService;
@Autowired
private AppUserClient appUserClient;
- private String PREFIX = "/system/vip/";
+ @Autowired
+ private ITSiteService siteService;
+ @Autowired
+ private TOperatorService operatorService;
+ private String PREFIX = "/system/vipPayment/";
/**
@@ -52,8 +61,7 @@
*/
@RequestMapping("")
public String index(Model model) {
-
- return PREFIX + "vipDetail.html";
+ return PREFIX + "vip_payment.html";
}
/**
@@ -61,176 +69,49 @@
*/
@RequestMapping(value = "/list")
@ResponseBody
- public List<Map<String, Object>> list(String vipName, Integer type
- , Integer phone, String storeName
- , Integer operatorId, Integer status
- , String startTime, String endTime
- , Integer useStartTime, Integer useEndTim) {
- // 根据会员名查询会员ids
+ public List<VipPaymentVO> list(String appUserName
+ , String phone, String vipName
+ , Integer isRefund
+ , String time
+ ) {
+ VipPaymentDto vipPaymentDto = new VipPaymentDto();
if (StringUtils.hasLength(vipName)){
List<Integer> vipIds = vipService.lambdaQuery().like(Vip::getVipName, vipName)
.list().stream().map(Vip::getId).collect(Collectors.toList());
+ if (vipIds.isEmpty()){
+ vipIds.add(-1);
+ }
+ vipPaymentDto.setVipIds(vipIds);
}
-// QueryByNamePhone
-// appUserClient.listAll()
-// Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-// List<Map<String, Object>> maps = vipService.listOfPage(vipName, status, page);
-// for (Map<String, Object> map : maps) {
-// Object timeType = map.get("timeType");
-// Object time = map.get("time");
-// Integer timeTypeValue = Integer.valueOf(timeType.toString());
-// Integer timeValue = Integer.valueOf(time.toString());
-// switch (timeTypeValue) {
-// case 1:
-// map.put("time",timeValue+"天");
-// break;
-// case 2:
-// map.put("time",timeValue+"月");
-// break;
-// case 3:
-// map.put("time",timeValue+"年");
-// break;
-// }
-// }
+ if (StringUtils.hasLength(phone)){
+ QueryByNamePhone queryByNamePhone = new QueryByNamePhone();
+ queryByNamePhone.setPhone( phone);
+ List<Integer> userIds = appUserClient.queryByNamePhone(queryByNamePhone).stream().map(TAppUser::getId)
+ .collect(Collectors.toList());
+
+ vipPaymentDto.setUserIds(userIds);
+ }
+ if (StringUtils.hasLength(appUserName)){
+ QueryByNamePhone queryByNamePhone = new QueryByNamePhone();
+ queryByNamePhone.setName( appUserName);
+ List<Integer> userIds = appUserClient.queryByNamePhone(queryByNamePhone).stream().map(TAppUser::getId)
+ .collect(Collectors.toList());
+ if (vipPaymentDto.getUserIds()!=null){
+ // 取交集
+ vipPaymentDto.setUserIds(vipPaymentDto.getUserIds().stream().filter(userIds::contains).collect(Collectors.toList()));
+ }else{
+ vipPaymentDto.setUserIds(userIds);
+ }
+ }
+ if (StringUtils.hasLength(appUserName)|| StringUtils.hasLength(phone)){
+ if (vipPaymentDto.getUserIds().isEmpty()){
+ List<Integer> userIds = vipPaymentDto.getUserIds();
+ userIds.add(-1);
+ vipPaymentDto.setUserIds(userIds);
+ }
+ }
return null;
}
- // APP查询所有上架的会员卡
- @ResponseBody
- @PostMapping("/listAll")
- public List<Vip> listAll() {
- List<Vip> list = vipService.lambdaQuery().eq(Vip::getStatus, 1).list();
- List<Coupon> coupons = couponClient.queryCouponAll();
- List<CouponCity> couponCityList = couponClient.queryAllCity();
- List<CouponStore> storeList = couponClient.queryAllStore();
- List<TStore> shopList = storeService.list();
- // 封装会员权益
- for (Vip vip : list) {
- List<CouponVipResp> couponVipRespList = new ArrayList<>();
- List<TicketVipResp> ticketVipRespList = new ArrayList<>();
- String couponJson = vip.getCouponJson();
- JSONArray couponJsonArray = JSONArray.parseArray(couponJson);
- for (Object o : couponJsonArray) {
- JSONObject couponJsonObject = (JSONObject) o;
- // 优惠券id
- Integer id = Integer.valueOf(couponJsonObject.getString("id"));
- // 优惠券数量
- Integer value = Integer.valueOf(couponJsonObject.getString("value"));
- Coupon coupon = coupons.stream().filter(e -> e.getId().equals(id)).findFirst().orElse(new Coupon());
- CouponVipResp couponVipResp = new CouponVipResp();
- couponVipResp.setId(coupon.getId());
- couponVipResp.setName(coupon.getName());
- couponVipResp.setType(coupon.getType());
- couponVipResp.setUseCondition(coupon.getUseScope());
- couponVipResp.setCount(value);
- switch (coupon.getUseScope()) {
- case 1:
- couponVipResp.setAvailable("全国通用");
- break;
- case 2:
- couponVipResp.setAvailable("指定城市可用");
- List<CouponCity> couponId = couponCityList.stream().filter(e -> e.getCouponId().equals(id))
- .collect(Collectors.toList());
- StringBuilder stringBuilder = new StringBuilder();
- for (CouponCity couponCity : couponId) {
- stringBuilder.append(couponCity.getCity());
- }
- couponVipResp.setCityOrStore(String.valueOf(stringBuilder));
- break;
- case 3:
- couponVipResp.setAvailable("指定门店可用");
- // 门店ids
- List<Integer> storeIds = storeList.stream().filter(e -> e.getCouponId().equals(id))
- .map(CouponStore::getStoreId).collect(Collectors.toList());
- StringBuilder storeNames = new StringBuilder("");
- if (!storeIds.isEmpty()) {
- List<TStore> stores = shopList.stream().filter(e -> storeIds.contains(e.getId())).collect(Collectors.toList());
- for (TStore store : stores) {
- storeNames.append(store.getName()).append(",");
- }
- // 去除最后一位
- StringBuilder res = storeNames.deleteCharAt(storeNames.length() - 1);
- couponVipResp.setCityOrStore(res.toString());
- } else {
- couponVipResp.setCityOrStore("无可用门店");
- }
- break;
- default:
- break;
- }
- couponVipResp.setInstructionsForUse(coupon.getIllustrate());
- ConponJsonRuleModel ruleModel = new ConponJsonRuleModel();
- JSONObject jsonObject = JSON.parseObject(coupon.getContent());
- switch (coupon.getType()) {
- case 1:
-// 满减券
- Double num1 = jsonObject.getDouble("conditionalAmount");
- Double num2 = jsonObject.getDouble("deductionAmount");
- ruleModel.setConditionalAmount("满" + num1 + "可用");
- ruleModel.setDeductionAmount("¥ " + num2);
- ruleModel.setExperienceName("");
- break;
- case 2:
-// 代金券
- Double jsonObjectDouble = jsonObject.getDouble("conditionalAmount");
- ruleModel.setConditionalAmount("");
- ruleModel.setDeductionAmount("¥ " + jsonObjectDouble);
- ruleModel.setExperienceName("");
- break;
- case 3:
-// 体验券
- ruleModel.setConditionalAmount("");
- ruleModel.setDeductionAmount("");
- ruleModel.setExperienceName(jsonObject.getString("experienceName"));
- break;
- default:
- break;
- }
- couponVipResp.setRuleModel(ruleModel);
-
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
- couponVipResp.setEffectiveTime(simpleDateFormat.format(coupon.getEndTime()));
- couponVipRespList.add(couponVipResp);
- }
- vip.setCouponList(couponVipRespList);
- String ticketJson = vip.getTicketJson();
- JSONArray ticketJsonArray = JSONArray.parseArray(ticketJson);
- for (Object o : ticketJsonArray) {
- JSONObject ticketJsonObject = (JSONObject) o;
- TicketVipResp ticketVipResp = new TicketVipResp();
- ticketVipResp.setName(ticketJsonObject.getString("name"));
- ticketVipResp.setTime(ticketJsonObject.getInteger("time"));
- ticketVipResp.setCount(ticketJsonObject.getInteger("count"));
- ticketVipRespList.add(ticketVipResp);
- }
- vip.setTicketList(ticketVipRespList);
- }
- return list;
- }
- @Autowired
- private IProtocolService protocolService;
- @ResponseBody
- @PostMapping("/getAgreement")
- public String getAgreement() {
- Protocol one = protocolService.lambdaQuery().eq(Protocol::getType, 6).one();
- if (one==null){
- Protocol protocol = new Protocol();
- protocol.setType(6);
- protocol.setContent("");
- protocol.setInsertTime(new Date());
- protocolService.save( protocol);
- return "";
- }else{
- return one.getContent();
-
- }
- }
-
- @ResponseBody
- @PostMapping("/getVipByIds")
- public List<Vip> getVipByIds(@RequestBody String ids) {
- List<Vip> list = vipService.lambdaQuery().in(Vip::getId, Arrays.asList(ids.split(","))).list();
- return list;
- }
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipPaymentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipPaymentController.java
new file mode 100644
index 0000000..9ae64a2
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipPaymentController.java
@@ -0,0 +1,181 @@
+package com.dsh.guns.modular.system.controller.code;
+
+import com.dsh.course.feignClient.account.AppUserClient;
+import com.dsh.course.feignClient.account.model.QueryByNamePhone;
+import com.dsh.course.feignClient.account.model.TAppUser;
+import com.dsh.course.feignClient.activity.CouponClient;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.modular.system.model.TOperator;
+import com.dsh.guns.modular.system.model.TSite;
+import com.dsh.guns.modular.system.model.TStore;
+import com.dsh.guns.modular.system.model.Vip;
+import com.dsh.guns.modular.system.model.dto.VipDetailDto;
+import com.dsh.guns.modular.system.model.vo.VipDetailVO;
+import com.dsh.guns.modular.system.service.IStoreService;
+import com.dsh.guns.modular.system.service.ITSiteService;
+import com.dsh.guns.modular.system.service.IVipService;
+import com.dsh.guns.modular.system.service.TOperatorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 14:02
+ */
+@Controller
+@RequestMapping("/vipPayment")
+public class TVipPaymentController extends BaseController {
+
+ @Autowired
+ private IVipService vipService;
+ @Autowired
+ private CouponClient couponClient;
+ @Autowired
+ private IStoreService storeService;
+ @Autowired
+ private AppUserClient appUserClient;
+ @Autowired
+ private ITSiteService siteService;
+ @Autowired
+ private TOperatorService operatorService;
+ private String PREFIX = "/system/vip/";
+
+
+ /**
+ * 跳转到优惠券管理首页
+ */
+ @RequestMapping("")
+ public String index(Model model) {
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ if (objectType!=1){
+ List<TOperator> list = operatorService.lambdaQuery().eq(TOperator::getId, objectId).list();
+ model.addAttribute("list",list);
+ }else{
+ List<TOperator> list = operatorService.lambdaQuery().ne(TOperator::getState,3).list();
+ model.addAttribute("list",list);
+ }
+ model.addAttribute("objectType",objectType);
+ return PREFIX + "vip_detail.html";
+ }
+
+ /**
+ * 获取 会员权益使用明细列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public List<VipDetailVO> list(String vipName, Integer type
+ , String phone, String storeName
+ , Integer operatorId, Integer status
+ , String time
+ , String useTime) {
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ VipDetailDto vipDetailDto = new VipDetailDto();
+ vipDetailDto.setOperatorId(operatorId);
+ vipDetailDto.setStatus(status);
+ vipDetailDto.setType(type);
+ vipDetailDto.setObjectType(objectType);
+ if (objectType == 2){
+ vipDetailDto.setStatus(2);
+ }
+
+ if (StringUtils.hasLength(vipName)){
+ List<Integer> vipIds = vipService.lambdaQuery().like(Vip::getVipName, vipName)
+ .list().stream().map(Vip::getId).collect(Collectors.toList());
+ if (vipIds.isEmpty()){
+ vipIds.add(-1);
+ }
+ vipDetailDto.setVipIds(vipIds);
+ }
+ if (StringUtils.hasLength(phone)){
+ QueryByNamePhone queryByNamePhone = new QueryByNamePhone();
+ queryByNamePhone.setPhone( phone);
+ List<Integer> userIds = appUserClient.queryByNamePhone(queryByNamePhone).stream().map(TAppUser::getId)
+ .collect(Collectors.toList());
+ if (userIds.isEmpty()){
+ userIds.add(-1);
+ }
+ vipDetailDto.setUserIds(userIds);
+
+ }
+ if (StringUtils.hasLength(storeName)){
+ List<Integer> storeIds = storeService.lambdaQuery().like(TStore::getName, storeName)
+ .eq(objectType!=1,TStore::getOperatorId,objectId ).list()
+ .stream().map(TStore::getId).collect(Collectors.toList());
+ if (storeIds.isEmpty()){
+ storeIds.add(-1);
+ }
+ vipDetailDto.setStoreIds(storeIds);
+ }
+
+ if (StringUtils.hasLength(time)){
+ String stareTime = null;
+ String endTime = null;
+ stareTime = time.split(" - ")[0] + " 00:00:00";
+ endTime = time.split(" - ")[1] + " 23:59:59";
+ vipDetailDto.setStartTime(stareTime);
+ vipDetailDto.setEndTime(endTime);
+ }
+ if (StringUtils.hasLength(useTime)){
+ String stareTime = null;
+ String endTime = null;
+ stareTime = time.split(" - ")[0] + " 00:00:00";
+ endTime = time.split(" - ")[1] + " 23:59:59";
+ vipDetailDto.setUseStartTime(stareTime);
+ vipDetailDto.setUseEndTime(endTime);
+ }
+ List<VipDetailVO> res = couponClient.vipDetail(vipDetailDto);
+ QueryByNamePhone queryByNamePhone = new QueryByNamePhone();
+ List<TAppUser> tAppUsers = appUserClient.queryByNamePhone(queryByNamePhone);
+ List<Vip> vipList = vipService.list();
+ List<TStore> storeList = storeService.list();
+ List<TSite> siteList = siteService.list();
+ List<TOperator> operatorList = operatorService.list();
+ for (VipDetailVO re : res) {
+ TAppUser tAppUser = tAppUsers.stream().filter(e -> e.getId().equals(re.getAppUserId())).findFirst().orElse(null);
+ if (tAppUser!=null){
+ re.setAppUserName(tAppUser.getName());
+ re.setAppUserPhone(tAppUser.getPhone());
+ }
+ Vip vip = vipList.stream().filter(e -> e.getId().equals(re.getVipId())).findFirst().orElse(null);
+ if (vip!=null){
+ re.setVipName(vip.getVipName());
+ }
+ if (re.getUseSiteId()!=null){
+ TSite site = siteList.stream().filter(e -> e.getId().equals(re.getUseSiteId())).findFirst().orElse(null);
+ if (site!=null){
+ re.setGoodsName(site.getName());
+ }
+ }
+ if (re.getUseStoreId()!=null){
+ TStore store = storeList.stream().filter(e -> e.getId().equals(re.getUseStoreId())).findFirst().orElse(null);
+ if (store!=null){
+ re.setStoreName(store.getName());
+ }
+ }
+ if (re.getOperatorId()!=null){
+ if (re.getOperatorId()==0){
+ re.setOperatorName("总平台");
+ }else{
+ TOperator operator = operatorList.stream().filter(e -> e.getId().equals(re.getOperatorId())).findFirst().orElse(null);
+ if (operator!=null){
+ re.setOperatorName(operator.getName());
+ }
+ }
+
+ }
+ }
+ return res;
+ }
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipDetailDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipDetailDto.java
index 28e7e41..b9f04e2 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipDetailDto.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipDetailDto.java
@@ -9,10 +9,26 @@
*/
@Data
public class VipDetailDto {
+ // 会员ids
List<Integer> vipIds;
+ // 用户ids
List<Integer> userIds;
- String store;
- String site;
+ // 门店ids
+ List<Integer> storeIds;
+ // 获得时间 开始
+ String startTime;
+ // 获得时间 结束
+ String endTime;
+ // 使用时间开始
+ String useStartTime;
+ // 使用时间结束
+ String useEndTime;
+ // 运营商id
+ Integer operatorId;
+ // 使用状态 1未使用 2已使用 3已过期
+ Integer status;
+ // 权益类型 1优惠券2门票
Integer type;
- Integer id;
+ // 1平台 2运营商
+ Integer objectType;
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipPaymentDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipPaymentDto.java
new file mode 100644
index 0000000..258a988
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipPaymentDto.java
@@ -0,0 +1,25 @@
+package com.dsh.guns.modular.system.model.dto;
+
+import com.baomidou.mybatisplus.extension.api.R;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 会员权益明细
+ */
+@Data
+public class VipPaymentDto {
+ // 会员ids
+ List<Integer> vipIds;
+ // 用户ids
+ List<Integer> userIds;
+
+ // 是否退款 0否1是
+ Integer isRefund;
+ // 下单时间开始
+ String useStartTime;
+ // 下单时间结束
+ String useEndTime;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/vo/VipDetailVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/vo/VipDetailVO.java
new file mode 100644
index 0000000..b353bbc
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/vo/VipDetailVO.java
@@ -0,0 +1,86 @@
+package com.dsh.guns.modular.system.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 会员权益明细列表
+ */
+@Data
+public class VipDetailVO {
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+
+ @ApiModelProperty(value = "用户id")
+ private Integer appUserId;
+ @ApiModelProperty(value = "用户名称")
+ private String appUserName;
+ @ApiModelProperty(value = "用户电话")
+ private String appUserPhone;
+
+ @ApiModelProperty(value = "使用状态 1待使用 2已使用 3已过期")
+ private Integer status;
+
+ @ApiModelProperty(value = "获取时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+ private Date insertTime;
+
+ @ApiModelProperty(value = "会员id")
+ private Integer vipId;
+ @ApiModelProperty(value = "会员名称")
+ private String vipName;
+ @ApiModelProperty(value = "会员权益类型 1优惠券 2门票")
+ private Integer type;
+
+ @ApiModelProperty(value = "会员支付记录id")
+ private Integer vipPaymentId;
+
+ @ApiModelProperty(value = "优惠券id")
+ private Integer couponId;
+
+ @ApiModelProperty(value = "门票名称/优惠券名称")
+ private String ticketName;
+
+ @ApiModelProperty(value = "开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date startTime;
+
+ @ApiModelProperty(value = "结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date endTime;
+
+ @ApiModelProperty(value = "可用次数")
+ private Integer useCount;
+
+ @ApiModelProperty(value = "使用门店id")
+ private Integer useStoreId;
+ @ApiModelProperty(value = "门店名称")
+ private String storeName;
+ @ApiModelProperty(value = "使用场地id")
+ private Integer useSiteId;
+
+ @ApiModelProperty(value = "使用商品id")
+ private Integer useGoodsId;
+ @ApiModelProperty(value = "使用商品/场地名称")
+ private String goodsName;
+
+ @ApiModelProperty(value = "使用时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+ private Date useTime;
+
+ @ApiModelProperty(value = "运营商id")
+ private Integer operatorId;
+ @ApiModelProperty(value = "运营商名称")
+ private String operatorName;
+
+ @ApiModelProperty(value = "用户优惠券id")
+ private Long userCouponId;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/vo/VipPaymentVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/vo/VipPaymentVO.java
new file mode 100644
index 0000000..60d74e3
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/vo/VipPaymentVO.java
@@ -0,0 +1,45 @@
+package com.dsh.guns.modular.system.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 会员订单列表
+ */
+@Data
+public class VipPaymentVO {
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+ @ApiModelProperty(value = "订单编号")
+ private String code;
+ @ApiModelProperty(value = "用户id")
+ private Integer appUserId;
+ @ApiModelProperty(value = "用户名称")
+ private String appUserName;
+ @ApiModelProperty(value = "用户电话")
+ private String appUserPhone;
+ @ApiModelProperty(value = "会员名称")
+ private String vipName;
+ @ApiModelProperty(value = "会员id")
+ private Integer vipId;
+ @ApiModelProperty(value = "会员时长")
+ private String vipTime;
+ @ApiModelProperty(value = "金额¥")
+ private String amountValue;
+ @ApiModelProperty(value = "金额")
+ private BigDecimal amount;
+ @ApiModelProperty(value = "下单时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date insertTime;
+ @ApiModelProperty(value = "是否退款 0否1时")
+ private Integer isRefund;
+ @ApiModelProperty(value = "备注")
+ private Integer remark;
+
+
+
+}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/vipDetail/vip_detail.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/vipDetail/vip_detail.html
new file mode 100644
index 0000000..25881bd
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/vipDetail/vip_detail.html
@@ -0,0 +1,109 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <div class="ibox-title">
+ <h5>会员权益使用明细</h5>
+ </div>
+
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ <div class="col-sm-3">
+ <#NameCon id="vipName" name="权益名称" />
+ </div>
+ <div class="col-sm-3">
+ <div class="input-group">
+ <div class="input-group-btn open">
+ <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+ 权益类型
+ </button>
+ </div>
+ <select class="form-control" id="type" >
+ <option value="">全部</option>
+ <option value="1">优惠券</option>
+ <option value="2">门票</option>
+ </select>
+ </div>
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="phone" name="会员电话" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="storeName" name="使用门店" />
+ </div>
+ <div class="col-sm-3">
+ <div class="input-group">
+ <div class="input-group-btn open">
+ <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+ 归属运营商
+ </button>
+ </div>
+ <select class="form-control" id="operatorId" >
+ <option value="">全部</option>
+ @for(obj in list){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="col-sm-3">
+ <div class="input-group">
+ <div class="input-group-btn open">
+ <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+ 使用状态
+ </button>
+ </div>
+ <select class="form-control" id="status" >
+ <option value="">全部</option>
+ <option value="1">未使用</option>
+ <option value="2">已使用</option>
+ <option value="3">已过期</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="col-sm-3">
+ <#TimeCon id="time" name="获得日期" isTime="false"/>
+ </div>
+ <div class="col-sm-3">
+ <#TimeCon id="useTime" name="使用日期" isTime="false"/>
+ </div>
+
+
+
+
+
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
+ @if(objectType==1){
+ <#button name="导出" icon="fa-plus" clickFun="TCompetition.export()"/>
+ @}
+ </div>
+ <#table id="TCompetitionTable"/>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/vipDetail/vipDetail.js"></script>
+<script>
+ laydate.render({
+ elem: '#time'
+ , trigger: 'click'
+ , range: true
+ });
+ laydate.render({
+ elem: '#useTime'
+ , trigger: 'click'
+ , range: true
+ });
+</script>
+
+@}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/vipDetail/vipDetail.js b/cloud-server-management/src/main/webapp/static/modular/system/vipDetail/vipDetail.js
new file mode 100644
index 0000000..53f20c6
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/vipDetail/vipDetail.js
@@ -0,0 +1,187 @@
+/**
+ * 车辆管理管理初始化
+ */
+var TCompetition = {
+ id: "TCompetitionTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+var language =1
+var role =$("#role").val()
+/**
+ * 初始化表格的列
+ */
+TCompetition.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'},
+ {title: '权益名称', field: 'ticketName', visible: true, align: 'center', valign: 'middle'},
+ {title: '权益类型', field: 'type', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"优惠券",2:"门票"}[data]
+ }
+ },
+ {title: '关联会员类型', field: 'vipName', visible: true, align: 'center', valign: 'middle'},
+ {title: '购买会员姓名', field: 'appUserName', visible: true, align: 'center', valign: 'middle'},
+ {title: '联系电话', field: 'appUserPhone', visible: true, align: 'center', valign: 'middle'},
+ {title: '使用状态', field: 'status', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"未使用",2:"已使用",3:"已过期"}[data]
+ }
+ },
+ {title: '使用场地/商品名称', field: 'goodsName', visible: true, align: 'center', valign: 'middle'},
+ {title: '使用门店', field: 'storeName', visible: true, align: 'center', valign: 'middle'},
+ {title: '归属运营商', field: 'operatorName', visible: true, align: 'center', valign: 'middle'},
+ {title: '获得时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+ {title: '使用时间', field: 'useTime', visible: true, align: 'center', valign: 'middle'},
+
+ ];
+};
+
+
+
+
+
+/**
+ * 查询车辆管理列表
+ */
+TCompetition.search = function () {
+ var queryData = {};
+ queryData['vipName'] = $("#vipName").val();
+ queryData['type'] = $("#type").val();
+ queryData['phone'] = $("#phone").val();
+ queryData['storeName'] = $("#storeName").val();
+ queryData['operatorId'] = $("#operatorId").val();
+ queryData['status'] = $("#status").val();
+ queryData['time'] = $("#time").val();
+ queryData['useTime'] = $("#useTime").val();
+ TCompetition.table.refresh({query: queryData});
+};
+
+
+TCompetition.resetSearch = function () {
+ $("#vipName").val("");
+ $("#type").val("");
+ $("#name").val("");
+ $("#phone").val("");
+ $("#storeName").val("");
+ $("#operatorId").val("");
+ $("#status").val("");
+ $("#time").val("");
+ $("#useTime").val("");
+ TCompetition.search();
+};
+
+
+$(function () {
+ var defaultColunms = TCompetition.initColumn();
+ var table = new BSTable(TCompetition.id, "/vipDetail/list", defaultColunms);
+ table.setPaginationType("client");
+ TCompetition.table = table.init();
+ TCompetition.getAmount();
+
+});
+
+/**
+ * 下载模板
+ */
+TCompetition.uploadCarModel = function () {
+ window.location.href = Feng.ctxPath + "/TCompetition/uploadCarModel";
+}
+
+var agreement = function(){
+ this.init = function(){
+ //模拟上传excel
+ $("#uploadEventBtn").unbind("click").bind("click",function(){
+ $("#uploadEventFile").click();
+ });
+ };
+}
+/**
+ * 导入合同
+ */
+TCompetition.exporTCompetition = function () {
+ var uploadEventFile = $("#uploadEventFile").val();
+ if(uploadEventFile == ''){
+ if(language==1){
+ Feng.info("请选择Excel,再上传");
+ }else if(language==2){
+ Feng.info("Please select Excel and upload");
+ }else {
+ Feng.info("Silakan pilih Excel dan upload");
+ }
+ }else if(uploadEventFile.lastIndexOf(".xls")<0){//可判断以.xls和.xlsx结尾的excel
+ if(language==1){
+ Feng.info("只能上传Excel文件");
+ }else if(language==2){
+ Feng.info("Only Excel files can be uploaded");
+ }else {
+ Feng.info("Hanya berkas Excel yang dapat diunggah");
+ }
+ }else{
+ var url = Feng.ctxPath + '/TCompetition/exporTCompetition';
+ var file = document.querySelector('input[name=file]').files[0];
+ var reader = new FileReader();
+ if (file) {
+ var formData = new FormData();
+ formData.append("myfile", file);
+ this.sendAjaxRequest(url, 'POST', formData);
+ }
+ }
+}
+TCompetition.sendAjaxRequest = function(url,type,data){
+ $.ajax({
+ url : url,
+ type : type,
+ data : data,
+ success : function(result) {
+ if(result.code==500) {
+ Feng.info(result.message);
+ }else {
+ if(language==1){
+ Feng.success("导入成功!");
+ }else if(language==2){
+ Feng.success("SUCCESSFUL IMPORT!");
+ }else {
+ Feng.success("Import berhasil!");
+ }
+ }
+ TCompetition.table.refresh();
+ },
+ error : function() {
+ if(language==1){
+ Feng.error("excel上传失败!");
+ }else if(language==2){
+ Feng.error("Uploading excel Fails. Procedure!");
+ }else {
+ Feng.error("Gagal mengunggah excel!");
+ }
+ },
+ cache : false,
+ contentType : false,
+ processData : false
+ });
+};
+
+var agreement;
+$(function(){
+ agreement = new agreement();
+ agreement.init();
+});
+
+/**
+ * 导出车辆操作
+ */
+TCompetition.ouTCompetition = function () {
+ var operation = function() {
+ window.location.href = Feng.ctxPath + "/TCompetition/ouTCompetition";
+ };
+ if(language==1){
+ Feng.confirm("是否确认导出车辆信息?", operation);
+ }else if(language==2){
+ Feng.confirm("Are you sure to export vehicle information?", operation);
+ }else {
+ Feng.confirm("Apakah Anda pasti akan mengekspor informasi kendaraan?", operation);
+ }
+}
\ No newline at end of file
--
Gitblit v1.7.1