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

Commit 58bcf2e2 authored by 张国柄's avatar 张国柄

Merge remote-tracking branch 'origin/master' into dev-dragon0518

parents 2c4e25de 5d3c49f8
package com.liquidnet.service.galaxy.dto.bo; package com.liquidnet.service.galaxy.dto.bo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import lombok.Data; import lombok.Data;
...@@ -15,6 +16,7 @@ import java.io.Serializable; ...@@ -15,6 +16,7 @@ import java.io.Serializable;
* @date 2022/8/12 13:36 * @date 2022/8/12 13:36
*/ */
@Data @Data
@JsonIgnoreProperties(value = {"nftOrderPayId", "nftOrderPayId2"}, ignoreUnknown = true)
public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{ public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{
/** /**
* 转让流水号(平台转让订单id) * 转让流水号(平台转让订单id)
...@@ -48,6 +50,14 @@ public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{ ...@@ -48,6 +50,14 @@ public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{
* nft当前拥有者addr(转让成功后更新) * nft当前拥有者addr(转让成功后更新)
*/ */
private String ownerAddress; private String ownerAddress;
/**
* nft转让任务ID
*/
private String nftTransferTaskId;
/**
* nft转让时间
*/
private String nftTransferChainTimestamp;
/** /**
* 转让hash * 转让hash
*/ */
......
package com.liquidnet.service.goblin.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class GoblinGoodsImportDto {
@ExcelProperty(value = "商品编码", index = 0)
private String spuCode;
@ExcelProperty(value = "商品名称", index = 1)
private String spuName;
@ExcelProperty(value = "商品图片", index = 2)
private String spuImgs;
private List<String> spuImgList;//
@ExcelProperty(value = "商品规格", index = 3)
private String skuSpec;
private List<GoblinGoodsSpecDto> skuSpecDtos;//
@ExcelProperty(value = "规格编码", index = 4)
private String skuCode;
@ExcelProperty(value = "价格", index = 5)
private BigDecimal price;
@ExcelProperty(value = "库存", index = 6)
private Integer stock;
@ExcelProperty(value = "规格图片", index = 7)
private String skuImg;
@ExcelProperty(value = "规格条码", index = 8)
private String skuBarCode;
// @ExcelProperty(value = "商品条码")
// private String spuBarCode;
private String failureReason;//
}
...@@ -94,7 +94,7 @@ public class GoblinStoreMgtGoodsAddParam implements Serializable { ...@@ -94,7 +94,7 @@ public class GoblinStoreMgtGoodsAddParam implements Serializable {
@Size(max = 50, message = "物流模版ID过长") @Size(max = 50, message = "物流模版ID过长")
private String logisticsTemplate; private String logisticsTemplate;
@ApiModelProperty(position = 26, required = false, value = "商品编码[默认为系统编码,也可手动输入商家自己的编码]") @ApiModelProperty(position = 26, required = false, value = "商品编码[默认为系统编码,也可手动输入商家自己的编码]")
@Size(max = 50, message = "商品编码过长") @Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_UNDER_50, message = "商品编码格式或长度有误")
private String spuNo; private String spuNo;
/** /**
...@@ -263,7 +263,16 @@ public class GoblinStoreMgtGoodsAddParam implements Serializable { ...@@ -263,7 +263,16 @@ public class GoblinStoreMgtGoodsAddParam implements Serializable {
skuInfoVo.setSkuId(skuId); skuInfoVo.setSkuId(skuId);
} }
skuInfoVo.setSpuId(goodsInfoVo.getSpuId()); skuInfoVo.setSpuId(goodsInfoVo.getSpuId());
skuInfoVo.setSkuNo(goodsInfoVo.getSpuNo()); if (StringUtils.isNotBlank(addSkuParam.getSkuNo())) {
skuInfoVo.setSkuNo(addSkuParam.getSkuNo());
} else {
skuInfoVo.setSkuNo(goodsInfoVo.getSpuNo());
}
if (StringUtils.isNotBlank(addSkuParam.getSkuBarCode())) {
skuInfoVo.setSkuBarCode(addSkuParam.getSkuBarCode());
} else {
skuInfoVo.setSkuBarCode(goodsInfoVo.getSpuNo());
}
// skuInfoVo.setName(goodsInfoVo.getName()); // skuInfoVo.setName(goodsInfoVo.getName());
skuInfoVo.setSubtitle(goodsInfoVo.getSubtitle()); skuInfoVo.setSubtitle(goodsInfoVo.getSubtitle());
skuInfoVo.setSkuPic(addSkuParam.getSkuPic()); skuInfoVo.setSkuPic(addSkuParam.getSkuPic());
......
...@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.Min; import javax.validation.constraints.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -21,6 +18,12 @@ public class GoblinStoreMgtGoodsAddSkuParam implements Serializable { ...@@ -21,6 +18,12 @@ public class GoblinStoreMgtGoodsAddSkuParam implements Serializable {
private static final long serialVersionUID = 6657596593310537491L; private static final long serialVersionUID = 6657596593310537491L;
@ApiModelProperty(position = 10, required = false, value = "单品ID[编辑时必传]") @ApiModelProperty(position = 10, required = false, value = "单品ID[编辑时必传]")
private String skuId; private String skuId;
@ApiModelProperty(position = 10, required = false, value = "单品编码[默认为系统编码,也可手动输入商家自己的编码]")
@Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_UNDER_50, message = "单品编码格式或长度有误")
private String skuNo;
@ApiModelProperty(position = 10, required = false, value = "单品条码")
@Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_32, message = "单品条码格式或长度有误")
private String skuBarCode;
@ApiModelProperty(position = 11, required = true, value = "单品默认图片的url[256]") @ApiModelProperty(position = 11, required = true, value = "单品默认图片的url[256]")
@NotBlank(message = "单品图片不能为空") @NotBlank(message = "单品图片不能为空")
private String skuPic; private String skuPic;
......
...@@ -27,6 +27,12 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable { ...@@ -27,6 +27,12 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable {
private String spuId; private String spuId;
@ApiModelProperty(position = 12, required = false, value = "单品ID[编辑时必传]") @ApiModelProperty(position = 12, required = false, value = "单品ID[编辑时必传]")
private String skuId; private String skuId;
@ApiModelProperty(position = 12, required = false, value = "单品编码[默认为系统编码,也可手动输入商家自己的编码]")
@Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_UNDER_50, message = "单品编码格式或长度有误")
private String skuNo;
@ApiModelProperty(position = 12, required = false, value = "单品条码")
@Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_32, message = "单品条码格式或长度有误")
private String skuBarCode;
@ApiModelProperty(position = 13, required = true, value = "单品默认图片的url[256]") @ApiModelProperty(position = 13, required = true, value = "单品默认图片的url[256]")
@NotNull(message = "单品默认图片不能为空") @NotNull(message = "单品默认图片不能为空")
@Size(max = 256, message = "单品默认图片URL过长") @Size(max = 256, message = "单品默认图片URL过长")
...@@ -93,6 +99,7 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable { ...@@ -93,6 +99,7 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable {
goodsSkuInfoVo.setSkuSpecList(mgtGoodsSkuInfoVo.getSkuSpecList()); goodsSkuInfoVo.setSkuSpecList(mgtGoodsSkuInfoVo.getSkuSpecList());
} }
goodsSkuInfoVo.setSkuId(this.getSkuId()); goodsSkuInfoVo.setSkuId(this.getSkuId());
goodsSkuInfoVo.setSkuBarCode(this.getSkuBarCode());
goodsSkuInfoVo.setSkuPic(this.getSkuPic()); goodsSkuInfoVo.setSkuPic(this.getSkuPic());
goodsSkuInfoVo.setSellPrice(null == this.getSellPrice() ? mgtGoodsSkuInfoVo.getSellPrice() : this.getSellPrice()); goodsSkuInfoVo.setSellPrice(null == this.getSellPrice() ? mgtGoodsSkuInfoVo.getSellPrice() : this.getSellPrice());
goodsSkuInfoVo.setPrice(this.getPrice()); goodsSkuInfoVo.setPrice(this.getPrice());
......
...@@ -28,6 +28,9 @@ public class GoblinFrontGoodDetailVo implements Serializable { ...@@ -28,6 +28,9 @@ public class GoblinFrontGoodDetailVo implements Serializable {
@ApiModelProperty(value = "商品可参与券类型") @ApiModelProperty(value = "商品可参与券类型")
ArrayList<String> getSpuType; ArrayList<String> getSpuType;
@ApiModelProperty(value = "条码识别到的SKUID列表", notes = "仅当条码识别时有效")
private List<String> hitSkuIdList;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static final GoblinFrontGoodDetailVo obj = new GoblinFrontGoodDetailVo(); private static final GoblinFrontGoodDetailVo obj = new GoblinFrontGoodDetailVo();
......
...@@ -22,8 +22,12 @@ public class GoblinGoodsInfoVo implements Serializable, Cloneable { ...@@ -22,8 +22,12 @@ public class GoblinGoodsInfoVo implements Serializable, Cloneable {
private String storeId; private String storeId;
@ApiModelProperty(position = 11, value = "商品ID[64]") @ApiModelProperty(position = 11, value = "商品ID[64]")
private String spuId; private String spuId;
@ApiModelProperty(position = 12, value = "商品编码[默认为系统编码,也可手动输入商家自己的编码]") @ApiModelProperty(position = 12, value = "商品编码[50]默认为系统编码,也可手动输入商家自己的编码")
private String spuNo; private String spuNo;
@ApiModelProperty(position = 12, value = "商品条码[32]")
private String spuBarCode;
@ApiModelProperty(position = 12, value = "ERP商品编码[64]")
private String spuErpCode;
@ApiModelProperty(position = 12, value = "商品类型[0-常规|1-数字藏品]") @ApiModelProperty(position = 12, value = "商品类型[0-常规|1-数字藏品]")
private int spuType; private int spuType;
@ApiModelProperty(position = 13, value = "商品名称[100]") @ApiModelProperty(position = 13, value = "商品名称[100]")
......
...@@ -23,8 +23,12 @@ public class GoblinGoodsSkuInfoVo implements Serializable, Cloneable { ...@@ -23,8 +23,12 @@ public class GoblinGoodsSkuInfoVo implements Serializable, Cloneable {
private String skuId; private String skuId;
@ApiModelProperty(position = 11, value = "商品ID[64]") @ApiModelProperty(position = 11, value = "商品ID[64]")
private String spuId; private String spuId;
@ApiModelProperty(position = 12, value = "单品的编号[45]") @ApiModelProperty(position = 12, value = "单品的条码[50]默认为系统编码,也可手动输入商家自己的编码")
private String skuNo; private String skuNo;
@ApiModelProperty(position = 12, value = "单品条码[32]")
private String skuBarCode;
@ApiModelProperty(position = 12, value = "ERP单品编码[64]")
private String skuErpCode;
@ApiModelProperty(position = 12, value = "商品类型[0-常规|1-数字藏品]") @ApiModelProperty(position = 12, value = "商品类型[0-常规|1-数字藏品]")
private int skuType; private int skuType;
@ApiModelProperty(position = 13, value = "单品的名称[100]") @ApiModelProperty(position = 13, value = "单品的名称[100]")
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.dto.vo; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.dto.vo;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.entity.GoblinOrderSku; import com.liquidnet.service.goblin.entity.GoblinOrderSku;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -26,6 +27,7 @@ import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS; ...@@ -26,6 +27,7 @@ import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinOrderSkuVo implements Serializable, Cloneable { public class GoblinOrderSkuVo implements Serializable, Cloneable {
@ApiModelProperty(value = "订单sku_id") @ApiModelProperty(value = "订单sku_id")
......
...@@ -4,6 +4,7 @@ import lombok.Data; ...@@ -4,6 +4,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
@Data @Data
public class GoblinPayInnerResultVo implements Serializable, Cloneable { public class GoblinPayInnerResultVo implements Serializable, Cloneable {
...@@ -19,6 +20,7 @@ public class GoblinPayInnerResultVo implements Serializable, Cloneable { ...@@ -19,6 +20,7 @@ public class GoblinPayInnerResultVo implements Serializable, Cloneable {
private BigDecimal price; private BigDecimal price;
private Object payData; private Object payData;
private String msg; private String msg;
private List<String> orderCodeList;
public String getMsg() { public String getMsg() {
return msg == null ? "" : msg; return msg == null ? "" : msg;
......
package com.liquidnet.service.goblin.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "GoblinZhengzaiGoodPageVo", description = "正在下单商铺列表vo带页数")
@Data
public class GoblinZhengzaiGoodPageVo implements Serializable,Cloneable {
@ApiModelProperty(position = 1, value = "数据")
private List<GoblinZhengzaiGoodVo> data;
@ApiModelProperty(position = 2, value = "当前页")
private int page;
@ApiModelProperty(position = 3, value = "总数")
private long total;
private static final GoblinZhengzaiGoodPageVo obj = new GoblinZhengzaiGoodPageVo();
public static GoblinZhengzaiGoodPageVo getNew() {
try {
return (GoblinZhengzaiGoodPageVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new GoblinZhengzaiGoodPageVo();
}
}
...@@ -35,6 +35,9 @@ public class GoblinOrderPreParam implements Cloneable{ ...@@ -35,6 +35,9 @@ public class GoblinOrderPreParam implements Cloneable{
private String deviceFrom; private String deviceFrom;
private String authCode; private String authCode;
@ApiModelProperty(required = true, value = "支付方式[pos_crash-现金支付|]")
private String payType; private String payType;
private String openId; private String openId;
private String returnUrl; private String returnUrl;
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.service; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.service;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderListVo; import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinSelfMarketingVo; import com.liquidnet.service.goblin.dto.vo.GoblinSelfMarketingVo;
import com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiGoodPageVo;
import com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiGoodVo; import com.liquidnet.service.goblin.dto.vo.GoblinZhengzaiGoodVo;
import java.util.List; import java.util.List;
...@@ -19,9 +20,12 @@ public interface IGoblinStoreZhengzaiService { ...@@ -19,9 +20,12 @@ public interface IGoblinStoreZhengzaiService {
/** /**
* 正在下单 商铺参与活动的商品列表 * 正在下单 商铺参与活动的商品列表
* @param marketId * @param marketId
* @param keyword 搜索关键字,支持搜索`SPU名称`
* @return * @return
*/ */
ResponseDto<List<GoblinZhengzaiGoodVo>> getSpuList(String marketId); ResponseDto<List<GoblinZhengzaiGoodVo>> getSpuList(String marketId, String keyword);
ResponseDto<GoblinZhengzaiGoodPageVo> getSpuList2(String marketId, String keyword, Integer page);
ResponseDto<List<GoblinAppOrderListVo>> orderList(int page); ResponseDto<List<GoblinAppOrderListVo>> orderList(int page);
......
package com.liquidnet.service.kylin.dto.vo.mongo; package com.liquidnet.service.kylin.dto.vo.mongo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo; import com.liquidnet.service.kylin.dto.param.PerformancePartnerVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.entity.KylinFields; import com.liquidnet.service.kylin.entity.KylinFields;
import com.liquidnet.service.kylin.entity.KylinPerformanceRelations; import com.liquidnet.service.kylin.entity.KylinPerformanceRelations;
import com.liquidnet.service.kylin.entity.KylinPerformanceStatus; import com.liquidnet.service.kylin.entity.KylinPerformanceStatus;
...@@ -18,7 +20,8 @@ import java.util.List; ...@@ -18,7 +20,8 @@ import java.util.List;
@ApiModel @ApiModel
@Data @Data
public class KylinPerformanceVo implements Serializable, Cloneable{ @JsonIgnoreProperties(ignoreUnknown = true)
public class KylinPerformanceVo implements Serializable, Cloneable {
private Integer mid; private Integer mid;
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
...@@ -106,8 +109,12 @@ public class KylinPerformanceVo implements Serializable, Cloneable{ ...@@ -106,8 +109,12 @@ public class KylinPerformanceVo implements Serializable, Cloneable{
@ApiModelProperty(value = "场次") @ApiModelProperty(value = "场次")
private List<KylinTicketTimesVo> ticketTimeList; private List<KylinTicketTimesVo> ticketTimeList;
@ApiModelProperty(value = "是否开启分销[0-否|1-是]")
private Integer isAgent;
@ApiModelProperty(value = "分销人名称") @ApiModelProperty(value = "分销人名称")
private String agentName; private String agentName;
@ApiModelProperty(value = "0正常、1黑名单")
private Integer state;
@ApiModelProperty(value = "注册时间") @ApiModelProperty(value = "注册时间")
private String createdAt; private String createdAt;
...@@ -133,7 +140,7 @@ public class KylinPerformanceVo implements Serializable, Cloneable{ ...@@ -133,7 +140,7 @@ public class KylinPerformanceVo implements Serializable, Cloneable{
private Integer fieldAuditStatus; private Integer fieldAuditStatus;
public Integer getIdCount() { public Integer getIdCount() {
return idCount==null?limitCount:idCount; return idCount == null ? limitCount : idCount;
} }
private static final KylinPerformanceVo obj = new KylinPerformanceVo(); private static final KylinPerformanceVo obj = new KylinPerformanceVo();
...@@ -272,4 +279,16 @@ public class KylinPerformanceVo implements Serializable, Cloneable{ ...@@ -272,4 +279,16 @@ public class KylinPerformanceVo implements Serializable, Cloneable{
this.roadShowId = performanceRelations.getRoadShowId(); this.roadShowId = performanceRelations.getRoadShowId();
this.merchantId = performanceRelations.getMerchantId(); this.merchantId = performanceRelations.getMerchantId();
} }
public void setPIsAgent() {
for (KylinTicketTimesVo timeVo : this.getTicketTimeList()) {
for (KylinTicketVo ticketVo : timeVo.getTicketList()) {
if (ticketVo.getIsAgent() == 1) {
this.isAgent = 1;
break;
}
}
}
}
} }
package com.liquidnet.service.kylin.dto.vo.partner;
import com.liquidnet.service.kylin.dao.report.KylinPerformancesDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* 演出
* </p>
*
* @author liquidnet
* @since 2021-05-05
*/
@Data
public class KylinPerformancesVo implements Cloneable {
/**
* 演出id
*/
@ApiModelProperty(value = "演出id")
private String performancesId;
/**
* 演出名
*/
@ApiModelProperty(value = "演出名")
private String title;
/**
* 城市
*/
@ApiModelProperty(value = "城市")
private String cityName;
/**
* 总销售数量 -张 saleGeneral
*/
@ApiModelProperty(value = "总销售数量")
private BigDecimal open;
/**
* 总销售金额 totalSalePrice
*/
@ApiModelProperty(value = "总销售金额 ")
private BigDecimal totalSalePrice;
/**
* 演出结束时间
*/
@ApiModelProperty(value = "演出结束时间")
private LocalDateTime timeEnd;
/**
* 演出结束时间
*/
@ApiModelProperty(value = "演出结束时间")
private LocalDateTime timeStart;
/**
* 顺序
*/
@ApiModelProperty(value = "顺序")
private String comment;
/**
* 演出状态
*/
@ApiModelProperty(value = "演出状态")
private int status;
/**
* 上下架标识【1:下架,0:上架】
*/
@ApiModelProperty(value = "上下架标识【1:下架,0:上架】")
private int type;
private static final KylinPerformancesVo obj = new KylinPerformancesVo();
public static KylinPerformancesVo getNew() {
try {
return (KylinPerformancesVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinPerformancesVo();
}
}
public KylinPerformancesVo copyListAll(KylinPerformancesDto kylinPerformancesDto) {
if (kylinPerformancesDto==null) return null;
this.performancesId = kylinPerformancesDto.getPerformancesId();
this.title = kylinPerformancesDto.getTitle();
this.type = kylinPerformancesDto.getType();
this.status = kylinPerformancesDto.getStatus();
return this;
}
}
package com.liquidnet.client.admin.framework.web.exception; package com.liquidnet.client.admin.framework.web.exception;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolationException;
import org.apache.shiro.authz.AuthorizationException; import org.apache.shiro.authz.AuthorizationException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException; import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
...@@ -105,6 +109,24 @@ public class GlobalExceptionHandler ...@@ -105,6 +109,24 @@ public class GlobalExceptionHandler
return AjaxResult.error(message); return AjaxResult.error(message);
} }
/**
* MethodArgumentNotValidException
*/
/*@ExceptionHandler(MethodArgumentNotValidException.class)
public AjaxResult handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
String errMsg = e.getBindingResult().getFieldErrors().get(0).getDefaultMessage();
return AjaxResult.error(errMsg);
}*/
/**
* ConstraintViolationException
*/
/*@ExceptionHandler(ConstraintViolationException.class)
public AjaxResult handleConstraintViolationException(ConstraintViolationException e) {
String errMsg = e.getMessage().split(":")[1];
return AjaxResult.error(errMsg);
}*/
/** /**
* 演示模式异常 * 演示模式异常
*/ */
......
...@@ -33,11 +33,11 @@ public class LocalAdminController extends BaseController ...@@ -33,11 +33,11 @@ public class LocalAdminController extends BaseController
return smilePrefix + "/userList/list"; return smilePrefix + "/userList/list";
} }
@GetMapping("/smileDetail") // 用户详情 @GetMapping("/smileDetail") // 用户详情
public String smileDetail() public String smileDetail() { return smilePrefix + "/userList/detail"; }
{ @GetMapping("/specialDetail") // 特邀用户详情
return smilePrefix + "/userList/detail"; public String specialDetail() { return smilePrefix + "/userList/specialDetail"; }
} @GetMapping("/blackList") // 黑名单管理
public String blackList() { return smilePrefix + "/blackList/blackList"; }
@GetMapping("/smilePending") // 待审核列表 @GetMapping("/smilePending") // 待审核列表
public String smilePending() public String smilePending()
{ {
...@@ -232,4 +232,10 @@ public class LocalAdminController extends BaseController ...@@ -232,4 +232,10 @@ public class LocalAdminController extends BaseController
mmap.put("platformUrl", platformUrl); mmap.put("platformUrl", platformUrl);
return ybPrefix + "/creatAndEdit"; return ybPrefix + "/creatAndEdit";
} }
@GetMapping("/smileUserListAdd") // 关联活动-编辑
public String smileUserListAdd()
{
return smilePrefix + "/userList/add";
}
} }
...@@ -47,8 +47,12 @@ public class GoblinSelfCategoryAdminController extends BaseController { ...@@ -47,8 +47,12 @@ public class GoblinSelfCategoryAdminController extends BaseController {
@RequestMapping("list") @RequestMapping("list")
@ResponseBody @ResponseBody
public TableDataInfo list() { public TableDataInfo list() {
PageHelper.startPage(0, 1000, "mid"); // PageHelper.startPage(0, 1000, "mid");
return getDataTable(goblinSelfGoodsCategoryService.listForMultiGrade()); // return getDataTable(goblinSelfGoodsCategoryService.listForMultiGrade());
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
rspData.setRows(goblinSelfGoodsCategoryService.listForMultiGrade());
return rspData;
} }
@ApiOperation(value = "筛选") @ApiOperation(value = "筛选")
...@@ -130,9 +134,9 @@ public class GoblinSelfCategoryAdminController extends BaseController { ...@@ -130,9 +134,9 @@ public class GoblinSelfCategoryAdminController extends BaseController {
if (catePidObj.getName().equals(name.trim())) { if (catePidObj.getName().equals(name.trim())) {
return AjaxResult.warn("分类名称与父级分类重复,请核实"); return AjaxResult.warn("分类名称与父级分类重复,请核实");
} }
if (goblinSelfGoodsCategoryService.countForMatchName(catePid, name.trim()) > 0) { // if (goblinSelfGoodsCategoryService.countForMatchName(catePid, name.trim()) > 0) {
return AjaxResult.warn("分类名称重复,请核实"); // return AjaxResult.warn("分类名称重复,请核实");
} // }
break; break;
case "3": case "3":
queryWrapper.eq(GoblinSelfGoodsCategory::getCateId, catePid).eq(GoblinSelfGoodsCategory::getGrade, "2"); queryWrapper.eq(GoblinSelfGoodsCategory::getCateId, catePid).eq(GoblinSelfGoodsCategory::getGrade, "2");
...@@ -140,12 +144,12 @@ public class GoblinSelfCategoryAdminController extends BaseController { ...@@ -140,12 +144,12 @@ public class GoblinSelfCategoryAdminController extends BaseController {
if (null == catePidObj) { if (null == catePidObj) {
return AjaxResult.warn("父级分类无效"); return AjaxResult.warn("父级分类无效");
} }
if (catePidObj.getName().equals(name.trim())) { // if (catePidObj.getName().equals(name.trim())) {
return AjaxResult.warn("分类名称与父级分类重复,请核实"); // return AjaxResult.warn("分类名称与父级分类重复,请核实");
} // }
if (goblinSelfGoodsCategoryService.countForMatchName(catePidObj.getCatePid(), name.trim()) > 0) { // if (goblinSelfGoodsCategoryService.countForMatchName(catePidObj.getCatePid(), name.trim()) > 0) {
return AjaxResult.warn("分类名称重复,请核实"); // return AjaxResult.warn("分类名称重复,请核实");
} // }
break; break;
default: default:
return AjaxResult.warn("分类层级无效"); return AjaxResult.warn("分类层级无效");
......
...@@ -48,7 +48,6 @@ public class SmileOrganizationController { ...@@ -48,7 +48,6 @@ public class SmileOrganizationController {
@ResponseBody @ResponseBody
public AjaxResult updateOrg(@RequestBody SmileOrganization smileOrganization){ public AjaxResult updateOrg(@RequestBody SmileOrganization smileOrganization){
return smileOrganizationService.update(smileOrganization); return smileOrganizationService.update(smileOrganization);
} }
@PostMapping("/getOrgById") @PostMapping("/getOrgById")
...@@ -58,5 +57,4 @@ public class SmileOrganizationController { ...@@ -58,5 +57,4 @@ public class SmileOrganizationController {
SmileOrgAndUserVo orgById = smileOrganizationService.getOrgById(id); SmileOrgAndUserVo orgById = smileOrganizationService.getOrgById(id);
return AjaxResult.success(orgById); return AjaxResult.success(orgById);
} }
} }
...@@ -22,7 +22,6 @@ import javax.servlet.ServletOutputStream; ...@@ -22,7 +22,6 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
/** /**
* @author TT * @author TT
...@@ -61,13 +60,6 @@ public class SmileShowBaseController extends BaseController { ...@@ -61,13 +60,6 @@ public class SmileShowBaseController extends BaseController {
response.setCharacterEncoding(StandardCharsets.UTF_8.name()); response.setCharacterEncoding(StandardCharsets.UTF_8.name());
servletOutputStream = response.getOutputStream(); servletOutputStream = response.getOutputStream();
//数据查询 //数据查询
/*
SaleDataVo saleDataVo = smileShowService.saleData(performancesId);
List<UserDataExcel> rowsToExcels = new ArrayList<>();
saleDataVo.getUserDataList().forEach(userData -> rowsToExcels.add(UserDataExcel.getNew().copy(userData)));
EasyExcel.write(servletOutputStream,UserDataExcel.class).sheet(saleDataVo.getTitle() + "演出销售列表导出").doWrite(rowsToExcels);
*/
smileShowService.exportData(servletOutputStream,perId); smileShowService.exportData(servletOutputStream,perId);
} catch (IOException e) { } catch (IOException e) {
......
package com.liquidnet.client.admin.web.controller.zhengzai.smile; package com.liquidnet.client.admin.web.controller.zhengzai.smile;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.zhengzai.smile.dto.SaleDataVo;
import com.liquidnet.client.admin.zhengzai.smile.dto.ShowSort; import com.liquidnet.client.admin.zhengzai.smile.dto.ShowSort;
import com.liquidnet.client.admin.zhengzai.smile.dto.SmilePriceParam; import com.liquidnet.client.admin.zhengzai.smile.dto.SmilePriceParam;
import com.liquidnet.client.admin.zhengzai.smile.dto.SmileShowParam; import com.liquidnet.client.admin.zhengzai.smile.dto.SmileShowParam;
import com.liquidnet.client.admin.zhengzai.smile.dto.TakeByPerId;
import com.liquidnet.client.admin.zhengzai.smile.service.ISmileShowService; import com.liquidnet.client.admin.zhengzai.smile.service.ISmileShowService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformancesVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/** /**
* @author TT * @author TT
*/ */
...@@ -30,10 +34,17 @@ public class SmileShowController { ...@@ -30,10 +34,17 @@ public class SmileShowController {
@PostMapping("/list") @PostMapping("/list")
@ApiOperation("演出列表") @ApiOperation("演出列表")
@ResponseBody @ResponseBody
public TableDataInfo schoolList(SmileShowParam smileShowParam) { public TableDataInfo list(SmileShowParam smileShowParam) {
return smileShowService.listShow(smileShowParam); return smileShowService.listShow(smileShowParam);
} }
@GetMapping("/listAll")
@ApiOperation("特邀代理获取可代理的演出列表")
@ResponseBody
public ResponseDto<List<KylinPerformancesVo>> listAll(String title) {
return smileShowService.listAll(title);
}
@GetMapping("/getShowById") @GetMapping("/getShowById")
@ApiOperation("根据演出id查询演出详情") @ApiOperation("根据演出id查询演出详情")
public AjaxResult getShowById(String performancesId) { public AjaxResult getShowById(String performancesId) {
...@@ -46,6 +57,13 @@ public class SmileShowController { ...@@ -46,6 +57,13 @@ public class SmileShowController {
return smileShowService.sort(showSort); return smileShowService.sort(showSort);
} }
@PutMapping("/upTakeByPerId")
@ApiOperation("演出上下架[1:下架,0:上架]")
public AjaxResult upTakeByPerId(@RequestBody TakeByPerId takeByPerId) {
return smileShowService.upTakeByPerId(takeByPerId.getPerId(), takeByPerId.getType());
}
@PostMapping("/price") @PostMapping("/price")
@ApiOperation("个人打款打款") @ApiOperation("个人打款打款")
public AjaxResult price(@RequestBody SmilePriceParam smilePriceParam) { public AjaxResult price(@RequestBody SmilePriceParam smilePriceParam) {
...@@ -60,7 +78,7 @@ public class SmileShowController { ...@@ -60,7 +78,7 @@ public class SmileShowController {
@GetMapping("/updateRedis") @GetMapping("/updateRedis")
@ApiOperation("修改原保存演出id的数据类型,分支dev_0507kids 部署完执行接口(演出列表重复问题修复也可以运行此接口)") @ApiOperation("修改原保存演出id的数据类型,分支dev_0507kids 部署完执行接口(演出列表重复问题修复也可以运行此接口)")
public AjaxResult updateRedis(){ public AjaxResult updateRedis() {
return smileShowService.updateRedis(); return smileShowService.updateRedis();
} }
......
package com.liquidnet.client.admin.web.controller.zhengzai.smile; package com.liquidnet.client.admin.web.controller.zhengzai.smile;
import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.druid.support.json.JSONUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.client.admin.common.core.controller.BaseController; import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.zhengzai.smile.dto.*; import com.liquidnet.client.admin.zhengzai.smile.dto.*;
import com.liquidnet.client.admin.zhengzai.smile.service.ISmileUserService; import com.liquidnet.client.admin.zhengzai.smile.service.ISmileUserService;
import com.liquidnet.service.smile.entity.SmileUser;
import com.liquidnet.service.smile.entity.dao.SmileUserCheckDao; import com.liquidnet.service.smile.entity.dao.SmileUserCheckDao;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.InputStream; import java.io.InputStream;
...@@ -41,8 +46,15 @@ public class SmileUserController extends BaseController { ...@@ -41,8 +46,15 @@ public class SmileUserController extends BaseController {
@ApiOperation(value = "获取用户列表") @ApiOperation(value = "获取用户列表")
@ResponseBody @ResponseBody
public TableDataInfo userList(SmileUserParam smileUserParam) { public TableDataInfo userList(SmileUserParam smileUserParam) {
TableDataInfo rspData = iSmileUserService.userList(smileUserParam); PageHelper.startPage(smileUserParam.getPageNum(), smileUserParam.getPageSize());
return rspData; return getDataTable(iSmileUserService.userList(smileUserParam));
}
@GetMapping("/getList")
@ApiOperation(value = "获取用户列表")
@ResponseBody
public AjaxResult getList(String phone) {
return AjaxResult.success(iSmileUserService.getList(phone));
} }
@PostMapping("/getUserById") @PostMapping("/getUserById")
...@@ -61,13 +73,6 @@ public class SmileUserController extends BaseController { ...@@ -61,13 +73,6 @@ public class SmileUserController extends BaseController {
return AjaxResult.success(userListByOrgId); return AjaxResult.success(userListByOrgId);
} }
@PostMapping("/updateUserStateByUid")
@ApiOperation(value = "根据uid修改用户状态 0:正常,1:黑名单")
@ResponseBody
public AjaxResult updateUserStateById(@RequestParam(name = "uid", required = true) String uid, @RequestParam(name = "state", required = true) Integer state) {
return iSmileUserService.updateUserStateById(uid, state);
}
@PostMapping("/check/list") @PostMapping("/check/list")
@ApiOperation("获取审核列表") @ApiOperation("获取审核列表")
@ResponseBody @ResponseBody
...@@ -87,16 +92,49 @@ public class SmileUserController extends BaseController { ...@@ -87,16 +92,49 @@ public class SmileUserController extends BaseController {
return iSmileUserService.updateUserCheckById(smileUserCheckVo); return iSmileUserService.updateUserCheckById(smileUserCheckVo);
} }
@PostMapping("/updateUserStateByUid")
@ApiOperation(value = "根据uid修改用户状态 0:正常,1:黑名单")
@ResponseBody
@ApiOperationSupport(order = 1)
public AjaxResult updateUserStateById(@RequestBody SaveUserStateParam saveUserStateParam) {
return iSmileUserService.updateUserStateById(saveUserStateParam.getUid(), saveUserStateParam.getState(),saveUserStateParam.getReason());
}
@PostMapping("/listByState")
@ApiOperation("获取黑名单列表")
@ResponseBody
@ApiOperationSupport(order = 2)
public TableDataInfo listByState(SmileUserStateParam smileUserStateParam) {
PageHelper.startPage(smileUserStateParam.getPageNum(), smileUserStateParam.getPageSize());
return getDataTable(iSmileUserService.listByState(smileUserStateParam));
}
@PostMapping("/saveInvitedAgent")
@ApiOperation("新增特邀代理")
@ResponseBody
@ApiOperationSupport(order = 3)
public AjaxResult saveInvitedAgent(@RequestBody SmileUserInvitedVo smileUserInvitedVo) {
if (StringUtils.isEmpty(smileUserInvitedVo.getName())||
StringUtils.isEmpty(smileUserInvitedVo.getDescribe())||
StringUtils.isEmpty(smileUserInvitedVo.getPhone())||
StringUtils.isEmpty(smileUserInvitedVo.getPerformancesId())||
StringUtils.isNull(smileUserInvitedVo.getTicket())){
return AjaxResult.warn("参数不能为空");
}
return iSmileUserService.saveInvitedAgent(smileUserInvitedVo);
}
@RequestMapping("getAreaJson") @RequestMapping("getAreaJson")
@ApiOperation("省市区json") @ApiOperation("省市区json")
@ResponseBody @ResponseBody
public AjaxResult getAreaJson(){ public AjaxResult getAreaJson() {
String jsonStr = ""; String jsonStr = "";
try { try {
String path = Objects.requireNonNull(JSONUtils.class.getClassLoader().getResource("static/area.json")).getPath(); String path = Objects.requireNonNull(JSONUtils.class.getClassLoader().getResource("static/area.json")).getPath();
logger.info("path:{}",path); logger.info("path:{}", path);
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/area.json"); InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/area.json");
if (inputStream != null){ if (inputStream != null) {
Reader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); Reader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
int ch = 0; int ch = 0;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
......
...@@ -88,45 +88,6 @@ ...@@ -88,45 +88,6 @@
height: 30px; height: 30px;
width: 200px; width: 200px;
} }
.search_ipt ul,.search_ipt li{
padding: 0;
margin: 0;
font-style: normal;
list-style: none;
}
.search_ipt ul {
display: none;
position: absolute;
left: 0;
top: 26px;
padding: 5px 0;
z-index: 899;
min-width: 200px;
border: 1px solid #eee;
max-height: 300px;
overflow-y: auto;
background-color: #fff;
border-radius: 2px;
box-sizing: border-box;
box-shadow: 1px 1px 4px rgb(0 0 0 / 8%);
}
.search_ipt li {
background-color: #fff;
cursor: pointer;
padding-left: 10px!important;
color: #999;
padding: 0 10px;
line-height: 36px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.search_ipt li:hover {
background: #F6F6F6;
}
.search_ipt .layui-input {
width: 200px;
}
#test1 { #test1 {
display: none; display: none;
} }
...@@ -140,6 +101,16 @@ ...@@ -140,6 +101,16 @@
#valOver, #valMinus { #valOver, #valMinus {
margin: 0 12px; margin: 0 12px;
} }
.search_ipt {
width: 200px !important;
display: inline-block;
}
.scope_application {
display: flex;
}
.scope_application .input-group-btn {
top: 33px;
}
</style> </style>
</head> </head>
<body> <body>
...@@ -164,9 +135,12 @@ ...@@ -164,9 +135,12 @@
</div> </div>
<div class="scope_application" id="scope_application"> <div class="scope_application" id="scope_application">
<span class="labelName">适用范围:</span> <span class="labelName">适用范围:</span>
<div class="search_ipt" style="position: relative;display: inline;"> <div class="input-group search_ipt" style="margin-right: 12px;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部"> <input id="searchIpt" data-id="" type="text" class="form-control" placeholder="全部">
<ul id="dataList" style="position: absolute;" onclick="selectGoods()"></ul> <div class="input-group-btn">
<ul class="dropdown-menu dropdown-menu-right" role="menu">
</ul>
</div>
</div> </div>
<select name="bindType" id="selectTwo" hidden> <select name="bindType" id="selectTwo" hidden>
<option value="">所有</option> <option value="">所有</option>
...@@ -259,55 +233,39 @@ ...@@ -259,55 +233,39 @@
let selectThreeName = ''; // 选中演出三级的名称 let selectThreeName = ''; // 选中演出三级的名称
let sendTimeType = ''; let sendTimeType = '';
let playMethod = '0'; // 叠加/限制 let playMethod = '0'; // 叠加/限制
function search() { $("#searchIpt").bsSuggest('init', {
let data = { idField: 'performancesId', // data.value 的第几个数据,作为input输入框的内容
status: '(3,6,8,9)', keyField: 'title', // data.value 的第几个数据,作为input输入框的内容
title: searchVal allowNoKeyword: false, //是否允许无关键字时请求数据
} showBtn: false,
let str = ''; multiWord: true, //以分隔符号分割的多关键字支持
promiseMethods(ctx+'kylin/base/performance/status','get',data,'application/x-www-form-urlencoded').then(res=>{ hideOnSelect: true,
if (res.value.length>0) { getDataMethod: "url", //获取数据的方式,总是从 URL 获取
searchData = [...res.value]; effectiveFields: ['title'],
let obj = {}; url: ctx+'kylin/base/performance/status?status=(3,6,8,9)&title=',
searchData.reduce((cur,next) => { /*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
if (!obj[next.performancesId]) { processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
obj[next.performancesId] = true let data = {
str+= `<li class="selectData" onclick="selectOne('${next.performancesId}','performancesId')">${next.title}</li>` value: []
} };
},[]) //设置cur默认类型为数组,并且初始值为空的数组 searchData = [...json.value];
$('#dataList').html(str); let obj = {};
} else { searchData.reduce((cur,next) => {
$('#dataList').html('<li style="width:100%;text-align:center;color:#ccc;">--- 暂无数据 ---</li>'); if (!obj[next.performancesId]) {
} obj[next.performancesId] = true
}) data.value.push(next)
}; }
function getMallList() { },[]) //设置cur默认类型为数组,并且初始值为空的数组
let data = { return data
name: ''
} }
let str = ''; }).on('onDataRequestSuccess', function (e, result) {
promiseMethods('/compilations/goodsList','get',data).then(res=>{ }).on('onSetSelectValue', function (e, selectedData,selectedRawData ) { // 当前行的所有值都能拿到
if (res.data.length>0) { selectOne(selectedData.id, selectedData.key)
searchData = [...res.data]; }).on('onUnsetSelectValue', function (e) {
searchData.forEach((item,index)=>{ });;
str+= `<li class="selectData" onclick="selectOne('${item.spuId}','id')">${item.name}</li>`
})
$('#dataList').html(str);
} else {
$('#dataList').html('<li style="width:100%;text-align:center;color:#ccc;">--- 暂无数据 ---</li>');
}
})
};
function selectOne(id,name) { function selectOne(id,name) {
searchData.some(item => {
if (item[name] == id) {
return $("#searchIpt").val(item.title);
}
})
showId = id; showId = id;
if (typeOne == 2) {
return
}
let str = `<option value="" label="">所有</option>`; let str = `<option value="" label="">所有</option>`;
searchData.forEach(item=>{ searchData.forEach(item=>{
if (item.performancesId == id) { if (item.performancesId == id) {
...@@ -319,26 +277,6 @@ ...@@ -319,26 +277,6 @@
$('#selectTwo').empty().append(str); $('#selectTwo').empty().append(str);
$('#selectThree').empty(); $('#selectThree').empty();
}; };
$("#searchIpt").blur(function(){
if (typeOne == 2) {
getMallList()
} else {
search()
}
$('#dataList').show()
});
// $("#searchIpt").blur(function(){
// setTimeout(() => {
// $('#dataList').hide()
// }, 500);
// });
function selectGoods(){
$('#dataList').hide()
}
$("#searchIpt").keyup(function(){
searchVal = $("#searchIpt").val()
search()
});
$('#selectTwo').change(function(e){ $('#selectTwo').change(function(e){
selectTwoId = $(this).val(); selectTwoId = $(this).val();
......
...@@ -88,44 +88,15 @@ ...@@ -88,44 +88,15 @@
height: 30px; height: 30px;
width: 200px; width: 200px;
} }
.search_ipt ul,.search_ipt li{ .search_ipt, .search_ipt2 {
padding: 0; width: 200px !important;
margin: 0; display: inline-block;
font-style: normal;
list-style: none;
} }
.search_ipt ul { .scope_application {
display: none; display: flex;
position: absolute; }
left: 0; .scope_application .input-group-btn {
top: 26px; top: 33px;
padding: 5px 0;
z-index: 899;
min-width: 200px;
border: 1px solid #eee;
max-height: 300px;
overflow-y: auto;
background-color: #fff;
border-radius: 2px;
box-sizing: border-box;
box-shadow: 1px 1px 4px rgb(0 0 0 / 8%);
}
.search_ipt li {
background-color: #fff;
cursor: pointer;
padding-left: 10px!important;
color: #999;
padding: 0 10px;
line-height: 36px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.search_ipt li:hover {
background: #F6F6F6;
}
.search_ipt .layui-input {
width: 200px;
} }
#test1 { #test1 {
display: none; display: none;
...@@ -171,9 +142,23 @@ ...@@ -171,9 +142,23 @@
</div> </div>
<div class="scope_application" id="scope_application"> <div class="scope_application" id="scope_application">
<span class="labelName">适用范围:</span> <span class="labelName">适用范围:</span>
<div class="search_ipt" style="position: relative;display: inline;"> <!-- <div class="search_ipt" style="position: relative;display: inline;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部"> <input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部">
<ul id="dataList" style="position: absolute;" onclick="selectGoods()"></ul> <ul id="dataList" style="position: absolute;" onclick="selectGoods()"></ul>
</div> -->
<div class="input-group search_ipt" style="margin-right: 12px;">
<input id="searchIpt" data-id="" type="text" class="form-control" placeholder="全部">
<div class="input-group-btn">
<ul class="dropdown-menu dropdown-menu-right" role="menu">
</ul>
</div>
</div>
<div class="input-group search_ipt2" style="margin-right: 12px;">
<input id="searchIpt2" data-id="" type="text" class="form-control" placeholder="全部商品">
<div class="input-group-btn">
<ul class="dropdown-menu dropdown-menu-right" role="menu">
</ul>
</div>
</div> </div>
<select name="bindType" id="selectTwo"> <select name="bindType" id="selectTwo">
<option value="">所有</option> <option value="">所有</option>
...@@ -267,6 +252,68 @@ ...@@ -267,6 +252,68 @@
let selectThreeName = ''; // 选中演出三级的名称 let selectThreeName = ''; // 选中演出三级的名称
let sendTimeType = ''; let sendTimeType = '';
let playMethod = '1'; // 叠加/限制 let playMethod = '1'; // 叠加/限制
let goodsId = '';
$("#scope_application").hide();
function common (num) {
let url = '';
let idField = '';
let keyField = '';
let effectiveFields = '';
let domData = '';
if (!num) {
url = ctx+'compilations/goodsList?name=';
idField = 'spuId';
keyField = 'name';
effectiveFields = ['name'];
domData = $("#searchIpt2");
} else {
url = ctx+'kylin/base/performance/status?status=(3,6,8,9)&title=';
idField = 'performancesId';
keyField = 'title';
effectiveFields = ['title'];
domData = $("#searchIpt");
}
domData.bsSuggest('init', {
idField, // data.value 的第几个数据,作为input输入框的内容
keyField, // data.value 的第几个数据,作为input输入框的内容
allowNoKeyword: false, //是否允许无关键字时请求数据
showBtn:false,
multiWord: true, //以分隔符号分割的多关键字支持
hideOnSelect: true,
getDataMethod: "url", //获取数据的方式,总是从 URL 获取
effectiveFields,
url,
/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
let data = {
value: []
};
if (num) {
searchData = [...json.value];
let obj = {};
searchData.reduce((cur,next) => {
if (!obj[next.performancesId]) {
obj[next.performancesId] = true
data.value.push(next)
}
},[]) //设置cur默认类型为数组,并且初始值为空的数组
return data
} else {
data.value = json.data;
return data;
}
}
}).on('onDataRequestSuccess', function (e, result) {
}).on('onSetSelectValue', function (e, selectedData,selectedRawData ) { // 当前行的所有值都能拿到
if (num) {
selectOne(selectedData.id, selectedData.key)
} else {
goodsId = selectedData.id
}
}).on('onUnsetSelectValue', function (e) {
});;
}
function search() { function search() {
let data = { let data = {
status: '(3,6,8,9)', status: '(3,6,8,9)',
...@@ -337,31 +384,6 @@ ...@@ -337,31 +384,6 @@
$('#selectTwo').empty().append(str); $('#selectTwo').empty().append(str);
$('#selectThree').empty(); $('#selectThree').empty();
}; };
$("#searchIpt").blur(function(){
if (typeOne == 2) {
getMallList()
} else {
search()
}
$('#dataList').show()
});
// $("#searchIpt").blur(function(){
// setTimeout(() => {
// $('#dataList').hide()
// }, 500);
// });
function selectGoods(){
$('#dataList').hide()
}
$("#searchIpt").keyup(function(){
searchVal = $("#searchIpt").val()
// search()
if (typeOne == 2) {
getMallList()
} else {
search()
}
});
$('#selectTwo').change(function(e){ $('#selectTwo').change(function(e){
selectTwoId = $(this).val(); selectTwoId = $(this).val();
...@@ -382,45 +404,33 @@ ...@@ -382,45 +404,33 @@
$("input[name=typeOne]").change(function(e){ $("input[name=typeOne]").change(function(e){
typeOne = e.target.value; typeOne = e.target.value;
if (typeOne == 1) { if (typeOne == 1) {
$('#scope_application').show();
$(".search_ipt").show();
$(".search_ipt2").hide();
$("#searchIpt").val(''); $("#searchIpt").val('');
$("#searchIpt").attr('placeholder', '全部'); $('#selectTwo').show().val('').empty();
} $('#selectThree').show().val('').empty();
if (typeOne != 0) { common (1)
showId = ''; // 选中演出id } else if (typeOne == 2) {
showId = '';
selectTwoId = ''; // 选中演出下级的ID selectTwoId = ''; // 选中演出下级的ID
selectThreeId = ''; // 选中演出三级的ID selectThreeId = ''; // 选中演出三级的ID
$('#scope_application').show(); $('#scope_application').show();
$(".search_ipt").hide();
$(".search_ipt2").show();
$("#searchIpt2").val('');
$('#selectTwo').hide();
$('#selectThree').hide();
common (0)
} else { } else {
$('#searchIpt').val('');
$('#selectTwo').empty();
$('#selectThree').empty('');
$('#scope_application').hide(); $('#scope_application').hide();
}
if (typeOne == 2 || typeOne == 3) {
showId = ''; showId = '';
$('#selectTwo').val(''); selectTwoId = ''; // 选中演出下级的ID
$('#selectThree').val(''); selectThreeId = ''; // 选中演出三级的ID
$(".search_ipt").hide();
$(".search_ipt2").hide();
$('#selectTwo').hide(); $('#selectTwo').hide();
$('#selectThree').hide(); $('#selectThree').hide();
$('#searchIpt').val('');
$('#selectTwo').empty();
$('#selectThree').empty();
$('#dataList').empty();
if (typeOne == 2) {
$("#searchIpt").val('');
$("#searchIpt").attr('placeholder', '全部商品');
}
} else {
$('#selectTwo').show();
$('#selectThree').show();
$('#selectTwo').empty();
$('#selectThree').empty();
$('#dataList').empty();
}
if (typeOne == 3) {
$('.playMethod').show()
} else {
$('.playMethod').hide()
} }
}); });
$("input[name=typeTwo]").change(function(e){ $("input[name=typeTwo]").change(function(e){
...@@ -522,14 +532,12 @@ ...@@ -522,14 +532,12 @@
// busiName = selectThreeName; // busiName = selectThreeName;
} }
if (typeOne == 2) { if (typeOne == 2) {
if (showId) { useScope = 80;
useScope = 80; busiId = goodsId;
busiId = showId; busiName = $("#searchIpt2").val() || '全部商品';
}
busiName = $("#searchIpt").val() || '全部商品';
} }
if (typeOne == 0) { if (typeOne == 0) {
busiName = $("#searchIpt").val() || '全场适用'; busiName = '全场适用';
} }
if (typeOne == 3) { if (typeOne == 3) {
if (showId) { if (showId) {
......
...@@ -88,45 +88,6 @@ ...@@ -88,45 +88,6 @@
height: 30px; height: 30px;
width: 200px; width: 200px;
} }
.search_ipt ul,.search_ipt li{
padding: 0;
margin: 0;
font-style: normal;
list-style: none;
}
.search_ipt ul {
display: none;
position: absolute;
left: 0;
top: 26px;
padding: 5px 0;
z-index: 899;
min-width: 200px;
border: 1px solid #eee;
max-height: 300px;
overflow-y: auto;
background-color: #fff;
border-radius: 2px;
box-sizing: border-box;
box-shadow: 1px 1px 4px rgb(0 0 0 / 8%);
}
.search_ipt li {
background-color: #fff;
cursor: pointer;
padding-left: 10px!important;
color: #999;
padding: 0 10px;
line-height: 36px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.search_ipt li:hover {
background: #F6F6F6;
}
.search_ipt .layui-input {
width: 200px;
}
#test1 { #test1 {
display: none; display: none;
} }
...@@ -143,6 +104,16 @@ ...@@ -143,6 +104,16 @@
#showNum { #showNum {
display: none; display: none;
} }
.search_ipt {
width: 200px !important;
display: inline-block;
}
.scope_application {
display: flex;
}
.scope_application .input-group-btn {
top: 33px;
}
</style> </style>
</head> </head>
<body> <body>
...@@ -152,11 +123,18 @@ ...@@ -152,11 +123,18 @@
</div> </div>
<div class="scope_application" id="scope_application"> <div class="scope_application" id="scope_application">
<span class="labelName">适用范围:</span> <span class="labelName">适用范围:</span>
<div class="search_ipt" style="position: relative;display: inline;"> <!-- <div class="search_ipt" style="position: relative;display: inline;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部"> <input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部">
<ul id="dataList" style="position: absolute;"></ul> <ul id="dataList" style="position: absolute;"></ul>
</div> -->
<div class="input-group search_ipt" style="margin-right: 12px;">
<input id="searchIpt" data-id="" type="text" class="form-control" placeholder="全部">
<div class="input-group-btn">
<ul class="dropdown-menu dropdown-menu-right" role="menu">
</ul>
</div>
</div> </div>
<select name="bindType" id="selectTwo"> <select name="bindType" id="selectTwo" style="margin-right: 12px;">
<option value="">所有</option> <option value="">所有</option>
</select> </select>
<select name="bindType" id="selectThree"> <select name="bindType" id="selectThree">
...@@ -210,28 +188,37 @@ ...@@ -210,28 +188,37 @@
let selectTwoName = ''; // 选中演出下级的名称 let selectTwoName = ''; // 选中演出下级的名称
let selectThreeId = ''; // 选中演出三级的ID let selectThreeId = ''; // 选中演出三级的ID
let selectThreeName = ''; // 选中演出三级的名称 let selectThreeName = ''; // 选中演出三级的名称
function search() { $("#searchIpt").bsSuggest('init', {
let data = { idField: 'performancesId', // data.value 的第几个数据,作为input输入框的内容
status: '(3,6,8,9)', keyField: 'title', // data.value 的第几个数据,作为input输入框的内容
title: searchVal allowNoKeyword: false, //是否允许无关键字时请求数据
} showBtn: false,
let str = ''; multiWord: true, //以分隔符号分割的多关键字支持
promiseMethods(ctx+'kylin/base/performance/status','get',data,'application/x-www-form-urlencoded').then(res=>{ hideOnSelect: true,
if (res.value.length>0) { getDataMethod: "url", //获取数据的方式,总是从 URL 获取
searchData = [...res.value]; effectiveFields: ['title'],
let obj = {}; url: ctx+'kylin/base/performance/status?status=(3,6,8,9)&title=',
searchData.reduce((cur,next) => { /*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
if (!obj[next.performancesId]) { processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
obj[next.performancesId] = true let data = {
str+= `<li class="selectData" onclick="selectOne('${next.performancesId}','performancesId')">${next.title}</li>` value: []
} };
},[]) //设置cur默认类型为数组,并且初始值为空的数组 searchData = [...json.value];
$('#dataList').html(str); let obj = {};
} else { searchData.reduce((cur,next) => {
$('#dataList').html('<li style="width:100%;text-align:center;color:#ccc;">--- 暂无数据 ---</li>'); if (!obj[next.performancesId]) {
} obj[next.performancesId] = true
}) data.value.push(next)
}; }
},[]) //设置cur默认类型为数组,并且初始值为空的数组
return data
}
}).on('onDataRequestSuccess', function (e, result) {
}).on('onSetSelectValue', function (e, selectedData,selectedRawData ) { // 当前行的所有值都能拿到
selectOne(selectedData.id, selectedData.key)
}).on('onUnsetSelectValue', function (e) {
});;
function selectOne(id,name) { function selectOne(id,name) {
searchData.some(item => { searchData.some(item => {
if (item[name] == id) { if (item[name] == id) {
...@@ -258,23 +245,6 @@ ...@@ -258,23 +245,6 @@
$('#selectTwo').empty().append(str); $('#selectTwo').empty().append(str);
$('#selectThree').empty().append('<option value="" label="">所有</option>'); $('#selectThree').empty().append('<option value="" label="">所有</option>');
}; };
$("#searchIpt").focus(function(){
search()
$('#dataList').show()
});
$("#searchIpt").blur(function(){
setTimeout(() => {
$('#dataList').hide()
}, 500);
if (!$("#searchIpt").val()) {
$('#showNum').hide();
}
});
$("#searchIpt").keyup(function(){
searchVal = $("#searchIpt").val()
search()
});
$('#selectTwo').change(function(e){ $('#selectTwo').change(function(e){
selectTwoId = $(this).val(); selectTwoId = $(this).val();
......
...@@ -91,45 +91,6 @@ ...@@ -91,45 +91,6 @@
height: 30px; height: 30px;
width: 200px; width: 200px;
} }
.search_ipt ul,.search_ipt li{
padding: 0;
margin: 0;
font-style: normal;
list-style: none;
}
.search_ipt ul {
display: none;
position: absolute;
left: 0;
top: 26px;
padding: 5px 0;
z-index: 899;
min-width: 200px;
border: 1px solid #eee;
max-height: 300px;
overflow-y: auto;
background-color: #fff;
border-radius: 2px;
box-sizing: border-box;
box-shadow: 1px 1px 4px rgb(0 0 0 / 8%);
}
.search_ipt li {
background-color: #fff;
cursor: pointer;
padding-left: 10px!important;
color: #999;
padding: 0 10px;
line-height: 36px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.search_ipt li:hover {
background: #F6F6F6;
}
.search_ipt .layui-input {
width: 200px;
}
.required { .required {
font-style: normal; font-style: normal;
color: red; color: red;
...@@ -137,6 +98,16 @@ ...@@ -137,6 +98,16 @@
#iptModal { #iptModal {
display: none; display: none;
} }
.search_ipt {
width: 200px !important;
display: inline-block;
}
.scope_application {
display: flex;
}
.scope_application .input-group-btn {
top: 33px;
}
</style> </style>
</head> </head>
<body> <body>
...@@ -161,9 +132,12 @@ ...@@ -161,9 +132,12 @@
</div> </div>
<div class="scope_application" id="scope_application"> <div class="scope_application" id="scope_application">
<span class="labelName">适用范围:</span> <span class="labelName">适用范围:</span>
<div class="search_ipt" style="position: relative;display: inline;"> <div class="input-group search_ipt" style="margin-right: 12px;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部"> <input id="searchIpt" data-id="" type="text" class="form-control" placeholder="全部">
<ul id="dataList" style="position: absolute;" onclick="selectGoods()"></ul> <div class="input-group-btn">
<ul class="dropdown-menu dropdown-menu-right" role="menu">
</ul>
</div>
</div> </div>
</div> </div>
<div class="discount"> <div class="discount">
...@@ -235,29 +209,30 @@ ...@@ -235,29 +209,30 @@
let searchData = []; // 搜索总数据 let searchData = []; // 搜索总数据
let showId = ''; // 选中演出id let showId = ''; // 选中演出id
let sendTimeType = ''; let sendTimeType = '';
function getMallList() { $("#searchIpt").bsSuggest('init', {
let data = { idField: 'spuId', // data.value 的第几个数据,作为input输入框的内容
name: $('#searchIpt').val() keyField: 'name', // data.value 的第几个数据,作为input输入框的内容
} allowNoKeyword: false, //是否允许无关键字时请求数据
let str = ''; showBtn: false,
promiseMethods('/compilations/goodsList','get',data).then(res=>{ multiWord: true, //以分隔符号分割的多关键字支持
if (res.data.length>0) { hideOnSelect: true,
searchData = [...res.data]; getDataMethod: "url", //获取数据的方式,总是从 URL 获取
searchData.forEach((item,index)=>{ effectiveFields: ['name'],
str+= `<li class="selectData" onclick="selectOne('${item.spuId}','${item.name}')">${item.name}</li>` url: '/compilations/goodsList?name=',
}) /*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
$('#dataList').html(str); processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
} else { let data = {
$('#dataList').html('<li style="width:100%;text-align:center;color:#ccc;">--- 暂无数据 ---</li>'); value: []
} };
}) data.value = json.data;
}; return data;
}
}).on('onDataRequestSuccess', function (e, result) {
}).on('onSetSelectValue', function (e, selectedData,selectedRawData ) { // 当前行的所有值都能拿到
selectOne(selectedData.id, selectedData.key)
}).on('onUnsetSelectValue', function (e) {
});;
function selectOne(id,name) { function selectOne(id,name) {
searchData.some(item => {
if (item.spuId == id) {
return $("#searchIpt").val(item.name);
}
})
showId = id; showId = id;
}; };
$("input[name=typeTwo]").change(function(e){ $("input[name=typeTwo]").change(function(e){
...@@ -287,22 +262,6 @@ ...@@ -287,22 +262,6 @@
$('#dataOne1').show(); $('#dataOne1').show();
} }
}); });
$("#searchIpt").blur(function(){
getMallList()
$('#dataList').show()
});
// $("#searchIpt").blur(function(){
// setTimeout(() => {
// $('#dataList').hide()
// }, 500);
// });
function selectGoods(){
$('#dataList').hide()
}
$("#searchIpt").keyup(function(){
searchVal = $("#searchIpt").val()
getMallList()
});
$("input[name=sendType]").change(function(e){ $("input[name=sendType]").change(function(e){
sendType = e.target.value; sendType = e.target.value;
if (e.target.value == 2) { if (e.target.value == 2) {
......
...@@ -208,6 +208,7 @@ ...@@ -208,6 +208,7 @@
removeUrl: prefix + "/rmv/{id}", removeUrl: prefix + "/rmv/{id}",
sortName: "mid", sortName: "mid",
modalName: "商品分类", modalName: "商品分类",
pagination: false,
// onCheck: onCheck, // onCheck: onCheck,
columns: [{ columns: [{
radio: true radio: true
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('黑名单管理')"/>
<th:block th:include="include :: bootstrap-fileinput-css" />
<style>
</style>
</head>
<body>
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>手机号:</label>
<input type="number" name=""/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
class="fa fa-search"></i>&nbsp;搜索</a>
<!-- <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i-->
<!-- class="fa fa-refresh"></i>&nbsp;重置</a>-->
</li>
</ul>
</div>
</form>
</div>
<div class="col-sm-12 select-table table-bordered">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
</body>
<th:block th:include="include :: footer"/>
<script type="text/javascript">
$(function(){
let options = {
url: '/smile/user/listByState',
columns: [
{
field: 'uid',
title: 'ID'
},
{
field: 'name',
title: '姓名'
},
{
field: 'sex',
title: '性别',
formatter:function(value,row,index){
return row.sex === 1? '男' : '女'
}
},
{
field: 'phone',
title: '手机号'
},
{
field: 'idCard',
title: '身份证号'
},
{
field: 'province',
title: '地区'
},
{
field: 'schoolName',
title: '学校'
},
{
field: 'identity',
title: '身份',
formatter: function(value, row, index) {
if (value == 1) {
return '在校学生';
} else {
return '已毕业';
}
}
},
{
field: 'errorReason',
title: '拉黑原因'
},
{
field: 'updatedDate',
title: '拉黑时间'
},
{
title: '操作',
formatter:function(value,row,index){
var actions = [];
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="goDetail(\''+row.type+'\',\''+row.uid+'\')"><i class="fa fa-edit"></i>查看</a> ');
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="updateUserStateById(\'' + row.uid + '\',\'' + 0 + '\')"><i class="fa fa-edit"></i>恢复</a> ');
return actions.join('');
}
},
]
}
$.table.init(options);
})
function goDetail (type,id) {
if(type === '5'){
let url = ctx+'local/specialDetail?id=' + id;
$.modal.openTab("特邀用户详情", url);
}else{
let url = ctx+'local/smileDetail?id=' + id;
$.modal.openTab("用户详情", url);
}
}
function updateUserStateById(uid,state) {
let postData = {
uid: uid,
state: state
}
$.ajax({
type: 'post',
url: ctx + 'smile/user/updateUserStateByUid',
headers: {"Content-Type": "application/json;charset=UTF-8"},
data: JSON.stringify(postData),
success: function (e) {
// alert(e.msg)
location.reload();
}
});
}
</script>
</html>
\ No newline at end of file
...@@ -210,6 +210,7 @@ ...@@ -210,6 +210,7 @@
var options = { var options = {
url: prefix + "/list", url: prefix + "/list",
modalName: "学校列表", modalName: "学校列表",
showSearch: false,
columns: [{ columns: [{
checkbox: true checkbox: true
}, },
......
...@@ -61,6 +61,10 @@ ...@@ -61,6 +61,10 @@
showColumns: false, showColumns: false,
sidePagination: "client", sidePagination: "client",
columns: [ columns: [
{
field: 'title',
title: '票种名'
},
{ {
field: 'totalCarry', field: 'totalCarry',
title: '总代票提', title: '总代票提',
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
width: 800px; width: 800px;
padding-top: 20px; padding-top: 20px;
} }
#addClassify .selectClassify { #addClassify .selectClassify {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -105,6 +105,7 @@ ...@@ -105,6 +105,7 @@
modalName: "销售数据", modalName: "销售数据",
url: smilePrefix + "/list", url: smilePrefix + "/list",
detailUrl: smilePrefix + "/base/saleData/{id}", detailUrl: smilePrefix + "/base/saleData/{id}",
showSearch: false,
columns: [{ columns: [{
checkbox: true checkbox: true
}, },
...@@ -161,10 +162,15 @@ ...@@ -161,10 +162,15 @@
align: 'center', align: 'center',
formatter: function (value, row, index) { formatter: function (value, row, index) {
var actions = []; var actions = [];
if (row.type===1){
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="upTakeByPerId(\'' + row.performancesId + '\',\'' + 0 + '\')"><i class="fa fa-edit"></i>上架</a> ');
}else {
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="upTakeByPerId(\'' + row.performancesId + '\',\'' + 1 + '\')"><i class="fa fa-edit"></i>下架</a> ');
}
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="toPop(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>设置票提</a> '); actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="toPop(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>设置票提</a> ');
// actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="editPop(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>编辑票提</a> '); // actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="editPop(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>编辑票提</a> ');
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="toDetail(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>查看</a> '); actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="toDetail(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>查看</a> ');
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>销售数据</a> '); actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.performancesId + '\', 1200)"><i class="fa fa-edit"></i>销售数据</a> ');
return actions.join(''); return actions.join('');
} }
}] }]
...@@ -189,6 +195,31 @@ ...@@ -189,6 +195,31 @@
}); });
} }
/*上下架*/
function upTakeByPerId(id,type) {
let postData = {
perId: id,
type: type
}
$.ajax({
type: 'put',
url: ctx + 'smile/show/upTakeByPerId',
headers: {"Content-Type": "application/json;charset=UTF-8"},
data: JSON.stringify(postData),
success: function (e) {
// alert(e.msg)
if (e.code == 301 || e.code == 500) {
layer.msg(e.msg)
setTimeout(() => {
location.reload();
},500)
} else {
location.reload();
}
}
});
}
/* 跳转详情 */ /* 跳转详情 */
function toDetail(id) { function toDetail(id) {
window.localStorage.setItem('performancesId', id); window.localStorage.setItem('performancesId', id);
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<td>票种名称</td> <td>票种名称</td>
<td>总代票提</td> <td>总代票提</td>
<td>普代票提</td> <td>普代票提</td>
<tr/> </tr>
<div th:each="item : *{showAgentVoList}"> <div th:each="item : *{showAgentVoList}">
<tr class="content-tr"> <tr class="content-tr">
<td th:text="${item.title}"> <td th:text="${item.title}">
...@@ -48,6 +48,9 @@ ...@@ -48,6 +48,9 @@
<td>姓名</td> <td>姓名</td>
<td>所属地区</td> <td>所属地区</td>
<td>身份</td> <td>身份</td>
<td>证件号</td>
<td>联系电话</td>
<td>总代姓名</td>
<div th:each="item : *{showAgentVoList}"> <div th:each="item : *{showAgentVoList}">
<td th:text="${item.title}"></td> <td th:text="${item.title}"></td>
</div> </div>
...@@ -55,21 +58,29 @@ ...@@ -55,21 +58,29 @@
<td>总销售金额</td> <td>总销售金额</td>
<td>总销售佣金</td> <td>总销售佣金</td>
<td>打款状态</td> <td>打款状态</td>
<td>是否黑名单</td>
<td>操作</td> <td>操作</td>
<tr/> </tr>
<div th:each="item : *{userDataList}"> <div th:each="item : *{userDataList}">
<tr class="content-tr"> <tr class="content-tr">
<!-- <td th:text="${item}"></td> -->
<td th:text="${item.username}"></td> <td th:text="${item.username}"></td>
<td th:text="${item.cityName}"></td> <td th:text="${item.cityName}"></td>
<!-- <td th:name="uid" th:text="${item.uid}" hidden="hidden"></td>--> <!-- <td th:name="uid" th:text="${item.uid}" hidden="hidden"></td>-->
<td th:if="${item.type==1}" th:text="总代"></td> <td th:if="${item.type==1}" th:text="总代"></td>
<td th:if="${item.type==2}" th:text="普代"></td> <td th:if="${item.type==2}" th:text="普代"></td>
<td th:if="${item.type==5}" th:text="特邀代理"></td>
<td th:text="${item.idCard}"></td>
<td th:text="${item.phone}"></td>
<td th:text="${item.agentName}"></td>
<td th:each="itemAgent : ${item.dataAgentVos}" th:text="${itemAgent.number}"></td> <td th:each="itemAgent : ${item.dataAgentVos}" th:text="${itemAgent.number}"></td>
<td th:text="${#aggregates.sum(item.dataAgentVos.![number])}"></td> <td th:text="${#aggregates.sum(item.dataAgentVos.![number])}"></td>
<td th:text="${#aggregates.sum(item.dataAgentVos.![priceReal])}"></td> <td th:text="${#aggregates.sum(item.dataAgentVos.![priceReal])}"></td>
<td th:text="${#aggregates.sum(item.dataAgentVos.![commission])}"></td> <td th:text="${item.totalCommission}"></td>
<td th:if="${item.priceStatus!=0}" th:text="待打款"></td> <td th:if="${item.priceStatus!=0}" th:text="待打款"></td>
<td th:if="${item.priceStatus==0}" th:text="已打款"></td> <td th:if="${item.priceStatus==0}" th:text="已打款"></td>
<td th:if="${item.state==0}" th:text="否"></td>
<td th:if="${item.state==1}" th:text="是"></td>
<td th:if="${item.priceStatus!=0}"> <td th:if="${item.priceStatus!=0}">
<button type="button" class="btn btn-success btn-xs" <button type="button" class="btn btn-success btn-xs"
th:onclick="submitHandler([[${item.uid}]])"> th:onclick="submitHandler([[${item.uid}]])">
...@@ -90,7 +101,7 @@ ...@@ -90,7 +101,7 @@
$("#form-transfer-edit").validate({ $("#form-transfer-edit").validate({
focusCleanup: true focusCleanup: true
}); });
console.log('[[${saleDataVo}]]', '????')
function submitHandler(uid) { function submitHandler(uid) {
var param = { var param = {
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('用户列表')"/>
<style>
.container-div .row .addBox {
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
}
.addBox .addItems {
display: flex;
align-items: center;
margin-top: 20px;
}
.addBox .addItems .input-group {
width: 200px !important;
}
.addBox .addItems span {
display: inline-block;
width: 100px;
text-align: right;
margin-right: 8px;
}
</style>
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="addBox">
<div class="addItems">
<span><em style="color: red;">*</em>特邀代理姓名</span><input id="name" type="text" placeholder="特邀代理姓名" class="form-control" style="width:200px;height: 30px;">
</div>
<div class="addItems">
<span><em style="color: red;">*</em>特邀代理手机号</span><input id="phone" maxlength="11" type="text" placeholder="特邀代理手机号" class="form-control" style="width:200px;height: 30px;">
</div>
<div class="addItems">
<span><em style="color: red;">*</em>代理描述</span><input id="text" type="text" placeholder="代理描述" class="form-control" style="width:200px;height: 30px;">
</div>
<div class="addItems">
<span><em style="color: red;">*</em>选择演出</span>
<div class="input-group iptOrSelect">
<input id="searchIpt" data-id="" value="" type="text" class="form-control storeList" placeholder="请输入查询信息" style="width:200px;height: 30px;">
<div class="input-group-btn">
<ul class="dropdown-menu dropdown-menu-right" role="menu">
</ul>
</div>
</div>
</div>
<div class="addItems">
<span><em style="color: red;">*</em>票提设置</span><input id="ticket" type="number" placeholder="票提设置%" class="form-control" style="width:200px;height: 30px;">
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: bootstrap-suggest-js" />
<script th:inline="javascript">
let uid = null
let perId = null
let hostname = null
var title = null
var smilePrefix = ctx + "smile/user";
var performancesId = null
$(".storeList").bsSuggest({
idField: 'performancesId', // data.value 的第几个数据,作为input输入框的内容
keyField: 'title', // data.value 的第几个数据,作为input输入框的内容
allowNoKeyword: false, //是否允许无关键字时请求数据
showBtn:false,
multiWord: true, //以分隔符号分割的多关键字支持
hideOnSelect: true,
getDataMethod: "url", //获取数据的方式,总是从 URL 获取
effectiveFields: ['title'],
url: '/smile/show/listAll?title=',
/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
//字符串转化为 js 对象
let data = {};
data.value = json.data
return data
}
}).on('onDataRequestSuccess', function (e, result) {
}).on('onSetSelectValue', function (e, selectedData,selectedRawData ) { // 当前行的所有值都能拿到
console.log(selectedData)
}).on('onUnsetSelectValue', function (e) {
});;
// $.ajax({
// url:'/smile/show/listAll',
// type:'get',
// success:function(res){
// let arr = []
// res.data.forEach(item =>{
// arr.push(`<option value="${item.performancesId}">${item.title}</option>`)
// })
// $('#performance').append(arr)
// }
// })
</script>
</body>
</html>
\ No newline at end of file
...@@ -20,6 +20,10 @@ ...@@ -20,6 +20,10 @@
<!-- <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i--> <!-- <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i-->
<!-- class="fa fa-refresh"></i>&nbsp;重置</a>--> <!-- class="fa fa-refresh"></i>&nbsp;重置</a>-->
</li> </li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="create()"><i
class="fa"></i>创建特邀代理</a>
</li>
</ul> </ul>
</div> </div>
</form> </form>
...@@ -31,10 +35,31 @@ ...@@ -31,10 +35,31 @@
</div> </div>
<th:block th:include="include :: footer"/> <th:block th:include="include :: footer"/>
<script th:inline="javascript"> <script th:inline="javascript">
let uid = null
let perId = null
let hostname = null
var title = null
var prefix2 = ctx + "local";
let dialog = `<div class="dialog" style="height:200px;width:500px;display: flex;flex-direction: column;justify-content: space-around;align-items: center;">
<div class="title">请输入拉黑原因</div>
<textarea name="" id="" cols="50" rows="10"></textarea>
</div>`
let add = `<div style="height:300px;display: flex;flex-direction: column;justify-content: space-around;align-items: center;">
<p style="border-bottom: 1px solid #000;width: 100%;text-align: center;">创建特邀代理</p>
<input id="name" type="text" placeholder="特邀代理姓名" style="width:200px;height: 30px;">
<input id="phone" maxlength="11" type="text" placeholder="特邀代理手机号" style="width:200px;height: 30px;">
<input id="text" type="text" placeholder="代理描述" style="width:200px;height: 30px;">
<select name="" id="performance" style="width:200px;height: 30px;">
<option value="" disabled selected>选择演出</option>
</select>
<input id="ticket" type="text" placeholder="票提设置%" style="width:200px;height: 30px;">
</div>`
var detailFlag = [[${@permission.hasPermi('smile:performances:detail')}]]; var detailFlag = [[${@permission.hasPermi('smile:performances:detail')}]];
var smilePrefix = ctx + "smile/user"; var smilePrefix = ctx + "smile/user";
console.log(smilePrefix); console.log(smilePrefix);
var performancesId = null
// // createUrl: prefix + "/add", // // createUrl: prefix + "/add",
// // updateUrl: prefix + "/edit/{id}", // // updateUrl: prefix + "/edit/{id}",
// // removeUrl: prefix + "/remove", // // removeUrl: prefix + "/remove",
...@@ -68,8 +93,10 @@ ...@@ -68,8 +93,10 @@
formatter: function(value, row, index) { formatter: function(value, row, index) {
if (value == 1) { if (value == 1) {
return '男'; return '男';
} else { } else if (value == 2){
return '女'; return '女';
}else {
return '-';
} }
} }
}, },
...@@ -104,10 +131,23 @@ ...@@ -104,10 +131,23 @@
field: 'type', field: 'type',
title: '类型', title: '类型',
formatter: function(value, row, index) { formatter: function(value, row, index) {
if (value == 1) { if (value === 1) {
return '总代'; return '总代';
} else { } else if(value === 2){
return '普代'; return '普代';
}else{
return '特邀代理'
}
}
},
{
field: 'state',
title: '状态',
formatter: function(value, row, index) {
if (value === 0) {
return '正常';
} else {
return '黑名单';
} }
} }
}, },
...@@ -116,18 +156,108 @@ ...@@ -116,18 +156,108 @@
align: 'center', align: 'center',
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="goDetail(\'' + row.uid + '\')"><i class="fa fa-edit"></i>查看</a> '); actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="goDetail(\''+row.type+'\',\''+row.uid+'\')"><i class="fa fa-edit"></i>查看</a> ');
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="updateUserStateById(\'' + row.uid + '\',\'' + 1 + '\')"><i class="fa fa-edit"></i>加入黑名单</a> ');
if(row.type === 5){
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="showQRcode(\'' + row.uid + '\')"><i class="fa fa-edit"></i>查看二维码</a> ');
}
return actions.join(''); return actions.join('');
} }
}] }]
}; };
$.table.init(options); $.table.init(options);
console.log(options)
}); });
function goDetail (id) { function goDetail (type,id) {
var url = ctx+'local/smileDetail?id=' + id; if(type === '5'){
$.modal.openTab("用户详情", url); let url = ctx+'local/specialDetail?id=' + id;
$.modal.openTab("特邀用户详情", url);
}else{
let url = ctx+'local/smileDetail?id=' + id;
$.modal.openTab("用户详情", url);
}
}
/*加入黑名单*/
function updateUserStateById(uid,state) {
$.modal.confirm(dialog,() =>{
let str = $('textarea').val()
let postData = {
uid: uid,
state: state,
reason:str
}
$.ajax({
type: 'post',
url: ctx + 'smile/user/updateUserStateByUid',
headers: {"Content-Type": "application/json;charset=UTF-8"},
data: JSON.stringify(postData),
success: function (e) {
// alert(e.msg)
location.reload();
}
});
});
}
function create(){
$.modal.open('创建特邀代理',prefix2+'/smileUserListAdd', 450, 400, (index, layero) => {
let body = layer.getChildFrame('body', index);
let testMethod = /^([0-9]{1,2}|100)$/;
if (!testMethod.test(Number(body.find('#ticket').val()))) return layer.msg('票提应为0-100的正整数!')
let data = {
describe: body.find('#text').val(),
name: body.find('#name').val(),
performancesId: body.find('#searchIpt').attr('data-id'),
phone: body.find('#phone').val(),
ticket: body.find('#ticket').val()
}
for(let i in data) {
if (!data[i]) return layer.msg('请将必填项填写完整!')
}
data.ticket = Number(data.ticket);
$.ajax({
url:'/smile/user/saveInvitedAgent',
type:'post',
data:JSON.stringify(data),
headers: {"Content-Type": "application/json;charset=UTF-8"},
success:function(res){
location.reload();
}
})
})
}
function showQRcode(id){
if(window.location.hostname.indexOf('dev') !== -1){
hostname = 'https://devm.zhengzai.tv'
}else if(window.location.hostname.indexOf('test') !== -1){
hostname = 'https://testm.zhengzai.tv'
}else{
hostname = 'https://m.zhengzai.tv'
}
uid = id
$.ajax({
type: 'post',
url: smilePrefix + "/getUserById",
data: {
uid: id
},
success:function(res){
perId = res.data.perId
title = res.data.title
}
})
setTimeout(() =>{
let qrCode = `<div style="height:300px;display: flex;flex-direction: column;justify-content: space-around;align-items: center;">
<p style="width: 100%;text-align: center;">查看二维码</p>
<img src="https://api.qrserver.com/v1/create-qr-code?data=${hostname}/%23/ticket/detail?id=${perId}%26agentId=${uid}" style="width: 200px;height: 200px;">
<p>地址链接:${hostname}/#/ticket/detail?id=${perId}&agentId=${uid}</p>
<p>演出名称:${title}</p>
</div>`
$.modal.confirm(qrCode,() =>{
})
},100)
} }
// var updateFlag = [[${@permission.hasPermi('sweet:integralActivity:create')}]]; // var updateFlag = [[${@permission.hasPermi('sweet:integralActivity:create')}]];
// var isOnlineFlag = [[${@permission.hasPermi('sweet:integralActivity:isOnline')}]]; // var isOnlineFlag = [[${@permission.hasPermi('sweet:integralActivity:isOnline')}]];
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('特邀用户详情')"/>
<th:block th:include="include :: bootstrap-fileinput-css" />
<style>
.detail-container{
height: 50%;
padding: 50px;
display: flex;
flex-direction: column;
justify-content: space-around;
align-content: flex-start;
}
</style>
</head>
<body>
<div class="detail-container"></div>
</body>
<th:block th:include="include :: footer"/>
<script type="text/javascript">
$(function(){
let uid = getUrlParms('id');
let data = {
uid:uid
}
$.ajax({
url:'/smile/user/getUserById',
type:'post',
data,
success:function(response){
let { data } = response;
let child = `<div>特邀代理姓名:${data.name}</div>` + `<div>特邀代理手机号:${data.phone}</div>` + `<div>代理描述:${data.describe}</div>` + `<div>代理演出:${data.title}</div>` + `<div>票提设置:${data.ticket}%</div>`
$('.detail-container').append(child)
}
})
})
function getUrlParms(name){
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)
return unescape(r[2]);
return null;
}
</script>
</html>
\ No newline at end of file
...@@ -98,9 +98,9 @@ ...@@ -98,9 +98,9 @@
<a class="btn btn-success" id="addActivity" th:onclick="$.operate.addTab()"> <a class="btn btn-success" id="addActivity" th:onclick="$.operate.addTab()">
<i class="fa fa-plus"></i> 新增活动 <i class="fa fa-plus"></i> 新增活动
</a> </a>
<a class="btn btn-warning" id="button-open-11"> <!-- <a class="btn btn-warning" id="button-open-11">
<i class="fa fa-download"></i> 导出Excel <i class="fa fa-download"></i> 导出Excel
</a> </a> -->
</div> </div>
</div> </div>
......
...@@ -73,14 +73,14 @@ ...@@ -73,14 +73,14 @@
<body class="tagStore"> <body class="tagStore">
<div class="container-div"> <div class="container-div">
<div class="row"> <div class="row">
<div class="btn-group-sm" id="toolbar"> <!-- <div class="btn-group-sm" id="toolbar">
<div> <div>
<a class="btn btn-warning" id="button-open-11"> <a class="btn btn-warning" id="button-open-11">
<i class="fa fa-download"></i> 导出Excel <i class="fa fa-download"></i> 导出Excel
</a> </a>
</div> </div>
</div> </div> -->
<div class="col-sm-12 search-collapse"> <!-- <div class="col-sm-12 search-collapse">
<form id="role-form"> <form id="role-form">
<div class="select-list"> <div class="select-list">
<ul> <ul>
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
</ul> </ul>
</div> </div>
</form> </form>
</div> </div> -->
<div class="col-sm-12 select-table table-striped"> <div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table> <table id="bootstrap-table"></table>
</div> </div>
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
data: res.data, data: res.data,
// onLoadSuccess: onLoadSuccess, // onLoadSuccess: onLoadSuccess,
showSearch: false, showSearch: false,
showRefresh: true, showRefresh: false,
showColumns: false, showColumns: false,
showToggle: false, showToggle: false,
columns: [ columns: [
......
...@@ -232,6 +232,8 @@ ...@@ -232,6 +232,8 @@
$(this).fileinput("upload"); $(this).fileinput("upload");
}) })
.on("fileuploaded", function (event, data) { //上传回调事件 .on("fileuploaded", function (event, data) { //上传回调事件
console.log(event, data)
if (data.response.code == 1) return layer.msg(data.response.message)
let showPicture = 'https://img.zhengzai.tv/' + data.response.data.ossPath; let showPicture = 'https://img.zhengzai.tv/' + data.response.data.ossPath;
$("#viewImg").attr('src', showPicture) $("#viewImg").attr('src', showPicture)
}) })
...@@ -362,9 +364,10 @@ ...@@ -362,9 +364,10 @@
endTime: $("#endTime").val(), endTime: $("#endTime").val(),
startTime: $("#startTime").val(), startTime: $("#startTime").val(),
name: $("#selectShow").val(), name: $("#selectShow").val(),
performanceId: $("#selectShow").attr('data-id'), performanceId: $("#selectShow").attr('data-id').split(',')[$("#selectShow").attr('data-id').split(',').length-1],
performanceImg: $("#viewImg").attr('src') performanceImg: $("#viewImg").attr('src')
} // endTime } // endTime
console.log($("#selectShow").attr('data-id').split(',')[$("#selectShow").attr('data-id').split(',').length-1], '$("#selectShow")')
if (marketId) { if (marketId) {
data.marketId = marketId; data.marketId = marketId;
promiseMethods('/goblin/marketing/zhengzai/change','post',data).then(res => { promiseMethods('/goblin/marketing/zhengzai/change','post',data).then(res => {
......
...@@ -128,20 +128,20 @@ ...@@ -128,20 +128,20 @@
align: 'center' align: 'center'
}, },
{ {
field: 'buyLimit', field: 'stockMarketing',
// title: '库存限量<a onclick="setPrice(2)">批量</a>', // title: '库存限量<a onclick="setPrice(2)">批量</a>',
title: '库存限量', title: '库存限量',
width: '150', width: '150',
align: 'center', align: 'center',
formatter: function (value, row, index) { // formatter: function (value, row, index) {
let str = ''; // let str = '';
if (value == 0) { // if (value == 0) {
str = '无限量'; // str = '无限量';
} else { // } else {
str = value; // str = value;
} // }
return str // return str
} // }
}, },
{ {
field: 'buyLimit', field: 'buyLimit',
...@@ -165,20 +165,20 @@ ...@@ -165,20 +165,20 @@
if (value == 0) { if (value == 0) {
return `<div style="display:flex;"> return `<div style="display:flex;">
<label style="margin-right:12px;"> <label style="margin-right:12px;">
<input type="radio" checked value="1" id="optionsRadios1" name="optionsRadios${index}"><span>全部用户</span></label> <input disabled type="radio" checked value="1" id="optionsRadios1" name="optionsRadios${index}"><span>全部用户</span></label>
<label style="margin-right:12px;"> <label style="margin-right:12px;">
<input type="radio" value="2" id="optionsRadios1" name="optionsRadios${index}"><span>仅支持会员购买</span></label> <input disabled type="radio" value="2" id="optionsRadios1" name="optionsRadios${index}"><span>仅支持会员购买</span></label>
<label style="margin-right:12px;"> <label style="margin-right:12px;">
<input type="radio" value="3" id="optionsRadios1" name="optionsRadios${index}"><span>指定用户购买</span></label> <input disabled type="radio" value="3" id="optionsRadios1" name="optionsRadios${index}"><span>指定用户购买</span></label>
</div>` </div>`
} else { } else {
return `<div style="display:flex;"> return `<div style="display:flex;">
<label style="margin-right:12px;"> <label style="margin-right:12px;">
<input type="radio" value="1" id="optionsRadios1" name="optionsRadios${index}"><span>全部用户</span></label> <input disabled type="radio" value="1" id="optionsRadios1" name="optionsRadios${index}"><span>全部用户</span></label>
<label style="margin-right:12px;"> <label style="margin-right:12px;">
<input type="radio" checked value="2" id="optionsRadios1" name="optionsRadios${index}"><span>仅支持会员购买</span></label> <input disabled type="radio" checked value="2" id="optionsRadios1" name="optionsRadios${index}"><span>仅支持会员购买</span></label>
<label style="margin-right:12px;"> <label style="margin-right:12px;">
<input type="radio" value="3" id="optionsRadios1" name="optionsRadios${index}"><span>指定用户购买</span></label> <input disabled type="radio" value="3" id="optionsRadios1" name="optionsRadios${index}"><span>指定用户购买</span></label>
</div>` </div>`
} }
......
...@@ -168,6 +168,19 @@ ...@@ -168,6 +168,19 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!--二维码生成-->
<!--<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.3</version>
</dependency>-->
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -141,6 +141,8 @@ public class GoblinZhengzaiMarketServiceImpl implements IGoblinZhengzaiMarketSer ...@@ -141,6 +141,8 @@ public class GoblinZhengzaiMarketServiceImpl implements IGoblinZhengzaiMarketSer
BeanUtils.copyProperties(selfMarketing, vo); BeanUtils.copyProperties(selfMarketing, vo);
vo.setStartTime(st); vo.setStartTime(st);
vo.setEndTime(et); vo.setEndTime(et);
vo.setEndTime(et);
vo.setStatus(0);
vo.setPerformanceId(performanceId); vo.setPerformanceId(performanceId);
vo.setPerformanceImg(img); vo.setPerformanceImg(img);
vo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(selfMarketing.getCreatedAt())); vo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(selfMarketing.getCreatedAt()));
......
...@@ -295,9 +295,13 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -295,9 +295,13 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
@Override @Override
public List<PerformanceSimpleAllDao> getListDetailByStatus(String status, String title) { public List<PerformanceSimpleAllDao> getListDetailByStatus(String status, String title) {
List<PerformanceTitleDao> dto1List = performancesMapper.misTitleByStatusList(status, title); List<PerformanceTitleDao> dto1List = performancesMapper.misTitleByStatusList(status, title);
List<String> performanceIdList = dto1List.stream().map(PerformanceTitleDao::getPerformancesId).collect(Collectors.toList()); if (dto1List.size() == 0) {
List<PerformanceSimpleAllDao> dto2List = performancesMapper.misPerformanceDetail(performanceIdList); return new ArrayList();
return dto2List; } else {
List<String> performanceIdList = dto1List.stream().map(PerformanceTitleDao::getPerformancesId).collect(Collectors.toList());
List<PerformanceSimpleAllDao> dto2List = performancesMapper.misPerformanceDetail(performanceIdList);
return dto2List;
}
} }
@Override @Override
...@@ -604,19 +608,19 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -604,19 +608,19 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
smileAgent.setPerformanceId(performancesId); smileAgent.setPerformanceId(performancesId);
smileAgent.setTicketId(ticketId); smileAgent.setTicketId(ticketId);
LambdaQueryWrapper<SmileAgent> queryWrapper = Wrappers.lambdaQuery(SmileAgent.class); LambdaQueryWrapper<SmileAgent> queryWrapper = Wrappers.lambdaQuery(SmileAgent.class);
queryWrapper.eq(SmileAgent::getPerformanceId,performancesId); queryWrapper.eq(SmileAgent::getPerformanceId, performancesId);
queryWrapper.eq(SmileAgent::getTicketId,ticketId); queryWrapper.eq(SmileAgent::getTicketId, ticketId);
if (status.equals(1)){ if (status.equals(1)) {
queryWrapper.eq(SmileAgent::getDelTag,0); queryWrapper.eq(SmileAgent::getDelTag, 0);
SmileAgent agent = smileAgentMapper.selectOne(queryWrapper); SmileAgent agent = smileAgentMapper.selectOne(queryWrapper);
if (agent==null){ if (agent == null) {
smileAgentMapper.insert(smileAgent); smileAgentMapper.insert(smileAgent);
} }
}else { } else {
smileAgent.setDelTag(1); smileAgent.setDelTag(1);
smileAgentMapper.update(smileAgent,queryWrapper); smileAgentMapper.update(smileAgent, queryWrapper);
//删除票提redis //删除票提redis
smileRedisUtils.delAgent(performancesId,ticketId); smileRedisUtils.delAgent(performancesId, ticketId);
//查询是否还有设置过开启的票种 //查询是否还有设置过开启的票种
agentCarryGtZeroByPerId(performancesId); agentCarryGtZeroByPerId(performancesId);
} }
...@@ -629,12 +633,12 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -629,12 +633,12 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
//校验该演出是否有其他票提设置 用于删除redis中演出id List //校验该演出是否有其他票提设置 用于删除redis中演出id List
private void agentCarryGtZeroByPerId(String performancesId) { private void agentCarryGtZeroByPerId(String performancesId) {
List<SmileAgent> agents = smileAgentMapper.selectAgentCarryGtZeroByPerId(performancesId); List<SmileAgent> agents = smileAgentMapper.selectAgentCarryGtZeroByPerId(performancesId);
if (agents.size()>0){ if (agents.size() > 0) {
//是否设置过票提 //是否设置过票提
boolean tag = true; boolean tag = true;
for (SmileAgent agent : agents) { for (SmileAgent agent : agents) {
SmileAgentVo agent1 = smileRedisUtils.getAgent(agent.getPerformanceId(), agent.getTicketId()); SmileAgentVo agent1 = smileRedisUtils.getAgent(agent.getPerformanceId(), agent.getTicketId());
if (agent1!=null){ if (agent1 != null) {
tag = false; tag = false;
break; break;
} }
...@@ -646,7 +650,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -646,7 +650,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
showIds.remove(performancesId); showIds.remove(performancesId);
smileRedisUtils.setShowIds(showIds); smileRedisUtils.setShowIds(showIds);
} }
}else { } else {
//删除演出ids //删除演出ids
List<String> showIds = smileRedisUtils.getShowIds(); List<String> showIds = smileRedisUtils.getShowIds();
showIds.remove(performancesId); showIds.remove(performancesId);
......
package com.liquidnet.client.admin.zhengzai.smile.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author TT
*/
@Data
public class SaveUserStateParam {
@ApiModelProperty(value = "uid", example = "")
private String uid;
@ApiModelProperty(value = "标识【0:正常;1:黑名单】", example = "1")
@NotNull(message = "标识不能为空")
private Integer state;
@ApiModelProperty(value = "拉黑原因")
private String reason;
}
...@@ -76,6 +76,12 @@ public class ShowVo implements Serializable { ...@@ -76,6 +76,12 @@ public class ShowVo implements Serializable {
@ApiModelProperty(value = "演出打款状态") @ApiModelProperty(value = "演出打款状态")
private String status; private String status;
/**
* 上下架状态【0:上架,1:下架】
*/
@ApiModelProperty(value = "演出打款状态")
private int type;
/** /**
* 顺序 * 顺序
*/ */
...@@ -137,6 +143,7 @@ public class ShowVo implements Serializable { ...@@ -137,6 +143,7 @@ public class ShowVo implements Serializable {
this.setOpen(kylinPerformancesDto.getOpen() == null ? BigDecimal.valueOf(0) : kylinPerformancesDto.getOpen()); this.setOpen(kylinPerformancesDto.getOpen() == null ? BigDecimal.valueOf(0) : kylinPerformancesDto.getOpen());
this.setPerformancesId(kylinPerformancesDto.getPerformancesId()); this.setPerformancesId(kylinPerformancesDto.getPerformancesId());
this.setTimeEnd(kylinPerformancesDto.getTimeEnd()); this.setTimeEnd(kylinPerformancesDto.getTimeEnd());
this.setType(kylinPerformancesDto.getType());
return this; return this;
} }
} }
...@@ -3,6 +3,8 @@ package com.liquidnet.client.admin.zhengzai.smile.dto; ...@@ -3,6 +3,8 @@ package com.liquidnet.client.admin.zhengzai.smile.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty;
/** /**
* <p> * <p>
* *
...@@ -20,6 +22,7 @@ public class SmileOrganizationVo{ ...@@ -20,6 +22,7 @@ public class SmileOrganizationVo{
* 组织名称 * 组织名称
*/ */
@ApiModelProperty(value = "组织名称", example = "") @ApiModelProperty(value = "组织名称", example = "")
@NotEmpty(message = "组织名称不能为空")
private String name; private String name;
/** /**
......
package com.liquidnet.client.admin.zhengzai.smile.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @author TT
*/
@Data
public class SmileUserInvitedVo {
@ApiModelProperty(value = "姓名")
@NotEmpty(message = "姓名不能为空")
private String name;
@ApiModelProperty(value = "手机号", example = "")
@NotEmpty(message = "手机号不能为空")
private String phone;
@ApiModelProperty(value = "代理描述")
@NotEmpty(message = "代理描述不能为空")
private String describe;
@ApiModelProperty(value = "演出id")
@NotEmpty(message = "演出id不能为空")
private String performancesId;
@ApiModelProperty(value = "票提")
@NotNull(message = "票提不能为空")
private BigDecimal ticket;
}
...@@ -43,9 +43,4 @@ public class SmileUserParam { ...@@ -43,9 +43,4 @@ public class SmileUserParam {
@NotNull(message = "数量不能为空") @NotNull(message = "数量不能为空")
private Integer pageNum; private Integer pageNum;
@ApiModelProperty(value = "排序字段", hidden = true)
private String orderItem;
@ApiModelProperty(value = "排序方式", hidden = true)
private String orderSc;
} }
package com.liquidnet.client.admin.zhengzai.smile.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author TT
*/
@Data
public class SmileUserStateParam {
@ApiModelProperty(value = "手机号", example = "")
private String phone;
@ApiModelProperty(value = "代理类型(1:总代,2:普代)", example = "")
private Integer type;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "数量", example = "20")
@NotNull(message = "数量不能为空")
private Integer pageSize;
@ApiModelProperty(value = "页数", example = "")
@NotNull(message = "页数不能为空")
private Integer pageNum;
}
package com.liquidnet.client.admin.zhengzai.smile.dto; package com.liquidnet.client.admin.zhengzai.smile.dto;
import com.liquidnet.service.smile.entity.SmileUser;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.*; import lombok.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
public class SmileUserVo { public class SmileUserVo implements Serializable, Cloneable {
private Long id; private Long id;
...@@ -17,7 +20,7 @@ public class SmileUserVo { ...@@ -17,7 +20,7 @@ public class SmileUserVo {
/** /**
* 照片 * 照片
*/ */
@ApiModelProperty("照片d") @ApiModelProperty("照片")
private String img; private String img;
/** /**
...@@ -181,7 +184,76 @@ public class SmileUserVo { ...@@ -181,7 +184,76 @@ public class SmileUserVo {
*/ */
@ApiModelProperty("擅长3") @ApiModelProperty("擅长3")
private String specialty3; private String specialty3;
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
private LocalDateTime createdDate; private LocalDateTime createdDate;
@ApiModelProperty("票提")
private BigDecimal ticket;
@ApiModelProperty("代理演出名称")
private String title;
@ApiModelProperty("代理描述")
private String describe;
@ApiModelProperty("道理演出id")
private String perId;
private static final SmileUserVo obj = new SmileUserVo();
public static SmileUserVo getNew() {
try {
return (SmileUserVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new SmileUserVo();
}
public SmileUserVo copy(SmileUser smileUser) {
if (null == smileUser) return this;
this.setId(smileUser.getId());
this.setUid(smileUser.getUid());
this.setImg(smileUser.getImg());
this.setBirthday(smileUser.getBirthday());
this.setAgent(smileUser.getAgent());
this.setArea(smileUser.getArea());
this.setAreaId(smileUser.getAreaId());
this.setAddress(smileUser.getAddress());
this.setCity(smileUser.getCity());
this.setCityId(smileUser.getCityId());
this.setCreatedDate(smileUser.getCreatedDate());
this.setErrorReason(smileUser.getErrorReason());
this.setName(smileUser.getName());
this.setIdentity(smileUser.getIdentity());
this.setIntroduce(smileUser.getIntroduce());
this.setPhone(smileUser.getPhone());
this.setOrgId(smileUser.getOrgId());
this.setSchoolId(smileUser.getSchoolId());
this.setSchoolMajor(smileUser.getSchoolMajor());
this.setSchoolName(smileUser.getSchoolName());
this.setSex(smileUser.getSex());
this.setIdCard(smileUser.getIdCard());
this.setProvince(smileUser.getProvince());
this.setProvinceId(smileUser.getProvinceId());
this.setSpecialty1(smileUser.getSpecialty1());
this.setSpecialty2(smileUser.getSpecialty2());
this.setSpecialty3(smileUser.getSpecialty3());
this.setWechat(smileUser.getWechat());
this.setType(smileUser.getType());
this.setTag(smileUser.getTag());
return this;
}
public SmileUserVo copyInvited(SmileUser smileUser) {
if (null == smileUser) return this;
this.setId(smileUser.getId());
this.setName(smileUser.getName());
this.setUid(smileUser.getUid());
this.setPhone(smileUser.getPhone());
this.setDescribe(smileUser.getIntroduce());
this.setType(smileUser.getType());
return this;
}
} }
package com.liquidnet.client.admin.zhengzai.smile.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @author TT
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TakeByPerId {
/**
* 排序
*/
@ApiModelProperty(value = "演出ID", example = "")
private String perId;
/**
* 演出id
*/
@ApiModelProperty(value = "上下架【1:下架,0:上架】", example = "")
private int type;
}
...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
...@@ -38,6 +39,30 @@ public class UserData implements Serializable, Cloneable { ...@@ -38,6 +39,30 @@ public class UserData implements Serializable, Cloneable {
@ApiModelProperty(value = "身份 1。总代 2.普代", example = "") @ApiModelProperty(value = "身份 1。总代 2.普代", example = "")
private Integer type; private Integer type;
/**
* 身份 1。黑名单 0正常
*/
@ApiModelProperty(value = "黑名单状态 1。黑名单 0.正常", example = "")
private Integer state;
/**
* 手机号码
*/
@ApiModelProperty(value = "手机号码", example = "")
private String phone;
/**
* 手机号码
*/
@ApiModelProperty(value = "证件号", example = "")
private String idCard;
/**
* 城市名称
*/
@ApiModelProperty(value = "总代姓名", example = "")
private String agentName;
/** /**
* 用户代理票信息 * 用户代理票信息
*/ */
...@@ -50,6 +75,9 @@ public class UserData implements Serializable, Cloneable { ...@@ -50,6 +75,9 @@ public class UserData implements Serializable, Cloneable {
@ApiModelProperty(value = "打款状态", example = "") @ApiModelProperty(value = "打款状态", example = "")
private Integer priceStatus; private Integer priceStatus;
@ApiModelProperty(value = "总佣金")
private BigDecimal totalCommission;
private static final UserData obj = new UserData(); private static final UserData obj = new UserData();
......
...@@ -8,10 +8,12 @@ import com.liquidnet.client.admin.zhengzai.smile.dto.SaleDataVo; ...@@ -8,10 +8,12 @@ import com.liquidnet.client.admin.zhengzai.smile.dto.SaleDataVo;
import com.liquidnet.client.admin.zhengzai.smile.dto.ShowSort; import com.liquidnet.client.admin.zhengzai.smile.dto.ShowSort;
import com.liquidnet.client.admin.zhengzai.smile.dto.SmilePriceParam; import com.liquidnet.client.admin.zhengzai.smile.dto.SmilePriceParam;
import com.liquidnet.client.admin.zhengzai.smile.dto.SmileShowParam; import com.liquidnet.client.admin.zhengzai.smile.dto.SmileShowParam;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformancesVo;
import com.liquidnet.service.smile.entity.SmileSchool; import com.liquidnet.service.smile.entity.SmileSchool;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import java.util.List;
/** /**
* <p> * <p>
...@@ -73,4 +75,8 @@ public interface ISmileShowService extends IService<SmileSchool> { ...@@ -73,4 +75,8 @@ public interface ISmileShowService extends IService<SmileSchool> {
void exportData(ServletOutputStream servletOutputStream, String performancesId); void exportData(ServletOutputStream servletOutputStream, String performancesId);
AjaxResult upTakeByPerId(String perId, Integer type);
ResponseDto<List<KylinPerformancesVo>> listAll(String title);
} }
...@@ -4,7 +4,6 @@ package com.liquidnet.client.admin.zhengzai.smile.service; ...@@ -4,7 +4,6 @@ package com.liquidnet.client.admin.zhengzai.smile.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.zhengzai.smile.dto.*; import com.liquidnet.client.admin.zhengzai.smile.dto.*;
import com.liquidnet.service.smile.entity.SmileUser; import com.liquidnet.service.smile.entity.SmileUser;
import com.liquidnet.service.smile.entity.dao.SmileUserCheckDao; import com.liquidnet.service.smile.entity.dao.SmileUserCheckDao;
...@@ -13,16 +12,21 @@ import java.util.List; ...@@ -13,16 +12,21 @@ import java.util.List;
public interface ISmileUserService extends IService<SmileUser> { public interface ISmileUserService extends IService<SmileUser> {
TableDataInfo userList(SmileUserParam smileUserParam); List<SmileUser> userList(SmileUserParam smileUserParam);
SmileUserVo getUserById(String id); SmileUserVo getUserById(String id);
List<SmileUserVoOrg> getUserListByOrgId(Long orgId, Long agentId); List<SmileUserVoOrg> getUserListByOrgId(Long orgId, Long agentId);
AjaxResult updateUserStateById(String uid, Integer state); AjaxResult updateUserStateById(String uid, Integer state,String reason);
PageInfo<SmileUserCheckDao> listUserCheck(UserCheckParam userCheckParam); PageInfo<SmileUserCheckDao> listUserCheck(UserCheckParam userCheckParam);
AjaxResult updateUserCheckById(SmileUserCheckVo smileUserCheck); AjaxResult updateUserCheckById(SmileUserCheckVo smileUserCheck);
List<SmileUser> listByState(SmileUserStateParam smileUserStateParam);
AjaxResult saveInvitedAgent(SmileUserInvitedVo smileUserInvitedVo);
List<SmileUserVo> getList(String phone);
} }
...@@ -11,12 +11,10 @@ import com.liquidnet.service.smile.entity.SmileAgent; ...@@ -11,12 +11,10 @@ import com.liquidnet.service.smile.entity.SmileAgent;
import com.liquidnet.service.smile.entity.dao.SmileAgentDao; import com.liquidnet.service.smile.entity.dao.SmileAgentDao;
import com.liquidnet.service.smile.mapper.SmileAgentMapper; import com.liquidnet.service.smile.mapper.SmileAgentMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Before;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.List; import java.util.List;
......
...@@ -11,6 +11,7 @@ import com.liquidnet.client.admin.zhengzai.smile.service.ISmileSchoolService; ...@@ -11,6 +11,7 @@ import com.liquidnet.client.admin.zhengzai.smile.service.ISmileSchoolService;
import com.liquidnet.client.admin.zhengzai.smile.utils.SmileRedisUtils; import com.liquidnet.client.admin.zhengzai.smile.utils.SmileRedisUtils;
import com.liquidnet.commons.lang.util.BeanUtil; import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.service.goblin.dto.vo.SmileSchoolVo; import com.liquidnet.service.goblin.dto.vo.SmileSchoolVo;
import com.liquidnet.service.goblin.dto.vo.SmileUserVO;
import com.liquidnet.service.smile.entity.SmileSchool; import com.liquidnet.service.smile.entity.SmileSchool;
import com.liquidnet.service.smile.entity.SmileUser; import com.liquidnet.service.smile.entity.SmileUser;
import com.liquidnet.service.smile.mapper.SmileSchoolMapper; import com.liquidnet.service.smile.mapper.SmileSchoolMapper;
...@@ -20,10 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -20,10 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -100,6 +99,16 @@ public class SmileSchoolServiceImpl extends ServiceImpl<SmileSchoolMapper, Smile ...@@ -100,6 +99,16 @@ public class SmileSchoolServiceImpl extends ServiceImpl<SmileSchoolMapper, Smile
queryWrapper.eq(SmileSchool::getDelTag, 0); queryWrapper.eq(SmileSchool::getDelTag, 0);
if (smileSchoolMapper.update(smileSchool, queryWrapper) > 0) { if (smileSchoolMapper.update(smileSchool, queryWrapper) > 0) {
//更新User表 根据学校id修改用户学校名称 //更新User表 根据学校id修改用户学校名称
LambdaQueryWrapper<SmileUser> smileUserLambdaQueryWrapper = Wrappers.lambdaQuery(SmileUser.class);
smileUserLambdaQueryWrapper.select(SmileUser::getUid);
smileUserLambdaQueryWrapper.eq(SmileUser::getSchoolId,smileSchool.getId());
List<SmileUser> smileUsers = smileUserMapper.selectList(smileUserLambdaQueryWrapper);
smileUsers.forEach(smileUser -> {
SmileUserVO smileUserVO = smileRedisUtils.getSmileUserVO(smileUser.getUid());
smileUserVO.setSchoolName(smileSchool.getName());
smileRedisUtils.setSmileUserVO(smileUser.getUid(),smileUserVO);
});
smileUserMapper.updateUserSchoolBySchoolId(smileSchool.getId().toString(), smileSchool.getName()); smileUserMapper.updateUserSchoolBySchoolId(smileSchool.getId().toString(), smileSchool.getName());
smileRedisUtils.setSchool(String.valueOf(smileSchool.getId()), smileSchool.getName()); smileRedisUtils.setSchool(String.valueOf(smileSchool.getId()), smileSchool.getName());
//修改数据 //修改数据
......
package com.liquidnet.client.admin.zhengzai.smile.utils;
/*import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.liquidnet.commons.lang.util.FilesUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.imageio.ImageIO;
import javax.swing.filechooser.FileSystemView;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;*/
/**
* 二维码工具
**/
public class QRCodeUtil {
/*private static final Logger log= LoggerFactory.getLogger(QRCodeUtil.class);
//CODE_WIDTH:二维码宽度,单位像素
private static final int CODE_WIDTH = 400;
//CODE_HEIGHT:二维码高度,单位像素
private static final int CODE_HEIGHT = 400;
//FRONT_COLOR:二维码前景色,0x000000 表示黑色
private static final int FRONT_COLOR = 0x000000;
//BACKGROUND_COLOR:二维码背景色,0xFFFFFF 表示白色
//演示用 16 进制表示,和前端页面 CSS 的取色是一样的,注意前后景颜色应该对比明显,如常见的黑白
private static final int BACKGROUND_COLOR = 0xFFFFFF;
public static void createCodeToFile(String content, File codeImgFileSaveDir, String fileName) {
File codeImgFile = null;
try {
if (StringUtils.isBlank(content) || StringUtils.isBlank(fileName)) {
return;
}
content = content.trim();
if (codeImgFileSaveDir == null || codeImgFileSaveDir.isFile()) {
//二维码图片存在目录为空,默认放在桌面...
codeImgFileSaveDir = FileSystemView.getFileSystemView().getHomeDirectory();
}
if (!codeImgFileSaveDir.exists()) {
//二维码图片存在目录不存在,开始创建...
codeImgFileSaveDir.mkdirs();
}
//核心代码-生成二维码
BufferedImage bufferedImage = getBufferedImage(content);
codeImgFile = new File(codeImgFileSaveDir, fileName);
ImageIO.write(bufferedImage, "png", codeImgFile);
log.info("二维码图片生成成功:" + codeImgFile.getPath());
} catch (Exception e) {
e.printStackTrace();
} finally {
//删除生成的图片
FilesUtils.deleteTempFile(codeImgFile);
}
}
*//**
* 生成二维码并输出到输出流, 通常用于输出到网页上进行显示,输出到网页与输出到磁盘上的文件中,区别在于最后一句 ImageIO.write
* write(RenderedImage im,String formatName,File output):写到文件中
* write(RenderedImage im,String formatName,OutputStream output):输出到输出流中
* @param content :二维码内容
* @param outputStream :输出流,比如 HttpServletResponse 的 getOutputStream
*//*
public static void createCodeToOutputStream(String content, OutputStream outputStream) {
try {
if (StringUtils.isBlank(content)) {
return;
}
content = content.trim();
//核心代码-生成二维码
BufferedImage bufferedImage = getBufferedImage(content);
//区别就是这一句,输出到输出流中,如果第三个参数是 File,则输出到文件中
ImageIO.write(bufferedImage, "png", outputStream);
log.info("二维码图片生成到输出流成功...");
} catch (Exception e) {
e.printStackTrace();
}
}
//核心代码-生成二维码
private static BufferedImage getBufferedImage(String content) throws WriterException {
//com.google.zxing.EncodeHintType:编码提示类型,枚举类型
Map<EncodeHintType, Object> hints = new HashMap();
//EncodeHintType.CHARACTER_SET:设置字符编码类型
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
//EncodeHintType.ERROR_CORRECTION:设置误差校正
//ErrorCorrectionLevel:误差校正等级,L = ~7% correction、M = ~15% correction、Q = ~25% correction、H = ~30% correction
//不设置时,默认为 L 等级,等级不一样,生成的图案不同,但扫描的结果是一样的
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
//EncodeHintType.MARGIN:设置二维码边距,单位像素,值越小,二维码距离四周越近
hints.put(EncodeHintType.MARGIN, 1);
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, CODE_WIDTH, CODE_HEIGHT, hints);
BufferedImage bufferedImage = new BufferedImage(CODE_WIDTH, CODE_HEIGHT, BufferedImage.TYPE_INT_BGR);
for (int x = 0; x < CODE_WIDTH; x++) {
for (int y = 0; y < CODE_HEIGHT; y++) {
bufferedImage.setRGB(x, y, bitMatrix.get(x, y) ? FRONT_COLOR : BACKGROUND_COLOR);
}
}
return bufferedImage;
}
public static void main(String[] args) {
String content = "https://testm.zhengzai.tv/#/ticket/detail?id=1636396377417728005471027&agentId=22263112850549";
QRCodeUtil.createCodeToFile(content,null,"22263112850549.png");
}*/
}
\ No newline at end of file
...@@ -21,6 +21,7 @@ import java.math.BigDecimal; ...@@ -21,6 +21,7 @@ import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Component @Component
@Slf4j @Slf4j
...@@ -34,7 +35,7 @@ public class SmileRedisUtils { ...@@ -34,7 +35,7 @@ public class SmileRedisUtils {
return redisDataSourceUtil.getRedisKylinUtil(); return redisDataSourceUtil.getRedisKylinUtil();
} }
public Object get(String key){ public Object get(String key) {
return redisDataSourceUtil.getRedisKylinUtil().get(key); return redisDataSourceUtil.getRedisKylinUtil().get(key);
} }
...@@ -91,7 +92,7 @@ public class SmileRedisUtils { ...@@ -91,7 +92,7 @@ public class SmileRedisUtils {
* 获取全部学校 * 获取全部学校
*/ */
public List<SmileSchoolVo> getSchoolAll() { public List<SmileSchoolVo> getSchoolAll() {
return (List<SmileSchoolVo>)getRedis().get(SmileRedisConst.SMILE_SCHOOL); return (List<SmileSchoolVo>) getRedis().get(SmileRedisConst.SMILE_SCHOOL);
} }
/** /**
...@@ -111,6 +112,7 @@ public class SmileRedisUtils { ...@@ -111,6 +112,7 @@ public class SmileRedisUtils {
/** /**
* 保存用户最新计算数据 * 保存用户最新计算数据
*
* @param userData * @param userData
*/ */
public void setUserDataByUid(UserData userData, String perId) { public void setUserDataByUid(UserData userData, String perId) {
...@@ -120,15 +122,14 @@ public class SmileRedisUtils { ...@@ -120,15 +122,14 @@ public class SmileRedisUtils {
/** /**
* 获取用户最新计算数据 * 获取用户最新计算数据
* @param userData
*/ */
public UserData getUserDataByUid(String perId,String uid) { public UserData getUserDataByUid(String perId, String uid) {
String key = SmileRedisConst.SELL_USER_DATA.concat(perId).concat(":").concat(uid); String key = SmileRedisConst.SELL_USER_DATA.concat(perId).concat(":").concat(uid);
Object obj = getRedis().get(key); Object obj = getRedis().get(key);
if (obj==null){ if (obj == null) {
return null; return null;
}else { } else {
return (UserData)obj; return (UserData) obj;
} }
} }
...@@ -136,13 +137,14 @@ public class SmileRedisUtils { ...@@ -136,13 +137,14 @@ public class SmileRedisUtils {
* 保存演出ids * 保存演出ids
*/ */
public void setShowIds(List<String> perId) { public void setShowIds(List<String> perId) {
perId = perId.stream().distinct().collect(Collectors.toList());
getRedis().set(SmileRedisConst.SMILE_SHOW, perId); getRedis().set(SmileRedisConst.SMILE_SHOW, perId);
} }
/** /**
* 获取演出ids * 获取演出ids
*/ */
public List<String> getShowIds(){ public List<String> getShowIds() {
String rdk = SmileRedisConst.SMILE_SHOW; String rdk = SmileRedisConst.SMILE_SHOW;
Object obj = getRedis().get(rdk); Object obj = getRedis().get(rdk);
if (obj == null) { if (obj == null) {
...@@ -152,7 +154,7 @@ public class SmileRedisUtils { ...@@ -152,7 +154,7 @@ public class SmileRedisUtils {
} }
} }
public void delShow(){ public void delShow() {
String rdk = SmileRedisConst.SMILE_SHOW; String rdk = SmileRedisConst.SMILE_SHOW;
Object obj = getRedis().get(rdk); Object obj = getRedis().get(rdk);
if (obj != null) { if (obj != null) {
...@@ -258,9 +260,9 @@ public class SmileRedisUtils { ...@@ -258,9 +260,9 @@ public class SmileRedisUtils {
public SmileProjectDetailsVo getProject(String projectId) { public SmileProjectDetailsVo getProject(String projectId) {
String rdk = SmileRedisConst.PROJECT_DETAILS.concat(projectId); String rdk = SmileRedisConst.PROJECT_DETAILS.concat(projectId);
Object obj = getRedis().get(rdk); Object obj = getRedis().get(rdk);
if(obj==null){ if (obj == null) {
return null; return null;
}else{ } else {
return (SmileProjectDetailsVo) obj; return (SmileProjectDetailsVo) obj;
} }
} }
...@@ -321,24 +323,34 @@ public class SmileRedisUtils { ...@@ -321,24 +323,34 @@ public class SmileRedisUtils {
/** /**
* 保存演出列表vo * 保存演出列表vo
*
* @param vo * @param vo
*/ */
public void setShowVoByPerId(ShowVo vo) { public void setShowVoByPerId(ShowVo vo) {
String key = SmileRedisConst.SELL_SHOW_SAVE.concat(vo.getPerformancesId()); String key = SmileRedisConst.SELL_SHOW_SAVE.concat(vo.getPerformancesId());
getRedis().set(key,vo); getRedis().set(key, vo);
} }
/** /**
* 获取演出列表vo * 获取演出列表vo
* @param vo
*/ */
public ShowVo getShowVoByPerId(String perId) { public ShowVo getShowVoByPerId(String perId) {
String key = SmileRedisConst.SELL_SHOW_SAVE.concat(perId); String key = SmileRedisConst.SELL_SHOW_SAVE.concat(perId);
Object o = getRedis().get(key); Object o = getRedis().get(key);
if (o==null){ if (o == null) {
return null; return null;
}else { } else {
return (ShowVo) o; return (ShowVo) o;
} }
} }
/* ---------------------------------------- smileUser ---------------------------------------- */
public SmileUserVO getSmileUserVo(String userId) {
return (SmileUserVO) getRedis().get(SmileRedisConst.SMILE_USER.concat(userId));
}
public void setSmileUserVo(String userId, SmileUserVO smileUserVORedis) {
getRedis().set(SmileRedisConst.SMILE_USER.concat(userId), smileUserVORedis);
}
} }
...@@ -59,6 +59,18 @@ public class LnsRegex { ...@@ -59,6 +59,18 @@ public class LnsRegex {
*/ */
public static final String CN_PCD = "^[\\u4e00-\\u9fa5]{2,30}$"; public static final String CN_PCD = "^[\\u4e00-\\u9fa5]{2,30}$";
/**
* 大小字母 || 数字
* 长度:0,50
*/
public static final String ALPHABET_NUMBER_UNDER_50 = "^[a-zA-Z0-9]{0,50}$";
/**
* 大小字母 || 数字
* 长度:0,32
*/
public static final String ALPHABET_NUMBER_32 = "^[a-zA-Z0-9]{0,32}$";
/* ======================================================================= | 证件类 */ /* ======================================================================= | 证件类 */
......
...@@ -85,9 +85,9 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter { ...@@ -85,9 +85,9 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
request.setAttribute(CurrentUtil.uTag, JsonUtils.toJson(claims)); request.setAttribute(CurrentUtil.uTag, JsonUtils.toJson(claims));
} catch (ExpiredJwtException expiredJwtEx) { } catch (ExpiredJwtException expiredJwtEx) {
log.error("Ex.ExpiredJwtException:{},responseCode:{}", expiredJwtEx.getMessage(), responseCode = TOKEN_INVALID); log.warn("Ex.ExpiredJwtException:{},responseCode:{}", expiredJwtEx.getMessage(), responseCode = TOKEN_INVALID);
} catch (Exception ex) { } catch (Exception ex) {
log.error("Ex.Exception:{},responseCode:{}", ex.getMessage(), responseCode = TOKEN_ILLEGAL); log.warn("Ex.Exception:{},responseCode:{}", ex.getMessage(), responseCode = TOKEN_ILLEGAL);
} }
} else { } else {
responseCode = TOKEN_ILLEGAL; responseCode = TOKEN_ILLEGAL;
...@@ -276,7 +276,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter { ...@@ -276,7 +276,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
// log.info("#ATH.ENCRYPT耗时:{}ms", System.currentTimeMillis() - s); // log.info("#ATH.ENCRYPT耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis(); // s = System.currentTimeMillis();
ResponseDto<String> check = feignAuthorityClient.check(encrypt); ResponseDto<String> check = feignAuthorityClient.check(encrypt);
log.info("#ATH.VALID耗时:{}ms", System.currentTimeMillis() - s); log.debug("#ATH.VALID耗时:{}ms", System.currentTimeMillis() - s);
if (check.isSuccess()) { if (check.isSuccess()) {
String valEncrypt = check.getData(); String valEncrypt = check.getData();
...@@ -287,7 +287,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter { ...@@ -287,7 +287,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("GLOBAL:Authority Check Exception", e); log.warn("Ex.Authority Check Exception[ssokey={}]", ssokey, e);
} }
return val; return val;
} }
......
...@@ -35,6 +35,16 @@ public class GoblinGoods implements Serializable { ...@@ -35,6 +35,16 @@ public class GoblinGoods implements Serializable {
*/ */
private String spuNo; private String spuNo;
/**
* 商品条码
*/
private String spuBarCode;
/**
* ERP商品编码
*/
private String spuErpCode;
/** /**
* 商品类型[0-常规|1-数字藏品] * 商品类型[0-常规|1-数字藏品]
*/ */
......
...@@ -28,10 +28,20 @@ public class GoblinGoodsSku implements Serializable { ...@@ -28,10 +28,20 @@ public class GoblinGoodsSku implements Serializable {
private String spuId; private String spuId;
/** /**
* 单品的编号 * 单品编码
*/ */
private String skuNo; private String skuNo;
/**
* 单品条码
*/
private String skuBarCode;
/**
* ERP单品编码
*/
private String skuErpCode;
/** /**
* 商品类型[0-常规|1-数字藏品] * 商品类型[0-常规|1-数字藏品]
*/ */
......
...@@ -40,7 +40,7 @@ public interface GoblinSelfGoodsCategoryMapper extends BaseMapper<GoblinSelfGood ...@@ -40,7 +40,7 @@ public interface GoblinSelfGoodsCategoryMapper extends BaseMapper<GoblinSelfGood
"WHERE gsgc.del_flg='0'") "WHERE gsgc.del_flg='0'")
int statsForForMultiGrade(); int statsForForMultiGrade();
// SELECT cf.cate_id AS fcateId, cf.name AS fname, cf.icon AS ficon, cf.ne_isbn AS fneIsbn, cf.counts AS fcounts , cs.cate_id AS scateId, cs.name AS sname, cs.icon AS sicon, cs.ne_isbn AS sneIsbn, cs.counts AS scounts , ct.cate_id AS tcateId, ct.name AS tname, ct.icon AS ticon, ct.ne_isbn AS tneIsbn, ct.counts AS tcounts FROM goblin_self_goods_category cf LEFT JOIN ( SELECT cate_id, name, icon, grade, ne_isbn , counts, cate_pid FROM goblin_self_goods_category WHERE grade = '2' AND del_flg = '0' ) cs ON cs.cate_pid = cf.cate_id LEFT JOIN ( SELECT cate_id, name, icon, grade, ne_isbn , counts, cate_pid FROM goblin_self_goods_category WHERE grade = '3' AND del_flg = '0' ) ct ON ct.cate_pid = cs.cate_id WHERE cf.grade = '1' AND del_flg = '0' // SELECT cf.cate_id AS fcateId, cf.name AS fname, cf.icon AS ficon, cf.ne_isbn AS fneIsbn, cf.counts AS fcounts , cs.cate_id AS scateId, cs.name AS sname, cs.icon AS sicon, cs.ne_isbn AS sneIsbn, cs.counts AS scounts , ct.cate_id AS tcateId, ct.name AS tname, ct.icon AS ticon, ct.ne_isbn AS tneIsbn, ct.counts AS tcounts FROM goblin_self_goods_category cf LEFT JOIN ( SELECT mid, cate_id, name, icon, grade , ne_isbn, counts, cate_pid FROM goblin_self_goods_category WHERE grade = '2' AND del_flg = '0' ) cs ON cs.cate_pid = cf.cate_id LEFT JOIN ( SELECT mid, cate_id, name, icon, grade , ne_isbn, counts, cate_pid FROM goblin_self_goods_category WHERE grade = '3' AND del_flg = '0' ) ct ON ct.cate_pid = cs.cate_id WHERE cf.grade = '1' AND del_flg = '0' ORDER BY cf.mid, cs.mid, ct.mid;
@Select({"select cf.cate_id fcateId," + @Select({"select cf.cate_id fcateId," +
" cf.name fname," + " cf.name fname," +
" cf.icon ficon," + " cf.icon ficon," +
...@@ -58,12 +58,12 @@ public interface GoblinSelfGoodsCategoryMapper extends BaseMapper<GoblinSelfGood ...@@ -58,12 +58,12 @@ public interface GoblinSelfGoodsCategoryMapper extends BaseMapper<GoblinSelfGood
" ct.counts tcounts " + " ct.counts tcounts " +
"from goblin_self_goods_category cf " + "from goblin_self_goods_category cf " +
" left join (" + " left join (" +
" select cate_id, name, icon, grade, ne_isbn, counts, cate_pid from goblin_self_goods_category where grade = '2' and del_flg = '0' " + " select mid, cate_id, name, icon, grade, ne_isbn, counts, cate_pid from goblin_self_goods_category where grade = '2' and del_flg = '0' " +
") cs on cs.cate_pid = cf.cate_id " + ") cs on cs.cate_pid = cf.cate_id " +
" left join (" + " left join (" +
" select cate_id, name, icon, grade, ne_isbn, counts, cate_pid from goblin_self_goods_category where grade = '3' and del_flg = '0' " + " select mid, cate_id, name, icon, grade, ne_isbn, counts, cate_pid from goblin_self_goods_category where grade = '3' and del_flg = '0' " +
") ct on ct.cate_pid = cs.cate_id " + ") ct on ct.cate_pid = cs.cate_id " +
"where cf.grade = '1' and del_flg = '0'"}) "where cf.grade = '1' and del_flg = '0' ORDER BY cf.mid,cs.mid,ct.mid"})
List<GoblinSelfGoodsCategoryDto> listForMultiGrade(); List<GoblinSelfGoodsCategoryDto> listForMultiGrade();
List<String> listForMultiGradeCateId(@Param("cateIdArr") String[] cateIdArr); List<String> listForMultiGradeCateId(@Param("cateIdArr") String[] cateIdArr);
......
...@@ -48,7 +48,7 @@ select b.store_id, ...@@ -48,7 +48,7 @@ select b.store_id,
IFNull(count(distinct d.sku_id), 0) as 'sku_count' IFNull(count(distinct d.sku_id), 0) as 'sku_count'
from goblin_self_marketing as a from goblin_self_marketing as a
inner join goblin_marketing_zhengzai_relation as b on a.self_market_id = b.self_market_id inner join goblin_marketing_zhengzai_relation as b on a.self_market_id = b.self_market_id
inner join goblin_store_info as c on c.store_id = b.store_id inner join goblin_store_info as c on c.store_id = b.store_id and b.del_tag = 0
left join goblin_marketing_zhengzai as d on d.store_id = b.store_id and d.self_market_id = b.self_market_id left join goblin_marketing_zhengzai as d on d.store_id = b.store_id and d.self_market_id = b.self_market_id
where a.self_market_id = #{marketId} and b.del_tag = 0 where a.self_market_id = #{marketId} and b.del_tag = 0
GROUP BY b.store_id ORDER BY b.created_at asc GROUP BY b.store_id ORDER BY b.created_at asc
...@@ -73,7 +73,6 @@ GROUP BY b.store_id ORDER BY b.created_at asc ...@@ -73,7 +73,6 @@ GROUP BY b.store_id ORDER BY b.created_at asc
<where> <where>
gsm.del_flag = 0 gsm.del_flag = 0
<if test="purchaseName != null and purchaseName!=''">and gsm.name like concat('%', #{purchaseName}, '%') <if test="purchaseName != null and purchaseName!=''">and gsm.name like concat('%', #{purchaseName}, '%')
'%'
</if> </if>
<if test="ct != null and ct!=''">and gsm.created_at = #{ct}</if> <if test="ct != null and ct!=''">and gsm.created_at = #{ct}</if>
<if test="st != null and et != null and st != '' and et != ''">and and gsm.start_time <![CDATA[ >= ]]> #{st} <if test="st != null and et != null and st != '' and et != ''">and and gsm.start_time <![CDATA[ >= ]]> #{st}
......
...@@ -67,4 +67,9 @@ public class KylinPerformancesDto implements Serializable, Cloneable { ...@@ -67,4 +67,9 @@ public class KylinPerformancesDto implements Serializable, Cloneable {
* 演出状态 * 演出状态
*/ */
private int status; private int status;
/**
* 上下架标识【1:下架,0:上架】
*/
private int type;
} }
...@@ -83,4 +83,5 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> { ...@@ -83,4 +83,5 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
//商品订单信息 //商品订单信息
List<CommodityOrderExportDao> exportCommodityOrder(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime); List<CommodityOrderExportDao> exportCommodityOrder(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime);
List<KylinPerformancesDto> getListAll(String title);
} }
...@@ -14,10 +14,11 @@ ...@@ -14,10 +14,11 @@
FROM ( FROM (
SELECT kotr.mid, kotr.agent_id SELECT kotr.mid, kotr.agent_id
FROM kylin_order_ticket_relations as kotr FROM kylin_order_ticket_relations as kotr
LEFT JOIN kylin_order_ticket_status AS kots ON kotr.order_id = kots.order_id INNER JOIN kylin_order_ticket_status AS kots ON kotr.order_id = kots.order_id
INNER JOIN smile_user AS su ON su.uid = kotr.agent_id INNER JOIN smile_user AS su ON su.uid = kotr.agent_id
WHERE kots.status IN (1,6,3) WHERE kots.status IN (1,6,3)
AND kotr.agent_id != 0 AND kotr.agent_id != 0
AND (kotr.agent_distributions_master !=0 or kotr.agent_distributions!=0)
AND kotr.performance_id = #{performancesId} AND kotr.performance_id = #{performancesId}
group by kotr.agent_id) kk; group by kotr.agent_id) kk;
</select> </select>
......
...@@ -84,14 +84,14 @@ ...@@ -84,14 +84,14 @@
LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id
LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id
LEFT JOIN kylin_performances as kp ON r.performance_id= kp.performances_id LEFT JOIN kylin_performances as kp ON r.performance_id= kp.performances_id
where r.agent_id=#{agentId} and s.pay_status='1' GROUP BY r.performance_id where r.agent_id=#{agentId} and s.pay_status='1' AND (r.agent_distributions_master !=0 or r.agent_distributions!=0) GROUP BY r.performance_id
UNION ALL UNION ALL
select o.performance_title as 'title',r.performance_id as 'performanceId' ,SUM(r.agent_distributions_master * (o.price_actual-o.price_refund)) as 'commiss',kp.time_end as 'timeEnd' select o.performance_title as 'title',r.performance_id as 'performanceId' ,SUM(r.agent_distributions_master * (o.price_actual-o.price_refund)) as 'commiss',kp.time_end as 'timeEnd'
from (select * from kylin_order_tickets where created_at>DATE_SUB(CURDATE(), INTERVAL 6 MONTH)) as o from (select * from kylin_order_tickets where created_at>DATE_SUB(CURDATE(), INTERVAL 6 MONTH)) as o
LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id
LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id
LEFT JOIN kylin_performances as kp ON r.performance_id= kp.performances_id LEFT JOIN kylin_performances as kp ON r.performance_id= kp.performances_id
where r.agent_id_master=#{agentId} and s.pay_status='1' GROUP BY r.performance_id where r.agent_id_master=#{agentId} and s.pay_status='1' AND (r.agent_distributions_master !=0 or r.agent_distributions!=0) GROUP BY r.performance_id
) as c GROUP BY c.performanceId ) as c GROUP BY c.performanceId
</select> </select>
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
from (select * from kylin_order_tickets where created_at>DATE_SUB(CURDATE(), INTERVAL 6 MONTH)) as o from (select * from kylin_order_tickets where created_at>DATE_SUB(CURDATE(), INTERVAL 6 MONTH)) as o
LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id
LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id
where r.agent_id=#{agentId} and s.pay_status='1' where r.agent_id=#{agentId} and s.pay_status='1' AND (r.agent_distributions_master !=0 or r.agent_distributions!=0)
</select> </select>
<select id="getUserSellOneDate" parameterType="String" resultType="java.util.Map"> <select id="getUserSellOneDate" parameterType="String" resultType="java.util.Map">
select t.title as 'title',ticket_id as 'ticketId',(SUM(number)-SUM(refund_number)) as 'number',(SUM(o.price_actual)-SUM(o.price_refund)) as 'price',SUM(r.agent_distributions * (o.price_actual-o.price_refund)) as 'commiss',r.agent_distributions as 'paioTi' select t.title as 'title',ticket_id as 'ticketId',(SUM(number)-SUM(refund_number)) as 'number',(SUM(o.price_actual)-SUM(o.price_refund)) as 'price',SUM(r.agent_distributions * (o.price_actual-o.price_refund)) as 'commiss',r.agent_distributions as 'paioTi'
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id
LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id
LEFT JOIN kylin_tickets as t ON r.ticket_id=t.tickets_id LEFT JOIN kylin_tickets as t ON r.ticket_id=t.tickets_id
where r.agent_id=#{agentId} and r.performance_id=#{performanceId} and s.pay_status='1' GROUP BY r.ticket_id where r.agent_id=#{agentId} and r.performance_id=#{performanceId} AND (r.agent_distributions_master !=0 or r.agent_distributions!=0) and s.pay_status='1' GROUP BY r.ticket_id
</select> </select>
<select id="getUserSellAllDate" parameterType="String" resultType="java.util.Map"> <select id="getUserSellAllDate" parameterType="String" resultType="java.util.Map">
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id LEFT JOIN kylin_order_ticket_status as s on o.order_tickets_id=s.order_id
LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id LEFT JOIN kylin_order_ticket_relations as r ON o.order_tickets_id=r.order_id
LEFT JOIN kylin_tickets as t ON r.ticket_id=t.tickets_id LEFT JOIN kylin_tickets as t ON r.ticket_id=t.tickets_id
where r.agent_id=#{agentId} and r.performance_id=#{performanceId} and s.pay_status='1' GROUP BY r.ticket_id where r.agent_id=#{agentId} and r.performance_id=#{performanceId} AND (r.agent_distributions_master !=0 or r.agent_distributions!=0) and s.pay_status='1' GROUP BY r.ticket_id
) as c ) as c
</select> </select>
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
select o.user_mobile as 'mobile',o.order_code as 'orderId',(o.number-refund_number) as 'number',o.created_at as 'createTime' from kylin_order_tickets as o select o.user_mobile as 'mobile',o.order_code as 'orderId',(o.number-refund_number) as 'number',o.created_at as 'createTime' from kylin_order_tickets as o
LEFT JOIN kylin_order_ticket_status as s ON o.order_tickets_id=s.order_id LEFT JOIN kylin_order_ticket_status as s ON o.order_tickets_id=s.order_id
LEFT JOIN kylin_order_ticket_relations as r on o.order_tickets_id=r.order_id LEFT JOIN kylin_order_ticket_relations as r on o.order_tickets_id=r.order_id
where r.agent_id=#{agentId} and s.pay_status='1' and r.ticket_id=#{ticketId} and (o.number-refund_number)>0 where r.agent_id=#{agentId} and s.pay_status='1' AND (r.agent_distributions_master !=0 or r.agent_distributions!=0) and r.ticket_id=#{ticketId} and (o.number-refund_number)>0
</select> </select>
<select id="getCanRefundOrderList" parameterType="java.lang.String" <select id="getCanRefundOrderList" parameterType="java.lang.String"
...@@ -557,10 +557,12 @@ ...@@ -557,10 +557,12 @@
FROM FROM
kylin_order_ticket_relations AS kotr kylin_order_ticket_relations AS kotr
LEFT JOIN kylin_order_ticket_status AS kots ON kotr.order_id = kots.order_id LEFT JOIN kylin_order_ticket_status AS kots ON kotr.order_id = kots.order_id
WHERE kots.STATUS IN ( 1, 6 ,3 )
) AS kk ON kot.order_tickets_id = kk.order_id ) AS kk ON kot.order_tickets_id = kk.order_id
LEFT JOIN kylin_tickets AS kt ON kt.tickets_id = kk.ticket_id LEFT JOIN kylin_tickets AS kt ON kt.tickets_id = kk.ticket_id
WHERE WHERE
kk.agent_id != 0 kk.agent_id != 0
AND (kk.agent_distributions_master !=0 or kk.agent_distributions!=0)
AND kk.performance_id = #{performancesId} AND kk.performance_id = #{performancesId}
AND kk.ticket_id = #{ticketsId} AND kk.ticket_id = #{ticketsId}
</select> </select>
......
...@@ -105,11 +105,11 @@ ...@@ -105,11 +105,11 @@
<result column="refund_at" property="refundAt"/> <result column="refund_at" property="refundAt"/>
</resultMap> </resultMap>
<!-- <resultMap id="OrderExportDaoResult" type="com.liquidnet.service.kylin.dao.OrderExportDao">--> <!-- <resultMap id="OrderExportDaoResult" type="com.liquidnet.service.kylin.dao.OrderExportDao">-->
<!-- <result column="performance_title" property="performanceTitle"/>--> <!-- <result column="performance_title" property="performanceTitle"/>-->
<!-- <result column="user_mobile" property="userMobile"/>--> <!-- <result column="user_mobile" property="userMobile"/>-->
<!-- <result column="user_name" property="userName"/>--> <!-- <result column="user_name" property="userName"/>-->
<!-- </resultMap>--> <!-- </resultMap>-->
<resultMap id="PerformanceSimpleAllDaoResult" type="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao"> <resultMap id="PerformanceSimpleAllDaoResult" type="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao">
<result column="performances_id" property="performancesId"/> <result column="performances_id" property="performancesId"/>
...@@ -727,10 +727,12 @@ GROUP BY user_mobile,tickets_id; ...@@ -727,10 +727,12 @@ GROUP BY user_mobile,tickets_id;
kp.`comment`, kp.`comment`,
IFNULL( map.`open`, 0 ) AS OPEN, IFNULL( map.`open`, 0 ) AS OPEN,
IFNULL( map.price, 0 ) AS totalSalePrice, IFNULL( map.price, 0 ) AS totalSalePrice,
kps.`status` kps.`status`,
sa.type
FROM FROM
kylin_performances AS kp kylin_performances AS kp
LEFT JOIN kylin_performance_status AS kps ON kps.performance_id = kp.performances_id LEFT JOIN kylin_performance_status AS kps ON kps.performance_id = kp.performances_id
LEFT JOIN smile_agent AS sa ON sa.performance_id = kp.performances_id
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
kk.performance_id, kk.performance_id,
...@@ -756,14 +758,41 @@ GROUP BY user_mobile,tickets_id; ...@@ -756,14 +758,41 @@ GROUP BY user_mobile,tickets_id;
) AS kk ON kot.order_tickets_id = kk.order_id ) AS kk ON kot.order_tickets_id = kk.order_id
WHERE WHERE
kk.agent_id != 0 kk.agent_id != 0
AND (kk.agent_distributions_master !=0 or kk.agent_distributions!=0)
GROUP BY GROUP BY
kk.performance_id kk.performance_id
) AS map ON map.performance_id = kp.performances_id ) AS map ON map.performance_id = kp.performances_id
WHERE WHERE
kp.performances_id IN ( SELECT sa.performance_id FROM smile_agent AS sa WHERE sa.del_tag = 0 GROUP BY sa.performance_id ) kp.performances_id IN ( SELECT sa.performance_id FROM smile_agent AS sa WHERE sa.del_tag = 0 GROUP BY sa.performance_id )
GROUP BY
sa.performance_id
ORDER BY ORDER BY
kp.COMMENT DESC, kp.COMMENT DESC,
kp.time_start ASC kp.time_start DESC
</select>
<select id="getListAll" resultType="com.liquidnet.service.kylin.dao.report.KylinPerformancesDto">
SELECT
kp.performances_id AS performancesId,
kp.title,
kps.`status`,
sa.type
FROM
kylin_performances AS kp
LEFT JOIN kylin_performance_status AS kps ON kps.performance_id = kp.performances_id
LEFT JOIN smile_agent AS sa ON sa.performance_id = kp.performances_id
WHERE
kp.performances_id IN ( SELECT sa.performance_id FROM smile_agent AS sa WHERE sa.del_tag = 0 AND sa.type = 0
GROUP BY sa.performance_id )
AND sa.`type` = 0
<if test="title!=''">
AND kp.title LIKE concat('%', #{title}, '%')
</if>
GROUP BY
sa.performance_id
ORDER BY
kp.COMMENT DESC,
kp.time_start DESC
</select> </select>
<select id="selectTicketIdByPerId" resultType="com.liquidnet.service.kylin.dao.KylinPerformancesDao"> <select id="selectTicketIdByPerId" resultType="com.liquidnet.service.kylin.dao.KylinPerformancesDao">
......
...@@ -46,6 +46,11 @@ public class SmileAgent implements Serializable { ...@@ -46,6 +46,11 @@ public class SmileAgent implements Serializable {
*/ */
private BigDecimal ordCarry; private BigDecimal ordCarry;
/**
* 上下架 0:下架,1:上架
*/
private Integer type;
/** /**
* 删除标识 0未删除1已删除 * 删除标识 0未删除1已删除
*/ */
...@@ -58,4 +63,14 @@ public class SmileAgent implements Serializable { ...@@ -58,4 +63,14 @@ public class SmileAgent implements Serializable {
public BigDecimal getOrdCarry() { public BigDecimal getOrdCarry() {
return ordCarry; return ordCarry;
} }
private static final SmileAgent obj = new SmileAgent();
public static SmileAgent getNew() {
try {
return (SmileAgent) obj.clone();
} catch (CloneNotSupportedException e) {
return new SmileAgent();
}
}
} }
...@@ -96,7 +96,7 @@ public class SmileUser implements Serializable { ...@@ -96,7 +96,7 @@ public class SmileUser implements Serializable {
private String wechat; private String wechat;
/** /**
* 代理类型(0:未审核,1:总代,2:普代,3:未认证) * 代理类型(0:未审核,1:总代,2:普代,3:未认证,5:特邀代理
*/ */
private Integer type; private Integer type;
...@@ -184,4 +184,13 @@ public class SmileUser implements Serializable { ...@@ -184,4 +184,13 @@ public class SmileUser implements Serializable {
private LocalDateTime updatedDate; private LocalDateTime updatedDate;
private static final SmileUser obj = new SmileUser();
public static SmileUser getNew() {
try {
return (SmileUser) obj.clone();
} catch (CloneNotSupportedException e) {
return new SmileUser();
}
}
} }
...@@ -21,11 +21,23 @@ public class ShowBaseVoDto implements Serializable, Cloneable{ ...@@ -21,11 +21,23 @@ public class ShowBaseVoDto implements Serializable, Cloneable{
*/ */
private String city; private String city;
/**
* 手机号码
*/
private String phone;
private String idCard;
/** /**
* agentId * agentId
*/ */
private String agentId; private String agentId;
/**
* 总代姓名
*/
private String agentName;
/** /**
* 票提id * 票提id
*/ */
...@@ -37,6 +49,12 @@ public class ShowBaseVoDto implements Serializable, Cloneable{ ...@@ -37,6 +49,12 @@ public class ShowBaseVoDto implements Serializable, Cloneable{
*/ */
private BigDecimal price; private BigDecimal price;
/**
* 单价
*/
private Integer state;
/** /**
* 真实付款金额 * 真实付款金额
*/ */
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.smile.entity.SmileAgent; import com.liquidnet.service.smile.entity.SmileAgent;
import com.liquidnet.service.smile.entity.dao.SmileAgentDao; import com.liquidnet.service.smile.entity.dao.SmileAgentDao;
import com.liquidnet.service.smile.entity.dto.ShowBaseVoDto; import com.liquidnet.service.smile.entity.dto.ShowBaseVoDto;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -23,17 +24,13 @@ public interface SmileAgentMapper extends BaseMapper<SmileAgent> { ...@@ -23,17 +24,13 @@ public interface SmileAgentMapper extends BaseMapper<SmileAgent> {
void updateAgentById(@Param("id")Long id,@Param("totalCarry") BigDecimal totalCarry,@Param("ordCarry") BigDecimal ordCarry); void updateAgentById(@Param("id")Long id,@Param("totalCarry") BigDecimal totalCarry,@Param("ordCarry") BigDecimal ordCarry);
void insertAgent(@Param("performancesId") String performancesId, @Param("ticketId") String ticketId); List<Map<String,Object>> getUserOrgByPerIdAndUidAndAgentMaster(@Param("performancesId") String performancesId);
Map getUserDataByPerIdAndTicketsId(@Param("performancesId")String performancesId,@Param("uid") String uid,@Param("ticketId") String ticketId);
Map getUserOrgByPerIdAndUidAndAgentMaster(@Param("performancesId") String performancesId,@Param("uid") String uid,@Param("ticketId") String ticketId);
List<SmileAgentDao> selectAgentList(@Param("performancesId") String performancesId); List<SmileAgentDao> selectAgentList(@Param("performancesId") String performancesId);
List<SmileAgent> selectAgentCarryGtZeroByPerId(@Param("performancesId")String performancesId); List<SmileAgent> selectAgentCarryGtZeroByPerId(@Param("performancesId")String performancesId);
int selectCountPerId();
List<ShowBaseVoDto> selectMapByPerId(@Param("performancesId") String performancesId); List<ShowBaseVoDto> selectMapByPerId(@Param("performancesId") String performancesId);
void upTakeByPerId(@Param("perId") String perId,@Param("type") Integer type);
} }
...@@ -34,7 +34,7 @@ public interface SmileUserMapper extends BaseMapper<SmileUser> { ...@@ -34,7 +34,7 @@ public interface SmileUserMapper extends BaseMapper<SmileUser> {
void updateUserByUid(@Param("uid") String uid,@Param("orgId") Long orgId,@Param("type")Integer tag,@Param("agentId") String agentId); void updateUserByUid(@Param("uid") String uid,@Param("orgId") Long orgId,@Param("type")Integer tag,@Param("agentId") String agentId);
void updateUserStateById(@Param("uid") String uid,@Param("state") Integer state); void updateUserStateById(@Param("uid") String uid,@Param("state") Integer state,@Param("reason") String reason);
void updateUserCheckByUid(@Param("uid") String uid,@Param("type") Integer type,@Param("reason") String reason); void updateUserCheckByUid(@Param("uid") String uid,@Param("type") Integer type,@Param("reason") String reason);
int getCount(); int getCount();
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<select id="selectOrganizationList" parameterType="java.util.Map" resultType="com.liquidnet.service.smile.entity.SmileOrganization"> <select id="selectOrganizationList" parameterType="java.util.Map" resultType="com.liquidnet.service.smile.entity.SmileOrganization">
select * from smile_organization select * from smile_organization
<where> <where>
del_tag = 0
<if test="name!=''"> <if test="name!=''">
and `name` like concat('%',#{name},'%') and `name` like concat('%',#{name},'%')
</if> </if>
......
...@@ -161,6 +161,8 @@ public class GalaxyBeanTransferBiz { ...@@ -161,6 +161,8 @@ public class GalaxyBeanTransferBiz {
transferNftInfoBo.setSeriesId(null); transferNftInfoBo.setSeriesId(null);
transferNftInfoBo.setRouterType(reqDto.getRouterType()); transferNftInfoBo.setRouterType(reqDto.getRouterType());
transferNftInfoBo.setTransferStatus(GalaxyEnum.NftTransferStatusEnum.INIT.getCode()); transferNftInfoBo.setTransferStatus(GalaxyEnum.NftTransferStatusEnum.INIT.getCode());
transferNftInfoBo.setNftTransferTaskId(null);
transferNftInfoBo.setNftTransferChainTimestamp(null);
transferNftInfoBo.setTransferHash(null); transferNftInfoBo.setTransferHash(null);
transferNftInfoBo.setErrorCode(null); transferNftInfoBo.setErrorCode(null);
transferNftInfoBo.setErrorMsg(null); transferNftInfoBo.setErrorMsg(null);
...@@ -184,6 +186,7 @@ public class GalaxyBeanTransferBiz { ...@@ -184,6 +186,7 @@ public class GalaxyBeanTransferBiz {
respDto.setFromUserId(userInfoBo.getUserId()); respDto.setFromUserId(userInfoBo.getUserId());
respDto.setFromAddress(userInfoBo.getBlockChainAddress()); respDto.setFromAddress(userInfoBo.getBlockChainAddress());
respDto.setTransferTime(DateUtil.getNowTime()); respDto.setTransferTime(DateUtil.getNowTime());
respDto.setRouterType(transferNftInfoBo.getRouterType());
respDto.setTransferHash(transferNftInfoBo.getTransferHash()); respDto.setTransferHash(transferNftInfoBo.getTransferHash());
return respDto; return respDto;
} }
......
...@@ -545,8 +545,11 @@ public abstract class AbstractDataUtils { ...@@ -545,8 +545,11 @@ public abstract class AbstractDataUtils {
try{ try{
this.getQueueUtil().sendMySqlRedis( this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_nft_transfer_info.insert"), SqlMapping.get("galaxy_nft_transfer_info.insert"),
new Object[]{transferNftInfoBo.getTransOrderId(),transferNftInfoBo.getNftId(),transferNftInfoBo.getUserId(),transferNftInfoBo.getAddress(),transferNftInfoBo.getReceiveUserId(),transferNftInfoBo.getReceiveAddress(), new Object[]{transferNftInfoBo.getTransOrderId(),transferNftInfoBo.getNftId(),transferNftInfoBo.getUserId(),transferNftInfoBo.getAddress()
transferNftInfoBo.getOwnerUserId(),transferNftInfoBo.getOwnerAddress(),transferNftInfoBo.getTransferHash(),transferNftInfoBo.getSeriesId(),transferNftInfoBo.getRouterType(), ,transferNftInfoBo.getReceiveUserId(),transferNftInfoBo.getReceiveAddress()
,transferNftInfoBo.getOwnerUserId(),transferNftInfoBo.getOwnerAddress()
,transferNftInfoBo.getNftTransferTaskId(),transferNftInfoBo.getNftTransferChainTimestamp()
,transferNftInfoBo.getTransferHash(),transferNftInfoBo.getSeriesId(),transferNftInfoBo.getRouterType(),
transferNftInfoBo.getTransferStatus(),transferNftInfoBo.getErrorCode(),transferNftInfoBo.getErrorMsg(),transferNftInfoBo.getCreatedAt(),transferNftInfoBo.getUpdatedAt()} transferNftInfoBo.getTransferStatus(),transferNftInfoBo.getErrorCode(),transferNftInfoBo.getErrorMsg(),transferNftInfoBo.getCreatedAt(),transferNftInfoBo.getUpdatedAt()}
, MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey() , MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey()
); );
...@@ -583,8 +586,10 @@ public abstract class AbstractDataUtils { ...@@ -583,8 +586,10 @@ public abstract class AbstractDataUtils {
try{ try{
this.getQueueUtil().sendMySqlRedis( this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_nft_transfer_info.updateNftTransferInfo"), SqlMapping.get("galaxy_nft_transfer_info.updateNftTransferInfo"),
new Object[]{transferNftInfoBo.getOwnerUserId(),transferNftInfoBo.getOwnerAddress(),transferNftInfoBo.getTransferHash(), new Object[]{transferNftInfoBo.getOwnerUserId(),transferNftInfoBo.getOwnerAddress()
transferNftInfoBo.getTransferStatus(),transferNftInfoBo.getErrorCode(),transferNftInfoBo.getErrorMsg() ,transferNftInfoBo.getNftTransferTaskId(),transferNftInfoBo.getNftTransferChainTimestamp()
,transferNftInfoBo.getTransferHash()
,transferNftInfoBo.getTransferStatus(),transferNftInfoBo.getErrorCode(),transferNftInfoBo.getErrorMsg()
,transferNftInfoBo.getUpdatedAt(),transferNftInfoBo.getTransOrderId()} ,transferNftInfoBo.getUpdatedAt(),transferNftInfoBo.getTransOrderId()}
, MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey() , MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey()
); );
......
...@@ -11,7 +11,7 @@ galaxy_nft_trade_info.insert=insert into galaxy_nft_trade_info (user_id, nft_id, ...@@ -11,7 +11,7 @@ galaxy_nft_trade_info.insert=insert into galaxy_nft_trade_info (user_id, nft_id,
# ------------------------数字藏品发行购买失败记录---------------------------- # ------------------------数字藏品发行购买失败记录----------------------------
galaxy_nft_order_fail_log.insert=insert into galaxy_nft_order_fail_log (nft_order_pay_id, user_id, nft_id, nft_name, series_name, series_id,series_code, taskId, fail_reason_desc, fail_reason_desc_second, deal_with_status, trade_type,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) galaxy_nft_order_fail_log.insert=insert into galaxy_nft_order_fail_log (nft_order_pay_id, user_id, nft_id, nft_name, series_name, series_id,series_code, taskId, fail_reason_desc, fail_reason_desc_second, deal_with_status, trade_type,router_type, created_at, updated_at)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------数字藏品转让记录---------------------------- # ------------------------数字藏品转让记录----------------------------
galaxy_nft_transfer_info.insert=insert into galaxy_nft_transfer_info (trans_order_id,nft_id,user_id, address, receive_user_id, receive_address, owner_user_id,owner_address, transfer_hash, series_id, router_type, transfer_status, error_code,error_msg, created_at, updated_at) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) galaxy_nft_transfer_info.insert=insert into galaxy_nft_transfer_info (trans_order_id,nft_id,user_id, address, receive_user_id, receive_address, owner_user_id,owner_address,nft_transfer_task_id,nft_transfer_chain_timestamp,transfer_hash, series_id, router_type, transfer_status, error_code,error_msg, created_at, updated_at) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------更新用户注册信息---------------------------- # ------------------------更新用户注册信息----------------------------
galaxy_user_info.update=update galaxy_user_info set user_name = ?,id_card_type = ?,id_card = ?,mobile = ?,block_chain_address = ?,user_identification = ?,updated_at =? where router_type = ? and user_id = ? galaxy_user_info.update=update galaxy_user_info set user_name = ?,id_card_type = ?,id_card = ?,mobile = ?,block_chain_address = ?,user_identification = ?,updated_at =? where router_type = ? and user_id = ?
...@@ -34,4 +34,4 @@ galaxy_series_nft_info.updateSeriesNftPublishStatus=update galaxy_series_nft_inf ...@@ -34,4 +34,4 @@ galaxy_series_nft_info.updateSeriesNftPublishStatus=update galaxy_series_nft_inf
# ------------------------同步用户数字账户信息到adam--------------------------- # ------------------------同步用户数字账户信息到adam---------------------------
adam_user_busi_acct.add=INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `work`, ppwd, `state`, created_at) VALUES (?,?,?,?,?,?,?) adam_user_busi_acct.add=INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `work`, ppwd, `state`, created_at) VALUES (?,?,?,?,?,?,?)
# ------------------------更新nft转让信息---------------------------- # ------------------------更新nft转让信息----------------------------
galaxy_nft_transfer_info.updateNftTransferInfo=update galaxy_nft_transfer_info t set t.owner_user_id = ?,t.owner_address = ?,t.transfer_hash =?,t.transfer_status =?,t.error_code =?,t.error_msg =? ,t.updated_at =? where t.trans_order_id = ? galaxy_nft_transfer_info.updateNftTransferInfo=update galaxy_nft_transfer_info t set t.owner_user_id = ?,t.owner_address = ?,t.nft_transfer_task_id =?,t.nft_transfer_chain_timestamp =?,t.transfer_hash =?,t.transfer_status =?,t.error_code =?,t.error_msg =? ,t.updated_at =? where t.trans_order_id = ?
alter table galaxy_nft_transfer_info
add nft_transfer_task_id varchar(100) null comment 'nft转让任务id' after owner_address;
alter table galaxy_nft_transfer_info
add nft_transfer_chain_timestamp varchar(30) null comment 'nft转让时间' after nft_transfer_task_id;
...@@ -1157,7 +1157,7 @@ alter table goblin_user_digital_artwork ...@@ -1157,7 +1157,7 @@ alter table goblin_user_digital_artwork
alter table goblin_user_digital_artwork alter table goblin_user_digital_artwork
add transfer_order_id varchar(64) null comment '转赠订单号' after receiver_uid; add transfer_order_id varchar(64) null comment '转赠订单号' after receiver_uid;
alter table goblin_user_digital_artwork alter table goblin_user_digital_artwork
add transfer_state varchar(20) null comment '转赠状态[PENDING|SUCCESS]' after transfer_order_id; add transfer_state varchar(20) null comment '转赠状态[WAITING|PENDING|SUCCESS]' after transfer_order_id;
alter table goblin_user_digital_artwork alter table goblin_user_digital_artwork
modify source tinyint null comment '获得方式[1-购买|2-兑换|3-赠送|5-大美|6-转赠|31-空投赠送]'; modify source tinyint null comment '获得方式[1-购买|2-兑换|3-赠送|5-大美|6-转赠|31-空投赠送]';
...@@ -1188,7 +1188,24 @@ create table goblin_nft_transfer_order ...@@ -1188,7 +1188,24 @@ create table goblin_nft_transfer_order
comment varchar(500) comment varchar(500)
) engine = InnoDB comment '藏品转赠订单记录'; ) engine = InnoDB comment '藏品转赠订单记录';
create unique index uidx_gnto_order_id on goblin_nft_transfer_order (order_id); create unique index uidx_gnto_order_id on goblin_nft_transfer_order (order_id);
# -- >>------------------------------------------------------------------------------------ # -- >>------------------------------------------------------------------------------------ |20221101补充缺失SQL(生产环境已存在表结构)
create table goblin_goods_anticipate_mix
(
mid varchar(255) not null primary key comment '主键ID',
uid varchar(255) not null comment '用户uid',
phone varchar(255) not null comment '用户手机号',
mix_id varchar(255) not null comment 'mix id',
state int(1) default 0 not null comment '状态(0:正常(默认))',
created_date datetime null comment '创建时间'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci comment '用户mix预约记录';
# -- >>------------------------------------------------------------------------------------ |20221110商品导入扫码
alter table goblin_goods modify spu_no varchar(64) not null comment '商品编码';
alter table goblin_goods add spu_bar_code varchar(64) null comment '商品条码' after spu_no;
alter table goblin_goods add spu_erp_code varchar(64) null comment 'ERP商品编码' after spu_bar_code;
alter table goblin_goods_sku modify sku_no varchar(64) not null comment '单品编码';
alter table goblin_goods_sku add sku_bar_code varchar(64) null comment '单品条码' after sku_no;
alter table goblin_goods_sku add sku_erp_code varchar(64) null comment 'ERP单品编码' after sku_bar_code;
# -- >>------------------------------------------------------------------------------------ # -- >>------------------------------------------------------------------------------------
# -- >>------------------------------------------------------------------------------------ # -- >>------------------------------------------------------------------------------------
# -- >>------------------------------------------------------------------------------------ # -- >>------------------------------------------------------------------------------------
......
...@@ -62,11 +62,11 @@ public class GalaxyRouterStrategyZxlTradeImpl implements IGalaxyRouterStrategyTr ...@@ -62,11 +62,11 @@ public class GalaxyRouterStrategyZxlTradeImpl implements IGalaxyRouterStrategyTr
@Override @Override
public ResponseDto<GalaxyNftTransferRespDto> nftTransfer(GalaxyNftTransferReqDto reqDto) { public ResponseDto<GalaxyNftTransferRespDto> nftTransfer(GalaxyNftTransferReqDto reqDto) {
return null; return zxinTradeBiz.nftTransfer(reqDto);
} }
@Override @Override
public ResponseDto<GalaxyNftTransferQueryRespDto> nftTransferQuery(GalaxyNftTransferQueryReqDto reqDto) { public ResponseDto<GalaxyNftTransferQueryRespDto> nftTransferQuery(GalaxyNftTransferQueryReqDto reqDto) {
return null; return zxinTradeBiz.nftTransferQuery(reqDto);
} }
} }
...@@ -87,7 +87,8 @@ public class GoblinPosController { ...@@ -87,7 +87,8 @@ public class GoblinPosController {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "店铺不存在"); return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "店铺不存在");
} }
String storeId = storeInfoVo.getStoreId(); String storeId = storeInfoVo.getStoreId();
skuids = skuids.replaceAll("\"", ""); skuids = skuids.replaceFirst("skuids","").replaceAll("[\":{}]", "");
String[] skuIdArr = skuids.split(","); String[] skuIdArr = skuids.split(",");
List<GoblinPosGoodsVo> posGoodsVoList = ObjectUtil.getGoblinPosGoodsVoArrayList(); List<GoblinPosGoodsVo> posGoodsVoList = ObjectUtil.getGoblinPosGoodsVoArrayList();
for (String skuId : skuIdArr) { for (String skuId : skuIdArr) {
......
...@@ -43,7 +43,7 @@ import static com.liquidnet.service.goblin.constant.GoblinRedisConst.REDIS_GOBLI ...@@ -43,7 +43,7 @@ import static com.liquidnet.service.goblin.constant.GoblinRedisConst.REDIS_GOBLI
@Component @Component
public class GoblinRedisUtils { public class GoblinRedisUtils {
@Autowired @Autowired
RedisUtil redisUtil; public RedisUtil redisUtil;
@Autowired @Autowired
GoblinMongoUtils goblinMongoUtils; GoblinMongoUtils goblinMongoUtils;
@Autowired @Autowired
......
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