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

Commit dcfbf420 authored by jiangxiulong's avatar jiangxiulong

Merge branch 'test'

parents 5925d437 515345aa
......@@ -41,6 +41,9 @@ public class BannersParam implements Serializable {
@ApiModelProperty(value = "跳转目标id或者url 不跳转则为空", example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png")
private String targetObj;
@ApiModelProperty(value = "跳转目标名称", example = "演出名称")
private String targetObjName;
@ApiModelProperty(value = "是否上线展示 0下线 1上线", required = true, example = "1", allowableValues = "0,1")
@Min(value = 0, message = "请选择是否上线")
private Integer isOnline;
......
......@@ -36,6 +36,8 @@ public class KylinBannersVo implements Serializable {
@ApiModelProperty(value = "跳转目标id或者url")
private String targetObj;
private String targetObjName;
@ApiModelProperty(value = "是否上线展示 0下线 1上线")
private Integer isOnline;
......
......@@ -119,6 +119,7 @@ public class KylinOrderRefundsVo implements Serializable {
private List<KylinOrderRefundEntitiesVo> orderRefundEntitiesVoList;
private List<KylinOrderRefundPicVo> orderRefundPicVos;
private List<String> picList;
public void setStatus(Integer status){
try {
......
......@@ -168,6 +168,7 @@
var data = $('#form-post-add').serializeArray();
var targetObj = '';
var targetObjName = '';
if (12 == targetType || 100 == targetType) { // 请填写url
targetObj = $("#targetObjInput").val();
if (!targetObj) {
......@@ -177,7 +178,8 @@
} else if (0 == targetType || 201 == targetType) { // 无需跳转
targetObj = '';
} else {
targetObj = $("#targetObjSelect").val();
targetObj = $("#targetObjSelect").attr("data-id");
targetObjName = $("#targetObjSelect").val();
if (!targetObj) {
layer.msg("请选择跳转的目标");
return false;
......@@ -189,6 +191,7 @@
return false;
}
data.push({"name": "targetObj", "value": targetObj});
data.push({"name": "targetObjName", "value": targetObjName});
/*data.push({"name": "positionList", "value": positionList});
var provincesList = $.form.selectSelects("provincesList");
data.push({"name": "provincesList", "value": provincesList});*/
......@@ -309,13 +312,14 @@
// 跳转类型选择事件
function targetObjBsSuggest(searchUrl, targetType) {
console.log(searchUrl)
var taobaoBsSuggest = $("#targetObjSelect").bsSuggest({
var bsSuggest = $("#targetObjSelect").bsSuggest({
indexId: 0, // data.value 每组数据的第几个数据,作为input输入框的 data-id,设为 -1 且 idField 为空则不设置此值
indexKey: 1, // data.value 的第几个数据,作为input输入框的内容
keyField: "ID",
showBtn: false, //是否显示下拉按钮
hideOnSelect:true, //鼠标从列表单击选择了值时,是否隐藏选择列表
searchingTip: "获取中...",
clearable: true, //是否可清除已输入的内容
allowNoKeyword: false, // 是否允许无关键字时请求数据
multiWord: false, // 以分隔符号分割的多关键字支持
separator: ",", // 多关键字支持时的分隔符,默认为空格
......@@ -325,7 +329,7 @@
Keyword: "名称"
},
showHeader: true,
url: searchUrl,
url: searchUrl + '&title=',
/*优先从url ajax 请求 json 帮助数据,注意最后一个参数为关键字请求参数*/
// jsonp: 'callback',
/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
......@@ -384,6 +388,7 @@
}
$('#targetType').on('select2:select', function (e) {
$("#targetObjSelect").bsSuggest("destroy");
// var cardTypeW = $("#cardType option:checked").text(); // 获取选中的名
// var targetType = $("#targetType option:checked").val();
var targetType = $('#targetType').select2('val');
......@@ -400,8 +405,6 @@
searchUrl = urleval.replace(/&(lt|gt|nbsp|amp|quot);/ig, function (all, t) {
return arrEntities[t];
});
searchUrl = searchUrl.replaceAll('&#39;', ''); //配置生效以后这个可能可去掉
// searchUrl = searchUrl.replaceAll('title=', ''); //配置生效以后这个可能可去掉
$("#targetObjSelectShow").show();
$("#targetObjInput").hide();
......
......@@ -45,10 +45,24 @@
<div class="col-sm-5">
<input th:value="${KylinBannersVo.targetObj}" class="form-control" type="text" placeholder="请填写url"
id="targetObjInput">
<div hidden="hidden" id="targetObjSelectShow">
<!--<div hidden="hidden" id="targetObjSelectShow">
<select class="form-control" id="targetObjSelect">
<option value="">--请选择--</option>
<option value="">&#45;&#45;请选择&#45;&#45;</option>
</select>
</div>-->
<div hidden class="row" id="targetObjSelectShow">
<div class="col-lg-6">
<div class="input-group">
<input type="text" class="form-control" id="targetObjSelect">
<div class="input-group-btn">
<button type="button" class="btn btn-white dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
......@@ -138,6 +152,7 @@
<th:block th:include="include :: select2-js"/>
<th:block th:include="include :: datetimepicker-js"/>
<th:block th:include="include :: bootstrap-fileinput-js"/>
<th:block th:include="include :: bootstrap-suggest-js"/>
<script type="text/javascript">
var prefix = ctx + "kylin/banners";
var provinces = "[[${provinces}]]";
......@@ -156,6 +171,7 @@
var url24 = "[[${url24}]]";
var url26 = "[[${url26}]]";
var targetObj = "[[${KylinBannersVo.targetObj}]]";
var targetObjName = "[[${KylinBannersVo.targetObjName}]]";
var targetObjType = "[[${KylinBannersVo.targetType}]]";
var provincesListOld = "[[${KylinBannersVo.provincesList}]]";
var coverImg = "[[${KylinBannersVo.coverImg}]]";
......@@ -181,6 +197,7 @@
var data = $('#form-post-add').serializeArray();
var targetObj = '';
var targetObjName = '';
if (12 == targetType || 100 == targetType) { // 请填写url
targetObj = $("#targetObjInput").val();
if (!targetObj) {
......@@ -190,7 +207,8 @@
} else if (0 == targetType || 201 == targetType) { // 无需跳转
targetObj = '';
} else {
targetObj = $("#targetObjSelect").val();
targetObj = $("#targetObjSelect").attr("data-id");
targetObjName = $("#targetObjSelect").val();
if (!targetObj) {
layer.msg("请选择跳转的目标");
return false;
......@@ -202,6 +220,7 @@
return false;
}
data.push({"name": "targetObj", "value": targetObj});
data.push({"name": "targetObjName", "value": targetObjName});
data.push({"name": "bannersId", "value": bannersId});
/*data.push({"name": "positionList", "value": positionList});
var provincesList = $.form.selectSelects("provincesList");
......@@ -323,7 +342,85 @@
});*/
// 跳转类型选择事件
// 跳转类型选择事件
function targetObjBsSuggest(searchUrl, targetType) {
var bsSuggest = $("#targetObjSelect").bsSuggest({
indexId: 0, // data.value 每组数据的第几个数据,作为input输入框的 data-id,设为 -1 且 idField 为空则不设置此值
indexKey: 1, // data.value 的第几个数据,作为input输入框的内容
showBtn: false, //是否显示下拉按钮
hideOnSelect:true, //鼠标从列表单击选择了值时,是否隐藏选择列表
searchingTip: "获取中...",
clearable: true, //是否可清除已输入的内容
allowNoKeyword: false, // 是否允许无关键字时请求数据
multiWord: false, // 以分隔符号分割的多关键字支持
separator: ",", // 多关键字支持时的分隔符,默认为空格
getDataMethod: "url", // 获取数据的方式,总是从 URL 获取
effectiveFieldsAlias: {
Id: "ID",
Keyword: "名称"
},
showHeader: true,
url: searchUrl + '&title=',
/*优先从url ajax 请求 json 帮助数据,注意最后一个参数为关键字请求参数*/
// jsonp: 'callback',
/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
var i, len, data = {
value: []
};
if (!json) {
return false;
}
if (6 == targetType) {
dataList = json.value;
} else if(8 == targetType) {
dataList = json.rows;
} else if(24 == targetType) {
dataList = json.data;
} else if(26 == targetType) {
dataList = json.data;
} else {
dataList = json.data
}
console.log(dataList);
len = dataList.length;
for (i = 0; i < len; i++) {
var Title = '';
var Id = '';
if (6 == targetType) {
Id = dataList[i].performancesId;
Title = dataList[i].title;
} else if(8 == targetType) {
Id = dataList[i].roadShowId;
Title = dataList[i].title;
} else if(24 == targetType) {
Id = dataList[i].id;
Title = dataList[i].collect_name;
} else if(26 == targetType) {
Id = dataList[i].id;
Title = dataList[i].name;
} else {
Id = dataList[i].id;
Title = dataList[i].title;
}
data.value.push({
"Id": Id,
"Title": Title,
});
}
console.log(data);
return data;
}
});
}
function targetType() {
$("#targetObjSelect").bsSuggest("destroy");
var targetType = $('#targetType').select2('val');
if (12 == targetType || 100 == targetType) { // 请填写url
$("#targetObjSelectShow").hide();
......@@ -333,11 +430,22 @@
$("#targetObjInput").hide();
} else {
var urlVarName = 'url' + targetType;
var url = eval(urlVarName);
var arrEntities = {'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'};
url = url.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];});
var urleval = eval(urlVarName);
var arrEntities = {'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&', 'quot': '"'};
searchUrl = urleval.replace(/&(lt|gt|nbsp|amp|quot);/ig, function (all, t) {
return arrEntities[t];
});
$("#targetObjSelectShow").show();
$("#targetObjInput").hide();
if (targetType == targetObjType) { //如果是之前选中的类型 设置值
$("#targetObjSelect").attr("data-id", targetObj);
$("#targetObjSelect").val(targetObjName);
}
targetObjBsSuggest(searchUrl, targetType);
// 获取相关数据
var configUrl = {
/*var configUrl = {
url: url,
type: "get",
dataType: "json",
......@@ -382,7 +490,7 @@
}
}
};
$.ajax(configUrl)
$.ajax(configUrl)*/
}
}
......
......@@ -52,6 +52,22 @@
<label class="col-sm-2 control-label">执行备注:</label>
<div class="form-control-static" th:text="${KylinOrderRefundsVo.refuse}"></div>
</div>
<div class="form-group">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>图片</legend>
</fieldset>
<table class="col-sm-8 select-table table-bordered">
<tbody>
<tr>
<td th:each="str : ${KylinOrderRefundsVo.picList}" style="float: left">
<img th:src="${str}" width="25%">
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-group">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>票种</legend>
......@@ -81,4 +97,4 @@
</div>
<th:block th:include="include :: footer"/>
</body>
</html>
\ No newline at end of file
</html>
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.utils.DateUtils;
......@@ -19,6 +20,7 @@ import com.liquidnet.service.kylin.dao.OrderRefundDao;
import com.liquidnet.service.kylin.dto.param.RefundApplyParam;
import com.liquidnet.service.kylin.dto.param.RefundCallbackParam;
import com.liquidnet.service.kylin.dto.param.RefundSearchParam;
import com.liquidnet.service.kylin.dto.param.SysDamaiParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo;
......@@ -79,6 +81,9 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
@Autowired
private KylinOrderRefundsEntitiesMapper kylinOrderRefundsEntitiesMapper;
@Autowired
private KylinOrderRefundPicMapper kylinOrderRefundPicMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......@@ -198,8 +203,8 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
ticketEntityIds, realRefundPriceList
);
HashMap<String,Object> map = new HashMap<>();
map.put("isHaveRefundDetails",1);
HashMap<String, Object> map = new HashMap<>();
map.put("isHaveRefundDetails", 1);
BasicDBObject obj = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(KylinOrderTicketVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderTicketsId").is(orderTicketsId)).getQueryObject(),
......@@ -367,6 +372,12 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
KylinOrderRefundsVo kylinOrderRefundsVo = new KylinOrderRefundsVo();
kylinOrderRefundsVo.setEntities(entities);
BeanUtils.copyProperties(data, kylinOrderRefundsVo);
KylinOrderRefundPic kylinOrderRefundPic = kylinOrderRefundPicMapper.selectOne(new UpdateWrapper<KylinOrderRefundPic>().eq("order_refunds_id", orderRefundId));
if (kylinOrderRefundPic != null) {
String picStr = kylinOrderRefundPic.getPicUrl();
List<String> strList = JsonUtils.fromJson(picStr, new TypeReference<List<String>>() {});
kylinOrderRefundsVo.setPicList(strList);
}
return kylinOrderRefundsVo;
}
......
......@@ -18,6 +18,7 @@ public class BannerDetailsListDao implements Serializable {
private String targetTypeName;
private String targetObj;
private String targetObjName;
private Integer isOnline;
private String isOnlineName;
......
......@@ -50,6 +50,7 @@ public class KylinBanners implements Serializable {
* 跳转目标id或者url
*/
private String targetObj;
private String targetObjName;
/**
* 是否上线展示 0下线 1上线
......
......@@ -13,6 +13,7 @@ CREATE TABLE `kylin_banners`
`cover_img` varchar(255) NOT NULL DEFAULT '' COMMENT '封面图',
`target_type` smallint NOT NULL DEFAULT 0 COMMENT '跳转类型(由接口提供)',
`target_obj` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转目标 id/url等',
`target_obj_name` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转目标 name 选择的时候回显使用',
`is_online` tinyint NOT NULL DEFAULT 0 COMMENT '是否上线展示 0下线 1上线',
`online_start_time` timestamp NULL DEFAULT NULL COMMENT '上线开始时间',
`online_end_time` timestamp NULL DEFAULT NULL COMMENT '上线结束时间',
......
package com.liquidnet.service.kylin.utils;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.MD5;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageConfigVo;
import com.liquidnet.service.kylin.dto.vo.middle.message.MessageDataVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.security.MessageDigest;
import java.time.LocalDateTime;
@Service
@Slf4j
public class OtherUtils {
@Value("${liquidnet.url-service.url}")
private String serviceUrl;
//发短信
public boolean sendMessage(String mobile, MessageDataVo data, MessageConfigVo configVo, Integer sign_id) {
try {
if (null != configVo && null != configVo.getStatus() && configVo.getStatus()) {
LinkedMultiValueMap<String, String> httpData = new LinkedMultiValueMap<>();
httpData.add("mobile", mobile);
httpData.add("templateId", configVo.getId());
httpData.add("signId", sign_id.toString());
httpData.add("data", JsonUtils.toJson(data));
String sign = Ksort(httpData);
sign = sign.concat("&key=").concat("R7tXY9smPQPG9Ku5yI0u6sfnlckmk04V");
sign = sign.toUpperCase();
httpData.add("sign", sign);
System.out.println("data = = = "+httpData.toString());
String returnData = HttpUtil.post(serviceUrl + "sendSmsMessage", httpData);
JsonNode postResultNew = JsonUtils.fromJson(returnData, JsonNode.class);
if (!postResultNew.get("message").toString().equals("OK")) {
return false;
} else {
return true;
}
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public String Ksort(MultiValueMap<String, String> map) {
String sb = "";
String[] key = new String[map.size()];
int index = 0;
for (String k : map.keySet()) {
key[index] = k;
index++;
}
for (String s : key) {
sb += s + "=" + map.get(s).get(0) + "&";
}
sb = sb.substring(0, sb.length() - 1);
// 将得到的字符串进行处理得到目标格式的字符串
try {
sb = URLDecoder.decode(sb, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 使用常见的UTF-8编码
sb = sb.replace("%3D", "=").replace("%26", "&");
return sb;
}
public static String md5s(String txt) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(txt.getBytes("GBK")); //问题主要出在这里,Java的字符串是unicode编码,不受源码文件的编码影响;而PHP的编码是和源码文件的编码一致,受源码编码影响。
StringBuilder buf = new StringBuilder();
for (byte b : md.digest()) {
buf.append(String.format("%02x", b & 0xff));
}
return buf.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
......@@ -852,7 +852,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
} else if (orderTicketData.getGetTicketType().equals("electronic")) {
configVo.setId(ticketData.getIsShowCode() == 1 ? "SMS_171358560" : "SMS_181500419");
}
// otherUtils.sendMessage(orderTicketData.getUserMobile(), dataVo, configVo, 1);
otherUtils.sendMessage(orderTicketData.getUserMobile(), dataVo, configVo, 1);
// 大麦回调
sycDamaiOrder(orderTickets.getOrderTicketsId());
......
......@@ -38,7 +38,7 @@ public class OtherUtils {
System.out.println("data = = = "+httpData.toString());
String returnData = HttpUtil.post(serviceUrl + "sendSmsMessage", httpData);
String returnData = HttpUtil.post(serviceUrl + "sendSmsMessageJ", httpData);
JsonNode postResultNew = JsonUtils.fromJson(returnData, JsonNode.class);
if (!postResultNew.get("message").toString().equals("OK")) {
return false;
......
......@@ -408,6 +408,7 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
ticketSellTime.setTimeEnd(DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getTimeEnd()));
ticketSellTime.setTimeStart(DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getTimeStart()));
ticketSellTime.setAdvanceMinuteMember(null);
ticketSellTime.setTimeEndExpress(DateUtil.Formatter.yyyyMMddHHmmss.parse(ticketItem.getTimeEndExpress()));
ticketSellTime.setPayCountdownMinute(kylinPerformanceMisVo.getPayCountdownMinute());
//修改 价格
ticketSellTime.setPrice(ticketItem.getPrice());
......
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