记得上下班打卡 | git大法好,push需谨慎

Commit 8df400b3 authored by 胡佳晨's avatar 胡佳晨

导入暂时提交

parent a026d38e
...@@ -60,6 +60,8 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable { ...@@ -60,6 +60,8 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
private String rongCloudToken; private String rongCloudToken;
@ApiModelProperty(position = 28, value = "身份二维码") @ApiModelProperty(position = 28, value = "身份二维码")
private String qrCode; private String qrCode;
@ApiModelProperty(position = 30, value = "标记[0-普通用户|2-过期会员|10-老会员|11-新会员]")
private Integer stageMarker;
private static final AdamUserInfoVo obj = new AdamUserInfoVo(); private static final AdamUserInfoVo obj = new AdamUserInfoVo();
...@@ -137,4 +139,15 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable { ...@@ -137,4 +139,15 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
return this; return this;
} }
}
public AdamUserInfoVo rating(AdamUserMemberVo userMemberVo) {
if (null == userMemberVo) {
this.setStageMarker(0);
} else if (userMemberVo.isActive()) {
this.setStageMarker(userMemberVo.isOldMember() ? 10 : 11);
} else {
this.setStageMarker(2);
}
return this;
}
}
\ No newline at end of file
...@@ -10,6 +10,7 @@ import lombok.Data; ...@@ -10,6 +10,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@ApiModel(value = "AdamUserMemberVo", description = "会员用户信息") @ApiModel(value = "AdamUserMemberVo", description = "会员用户信息")
@Data @Data
...@@ -33,6 +34,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable { ...@@ -33,6 +34,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR) @JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
private static final LocalDateTime oldMemberSpotTime = LocalDateTime.parse("2022-09-02 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
private static final AdamUserMemberVo obj = new AdamUserMemberVo(); private static final AdamUserMemberVo obj = new AdamUserMemberVo();
public static AdamUserMemberVo getNew() { public static AdamUserMemberVo getNew() {
...@@ -65,4 +67,15 @@ public class AdamUserMemberVo implements Serializable, Cloneable { ...@@ -65,4 +67,15 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
LocalDateTime expiryAt = this.getExpiryAt(); LocalDateTime expiryAt = this.getExpiryAt();
return this.getState() == 1 && null != expiryAt && expiryAt.isAfter(LocalDateTime.now()); return this.getState() == 1 && null != expiryAt && expiryAt.isAfter(LocalDateTime.now());
} }
}
/**
* 是否为老会员
*
* @return true-是
*/
@JsonIgnore
public boolean isOldMember() {
LocalDateTime expiryAt = this.getExpiryAt();
return expiryAt.isBefore(oldMemberSpotTime);
}
}
\ No newline at end of file
package com.liquidnet.client.admin.web.controller.zhengzai.kylin;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.client.admin.zhengzai.kylin.service.IImportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@Controller
@RequestMapping("/import")
public class ImportController {
@Autowired
IImportService iImportService;
/**
* 下载模板
*/
@GetMapping("/template/OrderOutLine")
@ResponseBody
public AjaxResult importTemplateOrderOutLine()
{
ExcelUtil<OrderOutLineVo> util = new ExcelUtil(OrderOutLineVo.class);
return util.importTemplateExcel("订单导入数据");
}
/**
* 导入
*/
@PostMapping("/OrderOutLine/{performancesId}")
@ResponseBody
public AjaxResult importOrderOutLine(@PathVariable("performancesId") String performancesId, MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<OrderOutLineVo> util = new ExcelUtil(OrderOutLineVo.class);
List<OrderOutLineVo> orderOutLineVoList = util.importExcel(file.getInputStream());
String operName = ShiroUtils.getSysUser().getLoginName();
String message = iImportService.importOrderOutLine(performancesId,orderOutLineVoList, updateSupport, operName);
return AjaxResult.success(message);
}
}
...@@ -7,19 +7,23 @@ ...@@ -7,19 +7,23 @@
<div class="wrapper wrapper-content animated fadeIn"> <div class="wrapper wrapper-content animated fadeIn">
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<a class="btn btn-warning" onclick="$.table.importExcel()">
<i class="fa fa-upload"></i>导入
</a>
<div class="tabs-container"> <div class="tabs-container">
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li id="li-tab-2" class="active"><a data-toggle="tab" href="#tab-2" aria-expanded="false">演出详情</a> <li id="li-tab-2" class="active"><a data-toggle="tab" href="#tab-2" aria-expanded="false">演出详情</a>
</li> </li>
<li id="li-tab-1"><a data-toggle="tab" href="#tab-1" aria-expanded="true" id="tab-nav-1"> 演出数据</a> <li id="li-tab-1"><a data-toggle="tab" href="#tab-1" aria-expanded="true" id="tab-nav-1"> 演出数据</a>
</li> </li>
<!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">校园分销</a>--> <!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">校园分销</a>-->
<!-- </li>--> <!-- </li>-->
<!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">社会分销</a>--> <!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">社会分销</a>-->
<!-- </li>--> <!-- </li>-->
<!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">状态管理</a>--> <!-- <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">状态管理</a>-->
<!-- </li>--> <!-- </li>-->
<li id="li-tab-6"><a data-toggle="tab" href="#tab-6" aria-expanded="false" onclick="refundConfigInfo()">退款管理</a> <li id="li-tab-6"><a data-toggle="tab" href="#tab-6" aria-expanded="false"
onclick="refundConfigInfo()">退款管理</a>
</li> </li>
<li id="li-tab-7"><a data-toggle="tab" href="#tab-7" aria-expanded="false" onclick="transferInfo()">转赠配置</a> <li id="li-tab-7"><a data-toggle="tab" href="#tab-7" aria-expanded="false" onclick="transferInfo()">转赠配置</a>
</li> </li>
...@@ -239,7 +243,8 @@ ...@@ -239,7 +243,8 @@
</div> </div>
<div id="tab-6" class="tab-pane"> <div id="tab-6" class="tab-pane">
<div class="panel-body"> <div class="panel-body">
<iframe id="refundConfig_iframe" name="refundConfig_iframe" marginwidth=0 marginheight=0 width=100% <iframe id="refundConfig_iframe" name="refundConfig_iframe" marginwidth=0 marginheight=0
width=100%
height=800px frameborder=0></iframe> height=800px frameborder=0></iframe>
</div> </div>
</div> </div>
...@@ -263,38 +268,38 @@ ...@@ -263,38 +268,38 @@
const auditStatus = '[[${kylinPerformanceMisVo.auditStatus}]]'; const auditStatus = '[[${kylinPerformanceMisVo.auditStatus}]]';
var agentFlag = [[${@permission.hasPermi('kylin:performances:agent')}]]; var agentFlag = [[${@permission.hasPermi('kylin:performances:agent')}]];
if(agentFlag=="hidden"){ if (agentFlag == "hidden") {
document.getElementById("li-tab-4").style.display = "none"; document.getElementById("li-tab-4").style.display = "none";
} }
var otherFlag = [[${@permission.hasPermi('kylin:performances:audit')}]]; var otherFlag = [[${@permission.hasPermi('kylin:performances:audit')}]];
if(otherFlag=="hidden"){ if (otherFlag == "hidden") {
document.getElementById("li-tab-2").style.display = "none"; document.getElementById("li-tab-2").style.display = "none";
document.getElementById("tab-2").style.display = "none"; document.getElementById("tab-2").style.display = "none";
} }
var refundFlag = [[${@permission.hasPermi('kylin:performances:refund')}]]; var refundFlag = [[${@permission.hasPermi('kylin:performances:refund')}]];
if(refundFlag=="hidden"){ if (refundFlag == "hidden") {
document.getElementById("li-tab-6").style.display = "none"; document.getElementById("li-tab-6").style.display = "none";
} }
var memberFlag = [[${@permission.hasPermi('kylin:performances:member')}]]; var memberFlag = [[${@permission.hasPermi('kylin:performances:member')}]];
if(memberFlag=="hidden"){ if (memberFlag == "hidden") {
document.getElementById("li-tab-3").style.display = "none"; document.getElementById("li-tab-3").style.display = "none";
} }
var damaiFlag = [[${@permission.hasPermi('kylin:performances:damai')}]]; var damaiFlag = [[${@permission.hasPermi('kylin:performances:damai')}]];
if(damaiFlag=="hidden"){ if (damaiFlag == "hidden") {
document.getElementById("li-tab-5").style.display = "none"; document.getElementById("li-tab-5").style.display = "none";
} }
var dataFlag = [[${@permission.hasPermi('kylin:performances:data')}]]; var dataFlag = [[${@permission.hasPermi('kylin:performances:data')}]];
if(dataFlag=="hidden"){ if (dataFlag == "hidden") {
document.getElementById("li-tab-1").style.display = "none"; document.getElementById("li-tab-1").style.display = "none";
} }
var transferFlag = [[${@permission.hasPermi('kylin:performances:transfer')}]]; var transferFlag = [[${@permission.hasPermi('kylin:performances:transfer')}]];
if(transferFlag=="hidden"){ if (transferFlag == "hidden") {
document.getElementById("li-tab-7").style.display = "none"; document.getElementById("li-tab-7").style.display = "none";
} }
...@@ -367,13 +372,60 @@ ...@@ -367,13 +372,60 @@
} }
//转赠配置 //转赠配置
function transferInfo(){ function transferInfo() {
document.getElementById("transfer_iframe").src = "../transferConfig/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", ""); document.getElementById("transfer_iframe").src = "../transferConfig/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", "");
} }
$("#tab-nav-1").bind("click", function () { $("#tab-nav-1").bind("click", function () {
$("#tab_iframe_1").attr("src", prefix + "/performanceStatic/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", "")); $("#tab_iframe_1").attr("src", prefix + "/performanceStatic/" + '[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", ""));
}); });
var options = {
importUrl: ctx + "import/OrderOutLine/"+'[[${kylinPerformanceMisVo.performancesId}]]'.replaceAll("\"", ""),//导入
importTemplateUrl: ctx + "import/template/OrderOutLine",//导出
column: [{
field: 'enterMobile',
title: '手机号',
}, {
field: 'enterName',
title: '姓名',
}, {
field: 'enterIdCode',
title: '身份证',
}, {
field: 'number',
title: '购票数量',
}, {
field: 'ticketTitle',
title: '票种名称',
}, {
field: 'useTime',
title: '票种适用时间',
}, {
field: 'ticketType',
title: '票种类型(电子、快递)',
}
]
}
$.table.init(options)
</script> </script>
<script id="importTpl" type="text/template">
<form enctype="multipart/form-data" class="mt20 mb10">
<div class="col-xs-offset-1">
<input type="file" id="file" name="file"/>
<div class="mt10 pt5">
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
&nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i
class="fa fa-file-excel-o"></i> 下载模板</a>
</div>
<font color="red" class="pull-left mt10">
提示:仅允许导入“xls”或“xlsx”格式文件!
</font>
</div>
</form>
</script>
</body> </body>
</html> </html>
package com.liquidnet.client.admin.zhengzai.kylin.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import lombok.Data;
@Data
public class OrderOutLineVo {
@Excel(name = "手机号",cellType = Excel.ColumnType.STRING)
private String enterMobile;
@Excel(name = "姓名",cellType = Excel.ColumnType.STRING)
private String enterName;
@Excel(name = "身份证",cellType = Excel.ColumnType.STRING)
private String enterIdCode;
@Excel(name = "购票数量",cellType = Excel.ColumnType.NUMERIC)
private String number;
@Excel(name = "票种名称",cellType = Excel.ColumnType.STRING)
private String ticketTitle;
@Excel(name = "票种适用时间",cellType = Excel.ColumnType.STRING,dateFormat = "yyyy-MM-dd")
private String useTime;
@Excel(name = "票种类型(电子票)",cellType = Excel.ColumnType.STRING)
private String ticketType;
}
package com.liquidnet.client.admin.zhengzai.kylin.service;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import java.util.List;
public interface IImportService {
String importOrderOutLine(String performancesId,List<OrderOutLineVo> orderOutLineVoList, Boolean updateSupport, String operName);
}
package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.client.admin.common.exception.BusinessException;
import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderOutLineVo;
import com.liquidnet.client.admin.zhengzai.kylin.service.IImportService;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.util.List;
@Service
public class ImportServiceImpl implements IImportService {
@Autowired
IKylinPerformancesAdminService kylinPerformancesService;
@Value("${liquidnet.service.adam.url}")
private String adamUrl;
/**
* 导入订单数据
*/
public String importOrderOutLine(String performancesId, List<OrderOutLineVo> orderOutLineVoList, Boolean updateSupport, String operName) {
if (StringUtils.isNull(orderOutLineVoList) || orderOutLineVoList.size() == 0) {
throw new BusinessException("导入用户数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (OrderOutLineVo orderOutLineVo : orderOutLineVoList) {
//获取演出维度数据
KylinPerformanceMisVo misVo = kylinPerformancesService.performanceDetails(performancesId);
//获取账号维度数据
String enterMobile = orderOutLineVo.getEnterMobile();
String enterIdCode = orderOutLineVo.getEnterIdCode();
String enterName = orderOutLineVo.getEnterName();
String number = orderOutLineVo.getNumber();
MultiValueMap<String, String> params = new LinkedMultiValueMap();
params.add("mobile", orderOutLineVo.getEnterMobile());
String returnData = HttpUtil.post(adamUrl.concat("/adam/rsc/reg/mobile"), params);
AdamUserInfoVo adamUserInfoVo = JsonUtils.fromJson(returnData,new TypeReference<ResponseDto<AdamUserInfoVo>>() {}).getData();
String uid =adamUserInfoVo.getUid();
Boolean isMember;
if(adamUserInfoVo.getStageMarker().equals("10") || adamUserInfoVo.getStageMarker().equals("11")){
isMember = true;
}else{
isMember = false;
}
Boolean isTrueName;
Boolean isStudent;
String ticketTitle = orderOutLineVo.getTicketTitle();
String useTime = orderOutLineVo.getUseTime();
String ticketType ;
if(orderOutLineVo.getTicketType().equals("电子票")){
ticketType="electronic";
}
// else if(orderOutLineVo.getTicketType().equals("快递票")){
// ticketType="express";
// }
// try {
// // 验证是否存在这个用户
// OrderOutLineVo u = studentMapper.selectStudentByName(student.getStudentName());
// if (StringUtils.isNull(u)) {
// student.setStudentName(student.getStudentName());
// this.insertStudent(student);
// successNum++;
// successMsg.append("<br/>" + successNum + "学校信息" + student.getStudentName() + " 导入成功");
// } else if (updateSupport) {
// student.setUpdateBy(operName);
// this.updateStudent(student);
// successNum++;
// successMsg.append("<br/>" + successNum + "学校信息 " + student.getStudentName() + " 更新成功");
// } else {
// failureNum++;
// failureMsg.append("<br/>" + failureNum + "学校信息" + student.getStudentName() + " 已存在");
// }
// } catch (Exception e) {
// failureNum++;
// String msg = "<br/>" + failureNum + "学校信息" + student.getStudentName() + " 导入失败:";
// failureMsg.append(msg + e.getMessage());
// log.error(msg, e);
// }
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new BusinessException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
}
...@@ -42,7 +42,7 @@ public class AdamRscController { ...@@ -42,7 +42,7 @@ public class AdamRscController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "手机号"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "手机号"),
}) })
@PostMapping(value = {"reg/mobile"}) @PostMapping(value = {"reg/mobile"})
public void registerByMobile(@Pattern(regexp = "\\d{11}", message = "手机号格式有误") public ResponseDto<AdamUserInfoVo> registerByMobile(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mobile) { @RequestParam String mobile) {
AdamUserInfoVo userInfoVo; AdamUserInfoVo userInfoVo;
String uid = adamRdmService.getUidByMobile(mobile); String uid = adamRdmService.getUidByMobile(mobile);
...@@ -50,10 +50,10 @@ public class AdamRscController { ...@@ -50,10 +50,10 @@ public class AdamRscController {
userInfoVo = adamUserService.register(mobile, 1); userInfoVo = adamUserService.register(mobile, 1);
log.info(UserPathDto.setData("注册", mobile, userInfoVo)); log.info(UserPathDto.setData("注册", mobile, userInfoVo));
} else { } else {
// userInfoVo = adamRdmService.getUserInfoVoByUid(uid); userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
log.info(UserPathDto.setData("已注册", mobile, uid)); log.info(UserPathDto.setData("已注册", mobile, uid));
} }
// return ResponseDto.success(userInfoVo); return ResponseDto.success(userInfoVo);
} }
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment