记得上下班打卡 | 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;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.JsonUtils;
import lombok.Data;
......@@ -15,6 +16,7 @@ import java.io.Serializable;
* @date 2022/8/12 13:36
*/
@Data
@JsonIgnoreProperties(value = {"nftOrderPayId", "nftOrderPayId2"}, ignoreUnknown = true)
public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{
/**
* 转让流水号(平台转让订单id)
......@@ -48,6 +50,14 @@ public class GalaxyTransferNftInfoBo implements Serializable,Cloneable{
* nft当前拥有者addr(转让成功后更新)
*/
private String ownerAddress;
/**
* nft转让任务ID
*/
private String nftTransferTaskId;
/**
* nft转让时间
*/
private String nftTransferChainTimestamp;
/**
* 转让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 {
@Size(max = 50, message = "物流模版ID过长")
private String logisticsTemplate;
@ApiModelProperty(position = 26, required = false, value = "商品编码[默认为系统编码,也可手动输入商家自己的编码]")
@Size(max = 50, message = "商品编码过长")
@Pattern(regexp = LnsRegex.Valid.ALPHABET_NUMBER_UNDER_50, message = "商品编码格式或长度有误")
private String spuNo;
/**
......@@ -263,7 +263,16 @@ public class GoblinStoreMgtGoodsAddParam implements Serializable {
skuInfoVo.setSkuId(skuId);
}
skuInfoVo.setSpuId(goodsInfoVo.getSpuId());
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.setSubtitle(goodsInfoVo.getSubtitle());
skuInfoVo.setSkuPic(addSkuParam.getSkuPic());
......
......@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
......@@ -21,6 +18,12 @@ public class GoblinStoreMgtGoodsAddSkuParam implements Serializable {
private static final long serialVersionUID = 6657596593310537491L;
@ApiModelProperty(position = 10, required = false, value = "单品ID[编辑时必传]")
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]")
@NotBlank(message = "单品图片不能为空")
private String skuPic;
......
......@@ -27,6 +27,12 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable {
private String spuId;
@ApiModelProperty(position = 12, required = false, value = "单品ID[编辑时必传]")
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]")
@NotNull(message = "单品默认图片不能为空")
@Size(max = 256, message = "单品默认图片URL过长")
......@@ -93,6 +99,7 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable {
goodsSkuInfoVo.setSkuSpecList(mgtGoodsSkuInfoVo.getSkuSpecList());
}
goodsSkuInfoVo.setSkuId(this.getSkuId());
goodsSkuInfoVo.setSkuBarCode(this.getSkuBarCode());
goodsSkuInfoVo.setSkuPic(this.getSkuPic());
goodsSkuInfoVo.setSellPrice(null == this.getSellPrice() ? mgtGoodsSkuInfoVo.getSellPrice() : this.getSellPrice());
goodsSkuInfoVo.setPrice(this.getPrice());
......
......@@ -28,6 +28,9 @@ public class GoblinFrontGoodDetailVo implements Serializable {
@ApiModelProperty(value = "商品可参与券类型")
ArrayList<String> getSpuType;
@ApiModelProperty(value = "条码识别到的SKUID列表", notes = "仅当条码识别时有效")
private List<String> hitSkuIdList;
private static final long serialVersionUID = 1L;
private static final GoblinFrontGoodDetailVo obj = new GoblinFrontGoodDetailVo();
......
......@@ -22,8 +22,12 @@ public class GoblinGoodsInfoVo implements Serializable, Cloneable {
private String storeId;
@ApiModelProperty(position = 11, value = "商品ID[64]")
private String spuId;
@ApiModelProperty(position = 12, value = "商品编码[默认为系统编码,也可手动输入商家自己的编码]")
@ApiModelProperty(position = 12, value = "商品编码[50]默认为系统编码,也可手动输入商家自己的编码")
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-数字藏品]")
private int spuType;
@ApiModelProperty(position = 13, value = "商品名称[100]")
......
......@@ -23,8 +23,12 @@ public class GoblinGoodsSkuInfoVo implements Serializable, Cloneable {
private String skuId;
@ApiModelProperty(position = 11, value = "商品ID[64]")
private String spuId;
@ApiModelProperty(position = 12, value = "单品的编号[45]")
@ApiModelProperty(position = 12, value = "单品的条码[50]默认为系统编码,也可手动输入商家自己的编码")
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-数字藏品]")
private int skuType;
@ApiModelProperty(position = 13, value = "单品的名称[100]")
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.dto.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.entity.GoblinOrderSku;
import io.swagger.annotations.ApiModelProperty;
......@@ -26,6 +27,7 @@ import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS;
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinOrderSkuVo implements Serializable, Cloneable {
@ApiModelProperty(value = "订单sku_id")
......
......@@ -4,6 +4,7 @@ import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
public class GoblinPayInnerResultVo implements Serializable, Cloneable {
......@@ -19,6 +20,7 @@ public class GoblinPayInnerResultVo implements Serializable, Cloneable {
private BigDecimal price;
private Object payData;
private String msg;
private List<String> orderCodeList;
public String getMsg() {
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{
private String deviceFrom;
private String authCode;
@ApiModelProperty(required = true, value = "支付方式[pos_crash-现金支付|]")
private String payType;
private String openId;
private String returnUrl;
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinAppOrderListVo;
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 java.util.List;
......@@ -19,9 +20,12 @@ public interface IGoblinStoreZhengzaiService {
/**
* 正在下单 商铺参与活动的商品列表
* @param marketId
* @param keyword 搜索关键字,支持搜索`SPU名称`
* @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);
......
package com.liquidnet.service.kylin.dto.vo.mongo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
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.KylinTicketVo;
import com.liquidnet.service.kylin.entity.KylinFields;
import com.liquidnet.service.kylin.entity.KylinPerformanceRelations;
import com.liquidnet.service.kylin.entity.KylinPerformanceStatus;
......@@ -18,7 +20,8 @@ import java.util.List;
@ApiModel
@Data
public class KylinPerformanceVo implements Serializable, Cloneable{
@JsonIgnoreProperties(ignoreUnknown = true)
public class KylinPerformanceVo implements Serializable, Cloneable {
private Integer mid;
@ApiModelProperty(value = "主键")
......@@ -106,8 +109,12 @@ public class KylinPerformanceVo implements Serializable, Cloneable{
@ApiModelProperty(value = "场次")
private List<KylinTicketTimesVo> ticketTimeList;
@ApiModelProperty(value = "是否开启分销[0-否|1-是]")
private Integer isAgent;
@ApiModelProperty(value = "分销人名称")
private String agentName;
@ApiModelProperty(value = "0正常、1黑名单")
private Integer state;
@ApiModelProperty(value = "注册时间")
private String createdAt;
......@@ -133,7 +140,7 @@ public class KylinPerformanceVo implements Serializable, Cloneable{
private Integer fieldAuditStatus;
public Integer getIdCount() {
return idCount==null?limitCount:idCount;
return idCount == null ? limitCount : idCount;
}
private static final KylinPerformanceVo obj = new KylinPerformanceVo();
......@@ -272,4 +279,16 @@ public class KylinPerformanceVo implements Serializable, Cloneable{
this.roadShowId = performanceRelations.getRoadShowId();
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;
import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolationException;
import org.apache.shiro.authz.AuthorizationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
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.servlet.ModelAndView;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
......@@ -105,6 +109,24 @@ public class GlobalExceptionHandler
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
return smilePrefix + "/userList/list";
}
@GetMapping("/smileDetail") // 用户详情
public String smileDetail()
{
return smilePrefix + "/userList/detail";
}
public String smileDetail() { return smilePrefix + "/userList/detail"; }
@GetMapping("/specialDetail") // 特邀用户详情
public String specialDetail() { return smilePrefix + "/userList/specialDetail"; }
@GetMapping("/blackList") // 黑名单管理
public String blackList() { return smilePrefix + "/blackList/blackList"; }
@GetMapping("/smilePending") // 待审核列表
public String smilePending()
{
......@@ -232,4 +232,10 @@ public class LocalAdminController extends BaseController
mmap.put("platformUrl", platformUrl);
return ybPrefix + "/creatAndEdit";
}
@GetMapping("/smileUserListAdd") // 关联活动-编辑
public String smileUserListAdd()
{
return smilePrefix + "/userList/add";
}
}
......@@ -47,8 +47,12 @@ public class GoblinSelfCategoryAdminController extends BaseController {
@RequestMapping("list")
@ResponseBody
public TableDataInfo list() {
PageHelper.startPage(0, 1000, "mid");
return getDataTable(goblinSelfGoodsCategoryService.listForMultiGrade());
// PageHelper.startPage(0, 1000, "mid");
// return getDataTable(goblinSelfGoodsCategoryService.listForMultiGrade());
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
rspData.setRows(goblinSelfGoodsCategoryService.listForMultiGrade());
return rspData;
}
@ApiOperation(value = "筛选")
......@@ -130,9 +134,9 @@ public class GoblinSelfCategoryAdminController extends BaseController {
if (catePidObj.getName().equals(name.trim())) {
return AjaxResult.warn("分类名称与父级分类重复,请核实");
}
if (goblinSelfGoodsCategoryService.countForMatchName(catePid, name.trim()) > 0) {
return AjaxResult.warn("分类名称重复,请核实");
}
// if (goblinSelfGoodsCategoryService.countForMatchName(catePid, name.trim()) > 0) {
// return AjaxResult.warn("分类名称重复,请核实");
// }
break;
case "3":
queryWrapper.eq(GoblinSelfGoodsCategory::getCateId, catePid).eq(GoblinSelfGoodsCategory::getGrade, "2");
......@@ -140,12 +144,12 @@ public class GoblinSelfCategoryAdminController extends BaseController {
if (null == catePidObj) {
return AjaxResult.warn("父级分类无效");
}
if (catePidObj.getName().equals(name.trim())) {
return AjaxResult.warn("分类名称与父级分类重复,请核实");
}
if (goblinSelfGoodsCategoryService.countForMatchName(catePidObj.getCatePid(), name.trim()) > 0) {
return AjaxResult.warn("分类名称重复,请核实");
}
// if (catePidObj.getName().equals(name.trim())) {
// return AjaxResult.warn("分类名称与父级分类重复,请核实");
// }
// if (goblinSelfGoodsCategoryService.countForMatchName(catePidObj.getCatePid(), name.trim()) > 0) {
// return AjaxResult.warn("分类名称重复,请核实");
// }
break;
default:
return AjaxResult.warn("分类层级无效");
......
......@@ -48,7 +48,6 @@ public class SmileOrganizationController {
@ResponseBody
public AjaxResult updateOrg(@RequestBody SmileOrganization smileOrganization){
return smileOrganizationService.update(smileOrganization);
}
@PostMapping("/getOrgById")
......@@ -58,5 +57,4 @@ public class SmileOrganizationController {
SmileOrgAndUserVo orgById = smileOrganizationService.getOrgById(id);
return AjaxResult.success(orgById);
}
}
......@@ -22,7 +22,6 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
/**
* @author TT
......@@ -61,13 +60,6 @@ public class SmileShowBaseController extends BaseController {
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
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);
} catch (IOException e) {
......
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.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.SmilePriceParam;
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.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformancesVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
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
*/
......@@ -30,10 +34,17 @@ public class SmileShowController {
@PostMapping("/list")
@ApiOperation("演出列表")
@ResponseBody
public TableDataInfo schoolList(SmileShowParam smileShowParam) {
public TableDataInfo list(SmileShowParam smileShowParam) {
return smileShowService.listShow(smileShowParam);
}
@GetMapping("/listAll")
@ApiOperation("特邀代理获取可代理的演出列表")
@ResponseBody
public ResponseDto<List<KylinPerformancesVo>> listAll(String title) {
return smileShowService.listAll(title);
}
@GetMapping("/getShowById")
@ApiOperation("根据演出id查询演出详情")
public AjaxResult getShowById(String performancesId) {
......@@ -46,6 +57,13 @@ public class SmileShowController {
return smileShowService.sort(showSort);
}
@PutMapping("/upTakeByPerId")
@ApiOperation("演出上下架[1:下架,0:上架]")
public AjaxResult upTakeByPerId(@RequestBody TakeByPerId takeByPerId) {
return smileShowService.upTakeByPerId(takeByPerId.getPerId(), takeByPerId.getType());
}
@PostMapping("/price")
@ApiOperation("个人打款打款")
public AjaxResult price(@RequestBody SmilePriceParam smilePriceParam) {
......@@ -60,7 +78,7 @@ public class SmileShowController {
@GetMapping("/updateRedis")
@ApiOperation("修改原保存演出id的数据类型,分支dev_0507kids 部署完执行接口(演出列表重复问题修复也可以运行此接口)")
public AjaxResult updateRedis(){
public AjaxResult updateRedis() {
return smileShowService.updateRedis();
}
......
package com.liquidnet.client.admin.web.controller.zhengzai.smile;
import com.alibaba.druid.support.json.JSONUtils;
import com.github.pagehelper.PageHelper;
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.domain.AjaxResult;
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.service.ISmileUserService;
import com.liquidnet.service.smile.entity.SmileUser;
import com.liquidnet.service.smile.entity.dao.SmileUserCheckDao;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.InputStream;
......@@ -41,8 +46,15 @@ public class SmileUserController extends BaseController {
@ApiOperation(value = "获取用户列表")
@ResponseBody
public TableDataInfo userList(SmileUserParam smileUserParam) {
TableDataInfo rspData = iSmileUserService.userList(smileUserParam);
return rspData;
PageHelper.startPage(smileUserParam.getPageNum(), smileUserParam.getPageSize());
return getDataTable(iSmileUserService.userList(smileUserParam));
}
@GetMapping("/getList")
@ApiOperation(value = "获取用户列表")
@ResponseBody
public AjaxResult getList(String phone) {
return AjaxResult.success(iSmileUserService.getList(phone));
}
@PostMapping("/getUserById")
......@@ -61,13 +73,6 @@ public class SmileUserController extends BaseController {
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")
@ApiOperation("获取审核列表")
@ResponseBody
......@@ -87,16 +92,49 @@ public class SmileUserController extends BaseController {
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")
@ApiOperation("省市区json")
@ResponseBody
public AjaxResult getAreaJson(){
public AjaxResult getAreaJson() {
String jsonStr = "";
try {
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");
if (inputStream != null){
if (inputStream != null) {
Reader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
int ch = 0;
StringBuilder sb = new StringBuilder();
......
......@@ -88,45 +88,6 @@
height: 30px;
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 {
display: none;
}
......@@ -140,6 +101,16 @@
#valOver, #valMinus {
margin: 0 12px;
}
.search_ipt {
width: 200px !important;
display: inline-block;
}
.scope_application {
display: flex;
}
.scope_application .input-group-btn {
top: 33px;
}
</style>
</head>
<body>
......@@ -164,9 +135,12 @@
</div>
<div class="scope_application" id="scope_application">
<span class="labelName">适用范围:</span>
<div class="search_ipt" style="position: relative;display: inline;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部">
<ul id="dataList" style="position: absolute;" onclick="selectGoods()"></ul>
<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>
<select name="bindType" id="selectTwo" hidden>
<option value="">所有</option>
......@@ -259,55 +233,39 @@
let selectThreeName = ''; // 选中演出三级的名称
let sendTimeType = '';
let playMethod = '0'; // 叠加/限制
function search() {
$("#searchIpt").bsSuggest('init', {
idField: 'performancesId', // data.value 的第几个数据,作为input输入框的内容
keyField: 'title', // data.value 的第几个数据,作为input输入框的内容
allowNoKeyword: false, //是否允许无关键字时请求数据
showBtn: false,
multiWord: true, //以分隔符号分割的多关键字支持
hideOnSelect: true,
getDataMethod: "url", //获取数据的方式,总是从 URL 获取
effectiveFields: ['title'],
url: ctx+'kylin/base/performance/status?status=(3,6,8,9)&title=',
/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
let data = {
status: '(3,6,8,9)',
title: searchVal
}
let str = '';
promiseMethods(ctx+'kylin/base/performance/status','get',data,'application/x-www-form-urlencoded').then(res=>{
if (res.value.length>0) {
searchData = [...res.value];
value: []
};
searchData = [...json.value];
let obj = {};
searchData.reduce((cur,next) => {
if (!obj[next.performancesId]) {
obj[next.performancesId] = true
str+= `<li class="selectData" onclick="selectOne('${next.performancesId}','performancesId')">${next.title}</li>`
data.value.push(next)
}
},[]) //设置cur默认类型为数组,并且初始值为空的数组
$('#dataList').html(str);
} else {
$('#dataList').html('<li style="width:100%;text-align:center;color:#ccc;">--- 暂无数据 ---</li>');
}
})
};
function getMallList() {
let data = {
name: ''
}
let str = '';
promiseMethods('/compilations/goodsList','get',data).then(res=>{
if (res.data.length>0) {
searchData = [...res.data];
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>');
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) {
searchData.some(item => {
if (item[name] == id) {
return $("#searchIpt").val(item.title);
}
})
showId = id;
if (typeOne == 2) {
return
}
let str = `<option value="" label="">所有</option>`;
searchData.forEach(item=>{
if (item.performancesId == id) {
......@@ -319,26 +277,6 @@
$('#selectTwo').empty().append(str);
$('#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){
selectTwoId = $(this).val();
......
......@@ -88,44 +88,15 @@
height: 30px;
width: 200px;
}
.search_ipt ul,.search_ipt li{
padding: 0;
margin: 0;
font-style: normal;
list-style: none;
.search_ipt, .search_ipt2 {
width: 200px !important;
display: inline-block;
}
.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;
.scope_application {
display: flex;
}
.scope_application .input-group-btn {
top: 33px;
}
#test1 {
display: none;
......@@ -171,9 +142,23 @@
</div>
<div class="scope_application" id="scope_application">
<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="全部">
<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>
<select name="bindType" id="selectTwo">
<option value="">所有</option>
......@@ -267,6 +252,68 @@
let selectThreeName = ''; // 选中演出三级的名称
let sendTimeType = '';
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() {
let data = {
status: '(3,6,8,9)',
......@@ -337,31 +384,6 @@
$('#selectTwo').empty().append(str);
$('#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){
selectTwoId = $(this).val();
......@@ -382,45 +404,33 @@
$("input[name=typeOne]").change(function(e){
typeOne = e.target.value;
if (typeOne == 1) {
$('#scope_application').show();
$(".search_ipt").show();
$(".search_ipt2").hide();
$("#searchIpt").val('');
$("#searchIpt").attr('placeholder', '全部');
}
if (typeOne != 0) {
showId = ''; // 选中演出id
$('#selectTwo').show().val('').empty();
$('#selectThree').show().val('').empty();
common (1)
} else if (typeOne == 2) {
showId = '';
selectTwoId = ''; // 选中演出下级的ID
selectThreeId = ''; // 选中演出三级的ID
$('#scope_application').show();
$(".search_ipt").hide();
$(".search_ipt2").show();
$("#searchIpt2").val('');
$('#selectTwo').hide();
$('#selectThree').hide();
common (0)
} else {
$('#searchIpt').val('');
$('#selectTwo').empty();
$('#selectThree').empty('');
$('#scope_application').hide();
}
if (typeOne == 2 || typeOne == 3) {
showId = '';
$('#selectTwo').val('');
$('#selectThree').val('');
selectTwoId = ''; // 选中演出下级的ID
selectThreeId = ''; // 选中演出三级的ID
$(".search_ipt").hide();
$(".search_ipt2").hide();
$('#selectTwo').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){
......@@ -522,14 +532,12 @@
// busiName = selectThreeName;
}
if (typeOne == 2) {
if (showId) {
useScope = 80;
busiId = showId;
}
busiName = $("#searchIpt").val() || '全部商品';
busiId = goodsId;
busiName = $("#searchIpt2").val() || '全部商品';
}
if (typeOne == 0) {
busiName = $("#searchIpt").val() || '全场适用';
busiName = '全场适用';
}
if (typeOne == 3) {
if (showId) {
......
......@@ -88,45 +88,6 @@
height: 30px;
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 {
display: none;
}
......@@ -143,6 +104,16 @@
#showNum {
display: none;
}
.search_ipt {
width: 200px !important;
display: inline-block;
}
.scope_application {
display: flex;
}
.scope_application .input-group-btn {
top: 33px;
}
</style>
</head>
<body>
......@@ -152,11 +123,18 @@
</div>
<div class="scope_application" id="scope_application">
<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="全部">
<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>
<select name="bindType" id="selectTwo">
<select name="bindType" id="selectTwo" style="margin-right: 12px;">
<option value="">所有</option>
</select>
<select name="bindType" id="selectThree">
......@@ -210,28 +188,37 @@
let selectTwoName = ''; // 选中演出下级的名称
let selectThreeId = ''; // 选中演出三级的ID
let selectThreeName = ''; // 选中演出三级的名称
function search() {
$("#searchIpt").bsSuggest('init', {
idField: 'performancesId', // data.value 的第几个数据,作为input输入框的内容
keyField: 'title', // data.value 的第几个数据,作为input输入框的内容
allowNoKeyword: false, //是否允许无关键字时请求数据
showBtn: false,
multiWord: true, //以分隔符号分割的多关键字支持
hideOnSelect: true,
getDataMethod: "url", //获取数据的方式,总是从 URL 获取
effectiveFields: ['title'],
url: ctx+'kylin/base/performance/status?status=(3,6,8,9)&title=',
/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
let data = {
status: '(3,6,8,9)',
title: searchVal
}
let str = '';
promiseMethods(ctx+'kylin/base/performance/status','get',data,'application/x-www-form-urlencoded').then(res=>{
if (res.value.length>0) {
searchData = [...res.value];
value: []
};
searchData = [...json.value];
let obj = {};
searchData.reduce((cur,next) => {
if (!obj[next.performancesId]) {
obj[next.performancesId] = true
str+= `<li class="selectData" onclick="selectOne('${next.performancesId}','performancesId')">${next.title}</li>`
data.value.push(next)
}
},[]) //设置cur默认类型为数组,并且初始值为空的数组
$('#dataList').html(str);
} else {
$('#dataList').html('<li style="width:100%;text-align:center;color:#ccc;">--- 暂无数据 ---</li>');
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) {
searchData.some(item => {
if (item[name] == id) {
......@@ -258,23 +245,6 @@
$('#selectTwo').empty().append(str);
$('#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){
selectTwoId = $(this).val();
......
......@@ -91,45 +91,6 @@
height: 30px;
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 {
font-style: normal;
color: red;
......@@ -137,6 +98,16 @@
#iptModal {
display: none;
}
.search_ipt {
width: 200px !important;
display: inline-block;
}
.scope_application {
display: flex;
}
.scope_application .input-group-btn {
top: 33px;
}
</style>
</head>
<body>
......@@ -161,9 +132,12 @@
</div>
<div class="scope_application" id="scope_application">
<span class="labelName">适用范围:</span>
<div class="search_ipt" style="position: relative;display: inline;">
<input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部">
<ul id="dataList" style="position: absolute;" onclick="selectGoods()"></ul>
<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>
<div class="discount">
......@@ -235,29 +209,30 @@
let searchData = []; // 搜索总数据
let showId = ''; // 选中演出id
let sendTimeType = '';
function getMallList() {
$("#searchIpt").bsSuggest('init', {
idField: 'spuId', // data.value 的第几个数据,作为input输入框的内容
keyField: 'name', // data.value 的第几个数据,作为input输入框的内容
allowNoKeyword: false, //是否允许无关键字时请求数据
showBtn: false,
multiWord: true, //以分隔符号分割的多关键字支持
hideOnSelect: true,
getDataMethod: "url", //获取数据的方式,总是从 URL 获取
effectiveFields: ['name'],
url: '/compilations/goodsList?name=',
/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
let data = {
name: $('#searchIpt').val()
}
let str = '';
promiseMethods('/compilations/goodsList','get',data).then(res=>{
if (res.data.length>0) {
searchData = [...res.data];
searchData.forEach((item,index)=>{
str+= `<li class="selectData" onclick="selectOne('${item.spuId}','${item.name}')">${item.name}</li>`
})
$('#dataList').html(str);
} else {
$('#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) {
searchData.some(item => {
if (item.spuId == id) {
return $("#searchIpt").val(item.name);
}
})
showId = id;
};
$("input[name=typeTwo]").change(function(e){
......@@ -287,22 +262,6 @@
$('#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){
sendType = e.target.value;
if (e.target.value == 2) {
......
......@@ -208,6 +208,7 @@
removeUrl: prefix + "/rmv/{id}",
sortName: "mid",
modalName: "商品分类",
pagination: false,
// onCheck: onCheck,
columns: [{
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 @@
var options = {
url: prefix + "/list",
modalName: "学校列表",
showSearch: false,
columns: [{
checkbox: true
},
......
......@@ -61,6 +61,10 @@
showColumns: false,
sidePagination: "client",
columns: [
{
field: 'title',
title: '票种名'
},
{
field: 'totalCarry',
title: '总代票提',
......
......@@ -105,6 +105,7 @@
modalName: "销售数据",
url: smilePrefix + "/list",
detailUrl: smilePrefix + "/base/saleData/{id}",
showSearch: false,
columns: [{
checkbox: true
},
......@@ -161,10 +162,15 @@
align: 'center',
formatter: function (value, row, index) {
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="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="$.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('');
}
}]
......@@ -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) {
window.localStorage.setItem('performancesId', id);
......
......@@ -27,7 +27,7 @@
<td>票种名称</td>
<td>总代票提</td>
<td>普代票提</td>
<tr/>
</tr>
<div th:each="item : *{showAgentVoList}">
<tr class="content-tr">
<td th:text="${item.title}">
......@@ -48,6 +48,9 @@
<td>姓名</td>
<td>所属地区</td>
<td>身份</td>
<td>证件号</td>
<td>联系电话</td>
<td>总代姓名</td>
<div th:each="item : *{showAgentVoList}">
<td th:text="${item.title}"></td>
</div>
......@@ -55,21 +58,29 @@
<td>总销售金额</td>
<td>总销售佣金</td>
<td>打款状态</td>
<td>是否黑名单</td>
<td>操作</td>
<tr/>
</tr>
<div th:each="item : *{userDataList}">
<tr class="content-tr">
<!-- <td th:text="${item}"></td> -->
<td th:text="${item.username}"></td>
<td th:text="${item.cityName}"></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==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:text="${#aggregates.sum(item.dataAgentVos.![number])}"></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.state==0}" th:text="否"></td>
<td th:if="${item.state==1}" th:text="是"></td>
<td th:if="${item.priceStatus!=0}">
<button type="button" class="btn btn-success btn-xs"
th:onclick="submitHandler([[${item.uid}]])">
......@@ -90,7 +101,7 @@
$("#form-transfer-edit").validate({
focusCleanup: true
});
console.log('[[${saleDataVo}]]', '????')
function submitHandler(uid) {
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 @@
<!-- <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i-->
<!-- class="fa fa-refresh"></i>&nbsp;重置</a>-->
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="create()"><i
class="fa"></i>创建特邀代理</a>
</li>
</ul>
</div>
</form>
......@@ -31,10 +35,31 @@
</div>
<th:block th:include="include :: footer"/>
<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 smilePrefix = ctx + "smile/user";
console.log(smilePrefix);
var performancesId = null
// // createUrl: prefix + "/add",
// // updateUrl: prefix + "/edit/{id}",
// // removeUrl: prefix + "/remove",
......@@ -68,8 +93,10 @@
formatter: function(value, row, index) {
if (value == 1) {
return '男';
} else {
} else if (value == 2){
return '女';
}else {
return '-';
}
}
},
......@@ -104,10 +131,23 @@
field: 'type',
title: '类型',
formatter: function(value, row, index) {
if (value == 1) {
if (value === 1) {
return '总代';
} else {
} else if(value === 2){
return '普代';
}else{
return '特邀代理'
}
}
},
{
field: 'state',
title: '状态',
formatter: function(value, row, index) {
if (value === 0) {
return '正常';
} else {
return '黑名单';
}
}
},
......@@ -116,19 +156,109 @@
align: 'center',
formatter: function(value, row, index) {
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('');
}
}]
};
$.table.init(options);
console.log(options)
});
function goDetail (id) {
var url = ctx+'local/smileDetail?id=' + id;
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) {
$.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 isOnlineFlag = [[${@permission.hasPermi('sweet:integralActivity:isOnline')}]];
// var drawListFlag = [[${@permission.hasPermi('sweet:integralActivityDraw:list')}]];
......
<!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 @@
<a class="btn btn-success" id="addActivity" th:onclick="$.operate.addTab()">
<i class="fa fa-plus"></i> 新增活动
</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
</a>
</a> -->
</div>
</div>
......
......@@ -73,14 +73,14 @@
<body class="tagStore">
<div class="container-div">
<div class="row">
<div class="btn-group-sm" id="toolbar">
<!-- <div class="btn-group-sm" id="toolbar">
<div>
<a class="btn btn-warning" id="button-open-11">
<i class="fa fa-download"></i> 导出Excel
</a>
</div>
</div>
<div class="col-sm-12 search-collapse">
</div> -->
<!-- <div class="col-sm-12 search-collapse">
<form id="role-form">
<div class="select-list">
<ul>
......@@ -95,7 +95,7 @@
</ul>
</div>
</form>
</div>
</div> -->
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
......@@ -142,7 +142,7 @@
data: res.data,
// onLoadSuccess: onLoadSuccess,
showSearch: false,
showRefresh: true,
showRefresh: false,
showColumns: false,
showToggle: false,
columns: [
......
......@@ -232,6 +232,8 @@
$(this).fileinput("upload");
})
.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;
$("#viewImg").attr('src', showPicture)
})
......@@ -362,9 +364,10 @@
endTime: $("#endTime").val(),
startTime: $("#startTime").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')
} // endTime
console.log($("#selectShow").attr('data-id').split(',')[$("#selectShow").attr('data-id').split(',').length-1], '$("#selectShow")')
if (marketId) {
data.marketId = marketId;
promiseMethods('/goblin/marketing/zhengzai/change','post',data).then(res => {
......
......@@ -128,20 +128,20 @@
align: 'center'
},
{
field: 'buyLimit',
field: 'stockMarketing',
// title: '库存限量<a onclick="setPrice(2)">批量</a>',
title: '库存限量',
width: '150',
align: 'center',
formatter: function (value, row, index) {
let str = '';
if (value == 0) {
str = '无限量';
} else {
str = value;
}
return str
}
// formatter: function (value, row, index) {
// let str = '';
// if (value == 0) {
// str = '无限量';
// } else {
// str = value;
// }
// return str
// }
},
{
field: 'buyLimit',
......@@ -165,20 +165,20 @@
if (value == 0) {
return `<div style="display:flex;">
<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;">
<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;">
<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>`
} else {
return `<div style="display:flex;">
<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;">
<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;">
<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>`
}
......
......@@ -168,6 +168,19 @@
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</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>
</project>
\ No newline at end of file
......@@ -141,6 +141,8 @@ public class GoblinZhengzaiMarketServiceImpl implements IGoblinZhengzaiMarketSer
BeanUtils.copyProperties(selfMarketing, vo);
vo.setStartTime(st);
vo.setEndTime(et);
vo.setEndTime(et);
vo.setStatus(0);
vo.setPerformanceId(performanceId);
vo.setPerformanceImg(img);
vo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(selfMarketing.getCreatedAt()));
......
......@@ -295,10 +295,14 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
@Override
public List<PerformanceSimpleAllDao> getListDetailByStatus(String status, String title) {
List<PerformanceTitleDao> dto1List = performancesMapper.misTitleByStatusList(status, title);
if (dto1List.size() == 0) {
return new ArrayList();
} else {
List<String> performanceIdList = dto1List.stream().map(PerformanceTitleDao::getPerformancesId).collect(Collectors.toList());
List<PerformanceSimpleAllDao> dto2List = performancesMapper.misPerformanceDetail(performanceIdList);
return dto2List;
}
}
@Override
public PerformanceSimpleAllDao getSimpleDetailByScopeAndId(String scope, String id) {
......@@ -604,19 +608,19 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
smileAgent.setPerformanceId(performancesId);
smileAgent.setTicketId(ticketId);
LambdaQueryWrapper<SmileAgent> queryWrapper = Wrappers.lambdaQuery(SmileAgent.class);
queryWrapper.eq(SmileAgent::getPerformanceId,performancesId);
queryWrapper.eq(SmileAgent::getTicketId,ticketId);
if (status.equals(1)){
queryWrapper.eq(SmileAgent::getDelTag,0);
queryWrapper.eq(SmileAgent::getPerformanceId, performancesId);
queryWrapper.eq(SmileAgent::getTicketId, ticketId);
if (status.equals(1)) {
queryWrapper.eq(SmileAgent::getDelTag, 0);
SmileAgent agent = smileAgentMapper.selectOne(queryWrapper);
if (agent==null){
if (agent == null) {
smileAgentMapper.insert(smileAgent);
}
}else {
} else {
smileAgent.setDelTag(1);
smileAgentMapper.update(smileAgent,queryWrapper);
smileAgentMapper.update(smileAgent, queryWrapper);
//删除票提redis
smileRedisUtils.delAgent(performancesId,ticketId);
smileRedisUtils.delAgent(performancesId, ticketId);
//查询是否还有设置过开启的票种
agentCarryGtZeroByPerId(performancesId);
}
......@@ -629,12 +633,12 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
//校验该演出是否有其他票提设置 用于删除redis中演出id List
private void agentCarryGtZeroByPerId(String performancesId) {
List<SmileAgent> agents = smileAgentMapper.selectAgentCarryGtZeroByPerId(performancesId);
if (agents.size()>0){
if (agents.size() > 0) {
//是否设置过票提
boolean tag = true;
for (SmileAgent agent : agents) {
SmileAgentVo agent1 = smileRedisUtils.getAgent(agent.getPerformanceId(), agent.getTicketId());
if (agent1!=null){
if (agent1 != null) {
tag = false;
break;
}
......@@ -646,7 +650,7 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
showIds.remove(performancesId);
smileRedisUtils.setShowIds(showIds);
}
}else {
} else {
//删除演出ids
List<String> showIds = smileRedisUtils.getShowIds();
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 {
@ApiModelProperty(value = "演出打款状态")
private String status;
/**
* 上下架状态【0:上架,1:下架】
*/
@ApiModelProperty(value = "演出打款状态")
private int type;
/**
* 顺序
*/
......@@ -137,6 +143,7 @@ public class ShowVo implements Serializable {
this.setOpen(kylinPerformancesDto.getOpen() == null ? BigDecimal.valueOf(0) : kylinPerformancesDto.getOpen());
this.setPerformancesId(kylinPerformancesDto.getPerformancesId());
this.setTimeEnd(kylinPerformancesDto.getTimeEnd());
this.setType(kylinPerformancesDto.getType());
return this;
}
}
......@@ -3,6 +3,8 @@ package com.liquidnet.client.admin.zhengzai.smile.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* <p>
*
......@@ -20,6 +22,7 @@ public class SmileOrganizationVo{
* 组织名称
*/
@ApiModelProperty(value = "组织名称", example = "")
@NotEmpty(message = "组织名称不能为空")
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 {
@NotNull(message = "数量不能为空")
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;
import com.liquidnet.service.smile.entity.SmileUser;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
public class SmileUserVo {
public class SmileUserVo implements Serializable, Cloneable {
private Long id;
......@@ -17,7 +20,7 @@ public class SmileUserVo {
/**
* 照片
*/
@ApiModelProperty("照片d")
@ApiModelProperty("照片")
private String img;
/**
......@@ -184,4 +187,73 @@ public class SmileUserVo {
@ApiModelProperty("创建时间")
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;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -38,6 +39,30 @@ public class UserData implements Serializable, Cloneable {
@ApiModelProperty(value = "身份 1。总代 2.普代", example = "")
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 {
@ApiModelProperty(value = "打款状态", example = "")
private Integer priceStatus;
@ApiModelProperty(value = "总佣金")
private BigDecimal totalCommission;
private static final UserData obj = new UserData();
......
......@@ -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.SmilePriceParam;
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 javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* <p>
......@@ -73,4 +75,8 @@ public interface ISmileShowService extends IService<SmileSchool> {
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;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
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.service.smile.entity.SmileUser;
import com.liquidnet.service.smile.entity.dao.SmileUserCheckDao;
......@@ -13,16 +12,21 @@ import java.util.List;
public interface ISmileUserService extends IService<SmileUser> {
TableDataInfo userList(SmileUserParam smileUserParam);
List<SmileUser> userList(SmileUserParam smileUserParam);
SmileUserVo getUserById(String id);
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);
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;
import com.liquidnet.service.smile.entity.dao.SmileAgentDao;
import com.liquidnet.service.smile.mapper.SmileAgentMapper;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Before;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
......
......@@ -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.commons.lang.util.BeanUtil;
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.SmileUser;
import com.liquidnet.service.smile.mapper.SmileSchoolMapper;
......@@ -20,10 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -100,6 +99,16 @@ public class SmileSchoolServiceImpl extends ServiceImpl<SmileSchoolMapper, Smile
queryWrapper.eq(SmileSchool::getDelTag, 0);
if (smileSchoolMapper.update(smileSchool, queryWrapper) > 0) {
//更新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());
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;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Component
@Slf4j
......@@ -34,7 +35,7 @@ public class SmileRedisUtils {
return redisDataSourceUtil.getRedisKylinUtil();
}
public Object get(String key){
public Object get(String key) {
return redisDataSourceUtil.getRedisKylinUtil().get(key);
}
......@@ -91,7 +92,7 @@ public class SmileRedisUtils {
* 获取全部学校
*/
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 {
/**
* 保存用户最新计算数据
*
* @param userData
*/
public void setUserDataByUid(UserData userData, String perId) {
......@@ -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);
Object obj = getRedis().get(key);
if (obj==null){
if (obj == null) {
return null;
}else {
return (UserData)obj;
} else {
return (UserData) obj;
}
}
......@@ -136,13 +137,14 @@ public class SmileRedisUtils {
* 保存演出ids
*/
public void setShowIds(List<String> perId) {
perId = perId.stream().distinct().collect(Collectors.toList());
getRedis().set(SmileRedisConst.SMILE_SHOW, perId);
}
/**
* 获取演出ids
*/
public List<String> getShowIds(){
public List<String> getShowIds() {
String rdk = SmileRedisConst.SMILE_SHOW;
Object obj = getRedis().get(rdk);
if (obj == null) {
......@@ -152,7 +154,7 @@ public class SmileRedisUtils {
}
}
public void delShow(){
public void delShow() {
String rdk = SmileRedisConst.SMILE_SHOW;
Object obj = getRedis().get(rdk);
if (obj != null) {
......@@ -258,9 +260,9 @@ public class SmileRedisUtils {
public SmileProjectDetailsVo getProject(String projectId) {
String rdk = SmileRedisConst.PROJECT_DETAILS.concat(projectId);
Object obj = getRedis().get(rdk);
if(obj==null){
if (obj == null) {
return null;
}else{
} else {
return (SmileProjectDetailsVo) obj;
}
}
......@@ -321,24 +323,34 @@ public class SmileRedisUtils {
/**
* 保存演出列表vo
*
* @param vo
*/
public void setShowVoByPerId(ShowVo vo) {
String key = SmileRedisConst.SELL_SHOW_SAVE.concat(vo.getPerformancesId());
getRedis().set(key,vo);
getRedis().set(key, vo);
}
/**
* 获取演出列表vo
* @param vo
*/
public ShowVo getShowVoByPerId(String perId) {
String key = SmileRedisConst.SELL_SHOW_SAVE.concat(perId);
Object o = getRedis().get(key);
if (o==null){
if (o == null) {
return null;
}else {
} else {
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 {
*/
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 {
request.setAttribute(CurrentUtil.uTag, JsonUtils.toJson(claims));
} 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) {
log.error("Ex.Exception:{},responseCode:{}", ex.getMessage(), responseCode = TOKEN_ILLEGAL);
log.warn("Ex.Exception:{},responseCode:{}", ex.getMessage(), responseCode = TOKEN_ILLEGAL);
}
} else {
responseCode = TOKEN_ILLEGAL;
......@@ -276,7 +276,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
// log.info("#ATH.ENCRYPT耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
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()) {
String valEncrypt = check.getData();
......@@ -287,7 +287,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
}
}
} catch (Exception e) {
log.error("GLOBAL:Authority Check Exception", e);
log.warn("Ex.Authority Check Exception[ssokey={}]", ssokey, e);
}
return val;
}
......
......@@ -35,6 +35,16 @@ public class GoblinGoods implements Serializable {
*/
private String spuNo;
/**
* 商品条码
*/
private String spuBarCode;
/**
* ERP商品编码
*/
private String spuErpCode;
/**
* 商品类型[0-常规|1-数字藏品]
*/
......
......@@ -28,10 +28,20 @@ public class GoblinGoodsSku implements Serializable {
private String spuId;
/**
* 单品的编号
* 单品编码
*/
private String skuNo;
/**
* 单品条码
*/
private String skuBarCode;
/**
* ERP单品编码
*/
private String skuErpCode;
/**
* 商品类型[0-常规|1-数字藏品]
*/
......
......@@ -40,7 +40,7 @@ public interface GoblinSelfGoodsCategoryMapper extends BaseMapper<GoblinSelfGood
"WHERE gsgc.del_flg='0'")
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," +
" cf.name fname," +
" cf.icon ficon," +
......@@ -58,12 +58,12 @@ public interface GoblinSelfGoodsCategoryMapper extends BaseMapper<GoblinSelfGood
" ct.counts 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' " +
" 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 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 " +
"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<String> listForMultiGradeCateId(@Param("cateIdArr") String[] cateIdArr);
......
......@@ -48,7 +48,7 @@ select b.store_id,
IFNull(count(distinct d.sku_id), 0) as 'sku_count'
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_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
where a.self_market_id = #{marketId} and b.del_tag = 0
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>
gsm.del_flag = 0
<if test="purchaseName != null and purchaseName!=''">and gsm.name like concat('%', #{purchaseName}, '%')
'%'
</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}
......
......@@ -67,4 +67,9 @@ public class KylinPerformancesDto implements Serializable, Cloneable {
* 演出状态
*/
private int status;
/**
* 上下架标识【1:下架,0:上架】
*/
private int type;
}
......@@ -83,4 +83,5 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
//商品订单信息
List<CommodityOrderExportDao> exportCommodityOrder(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime);
List<KylinPerformancesDto> getListAll(String title);
}
......@@ -14,10 +14,11 @@
FROM (
SELECT kotr.mid, kotr.agent_id
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
WHERE kots.status IN (1,6,3)
AND kotr.agent_id != 0
AND (kotr.agent_distributions_master !=0 or kotr.agent_distributions!=0)
AND kotr.performance_id = #{performancesId}
group by kotr.agent_id) kk;
</select>
......
......@@ -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_relations as r ON o.order_tickets_id=r.order_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
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
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_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
</select>
......@@ -124,7 +124,7 @@
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_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 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'
......@@ -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_relations as r ON o.order_tickets_id=r.order_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 id="getUserSellAllDate" parameterType="String" resultType="java.util.Map">
......@@ -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_relations as r ON o.order_tickets_id=r.order_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
</select>
......@@ -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
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
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 id="getCanRefundOrderList" parameterType="java.lang.String"
......@@ -557,10 +557,12 @@
FROM
kylin_order_ticket_relations AS kotr
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
LEFT JOIN kylin_tickets AS kt ON kt.tickets_id = kk.ticket_id
WHERE
kk.agent_id != 0
AND (kk.agent_distributions_master !=0 or kk.agent_distributions!=0)
AND kk.performance_id = #{performancesId}
AND kk.ticket_id = #{ticketsId}
</select>
......
......@@ -105,11 +105,11 @@
<result column="refund_at" property="refundAt"/>
</resultMap>
<!-- <resultMap id="OrderExportDaoResult" type="com.liquidnet.service.kylin.dao.OrderExportDao">-->
<!-- <result column="performance_title" property="performanceTitle"/>-->
<!-- <result column="user_mobile" property="userMobile"/>-->
<!-- <result column="user_name" property="userName"/>-->
<!-- </resultMap>-->
<!-- <resultMap id="OrderExportDaoResult" type="com.liquidnet.service.kylin.dao.OrderExportDao">-->
<!-- <result column="performance_title" property="performanceTitle"/>-->
<!-- <result column="user_mobile" property="userMobile"/>-->
<!-- <result column="user_name" property="userName"/>-->
<!-- </resultMap>-->
<resultMap id="PerformanceSimpleAllDaoResult" type="com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao">
<result column="performances_id" property="performancesId"/>
......@@ -727,10 +727,12 @@ GROUP BY user_mobile,tickets_id;
kp.`comment`,
IFNULL( map.`open`, 0 ) AS OPEN,
IFNULL( map.price, 0 ) AS totalSalePrice,
kps.`status`
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
LEFT JOIN (
SELECT
kk.performance_id,
......@@ -756,14 +758,41 @@ GROUP BY user_mobile,tickets_id;
) AS kk ON kot.order_tickets_id = kk.order_id
WHERE
kk.agent_id != 0
AND (kk.agent_distributions_master !=0 or kk.agent_distributions!=0)
GROUP BY
kk.performance_id
) AS map ON map.performance_id = kp.performances_id
WHERE
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
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 id="selectTicketIdByPerId" resultType="com.liquidnet.service.kylin.dao.KylinPerformancesDao">
......
......@@ -46,6 +46,11 @@ public class SmileAgent implements Serializable {
*/
private BigDecimal ordCarry;
/**
* 上下架 0:下架,1:上架
*/
private Integer type;
/**
* 删除标识 0未删除1已删除
*/
......@@ -58,4 +63,14 @@ public class SmileAgent implements Serializable {
public BigDecimal getOrdCarry() {
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 {
private String wechat;
/**
* 代理类型(0:未审核,1:总代,2:普代,3:未认证)
* 代理类型(0:未审核,1:总代,2:普代,3:未认证,5:特邀代理
*/
private Integer type;
......@@ -184,4 +184,13 @@ public class SmileUser implements Serializable {
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{
*/
private String city;
/**
* 手机号码
*/
private String phone;
private String idCard;
/**
* agentId
*/
private String agentId;
/**
* 总代姓名
*/
private String agentName;
/**
* 票提id
*/
......@@ -37,6 +49,12 @@ public class ShowBaseVoDto implements Serializable, Cloneable{
*/
private BigDecimal price;
/**
* 单价
*/
private Integer state;
/**
* 真实付款金额
*/
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.smile.entity.SmileAgent;
import com.liquidnet.service.smile.entity.dao.SmileAgentDao;
import com.liquidnet.service.smile.entity.dto.ShowBaseVoDto;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
......@@ -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 insertAgent(@Param("performancesId") String performancesId, @Param("ticketId") String ticketId);
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<Map<String,Object>> getUserOrgByPerIdAndUidAndAgentMaster(@Param("performancesId") String performancesId);
List<SmileAgentDao> selectAgentList(@Param("performancesId") String performancesId);
List<SmileAgent> selectAgentCarryGtZeroByPerId(@Param("performancesId")String performancesId);
int selectCountPerId();
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> {
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);
int getCount();
......
......@@ -21,50 +21,10 @@
where id = #{id}
</update>
<insert id="insertAgent">
INSERT INTO `smile_agent`
VALUES (NULL, #{performancesId}, #{ticketId}, 0, 0, 0);
</insert>
<select id="getUserDataByPerIdAndTicketsId" resultType="java.util.Map">
SELECT *,
SUM(kk.number - kk.refund_number) num,
SUM(kk.price *kk.`use`* ( kk.number - kk.refund_number )) totalPrice
FROM (SELECT kote.mid,
kote.order_id,
kote.ticket_id tid,
kt.title,
kote.user_id,
kote.performance_id perId,
kote.is_payment,
kote.status,
kot.number,
kot.refund_number,
kot.price,
kotr.agent_id agentId,
kotr.agent_id_master,
kotr.agent_distributions `use`,
kotr.agent_distributions_master,
su.type
FROM kylin_order_ticket_entities kote
LEFT JOIN kylin_order_tickets kot ON kote.order_id = kot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations kotr ON kotr.order_id = kot.order_tickets_id
LEFT JOIN kylin_order_ticket_status kots ON kots.order_id = kotr.order_id
LEFT JOIN smile_user su ON su.uid = kotr.agent_id
LEFT JOIN kylin_tickets kt ON kote.ticket_id = kt.tickets_id
WHERE kote.performance_id = #{performancesId}
AND kote.ticket_id = #{ticketId}
AND kotr.agent_id = #{uid}
AND kotr.agent_status = 1
AND kots.status = 1
AND kots.pay_status = 1
GROUP BY kote.order_id) kk
</select>
<select id="getUserOrgByPerIdAndUidAndAgentMaster" resultType="java.util.Map">
SELECT
SUM(
( kot.price_actual - kot.price_refund )* kotr.agent_distributions_master) totalPrice
kotr.agent_id_master uid,
SUM( ( kot.price_actual - kot.price_refund )* kotr.agent_distributions_master ) totalPrice
FROM
kylin_order_ticket_relations AS kotr
INNER JOIN kylin_order_tickets AS kot ON kot.order_tickets_id = kotr.order_id
......@@ -76,9 +36,17 @@
kylin_order_ticket_relations AS kotr
LEFT JOIN kylin_order_ticket_status AS kots ON kots.order_id = kotr.order_id
WHERE
kotr.agent_id IN ( SELECT uid FROM smile_user WHERE agent_id = #{uid} )
AND kots.status IN (1,6,3)
) AND kotr.performance_id = #{performancesId} AND kotr.ticket_id = #{ticketId}
kots.STATUS IN ( 1, 6, 3 ) )
AND kotr.performance_id = #{performancesId}
AND kotr.ticket_id IN (
SELECT
sa.ticket_id
FROM
smile_agent AS sa
WHERE
sa.del_tag = 0
AND sa.performance_id = #{performancesId}
) AND kotr.agent_id_master >0 GROUP BY kotr.agent_id_master
</select>
<select id="selectAgentList" resultType="com.liquidnet.service.smile.entity.dao.SmileAgentDao">
......@@ -89,7 +57,7 @@
sa.total_carry,
kt.title ticket_name
FROM smile_agent sa
LEFT JOIN kylin_tickets kt ON kt.tickets_id = sa.ticket_id
INNER JOIN kylin_tickets kt ON kt.tickets_id = sa.ticket_id
WHERE sa.performance_id = #{performancesId}
AND sa.del_tag = 0
</select>
......@@ -103,17 +71,17 @@
AND del_tag = 0
</select>
<select id="selectCountPerId" resultType="int">
SELECT COUNT(sa.id) FROM (SELECT id FROM smile_agent WHERE del_tag = 0 GROUP BY performance_id) sa;
</select>
<select id="selectMapByPerId" resultType="com.liquidnet.service.smile.entity.dto.ShowBaseVoDto">
SELECT
sukotr.`name`,
sukotr.city,
sukotr.uid AS agent_id,
sukotr.ticket_id AS tid,
sukotr.id_card as idCard,
sukotr.type,
sukotr.phone,
sukotr.state,
sukotr.agentName,
kot.price,
SUM(kot.price_actual - kot.price_refund) price_real,
sukotr.agent_distributions AS `use`,
......@@ -127,6 +95,10 @@
su.`name`,
su.city,
su.type,
su.phone,
su.state,
su.id_card,
agentSu.name agentName,
kotr.order_id,
kotr.performance_id,
kotr.ticket_id,
......@@ -135,6 +107,7 @@
smile_user AS su
INNER JOIN kylin_order_ticket_relations AS kotr ON kotr.agent_id = su.uid
INNER JOIN kylin_order_ticket_status AS kots ON kots.order_id = kotr.order_id
INNER JOIN smile_user AS agentSu ON agentSu.uid = su.agent_id
WHERE
su.uid IN (
SELECT kotr.agent_id
......@@ -143,10 +116,12 @@
INNER JOIN smile_user AS su ON su.uid = kotr.agent_id
WHERE kots.status IN (1,6,3)
AND kotr.agent_id != 0
AND (kotr.agent_distributions_master !=0 or kotr.agent_distributions!=0)
AND kotr.performance_id = #{performancesId}
group by kotr.agent_id
)
AND kotr.performance_id = #{performancesId}
AND (kotr.agent_distributions_master !=0 or kotr.agent_distributions!=0)
AND kots.`status` IN ( 1, 6 ,3)
) AS sukotr ON sukotr.order_id = kot.order_tickets_id
GROUP BY
......@@ -154,4 +129,10 @@
sukotr.ticket_id
</select>
<update id="upTakeByPerId">
update smile_agent
set type = #{type}
where performance_id = #{perId}
</update>
</mapper>
......@@ -5,6 +5,7 @@
<select id="selectOrganizationList" parameterType="java.util.Map" resultType="com.liquidnet.service.smile.entity.SmileOrganization">
select * from smile_organization
<where>
del_tag = 0
<if test="name!=''">
and `name` like concat('%',#{name},'%')
</if>
......
......@@ -161,6 +161,8 @@ public class GalaxyBeanTransferBiz {
transferNftInfoBo.setSeriesId(null);
transferNftInfoBo.setRouterType(reqDto.getRouterType());
transferNftInfoBo.setTransferStatus(GalaxyEnum.NftTransferStatusEnum.INIT.getCode());
transferNftInfoBo.setNftTransferTaskId(null);
transferNftInfoBo.setNftTransferChainTimestamp(null);
transferNftInfoBo.setTransferHash(null);
transferNftInfoBo.setErrorCode(null);
transferNftInfoBo.setErrorMsg(null);
......@@ -184,6 +186,7 @@ public class GalaxyBeanTransferBiz {
respDto.setFromUserId(userInfoBo.getUserId());
respDto.setFromAddress(userInfoBo.getBlockChainAddress());
respDto.setTransferTime(DateUtil.getNowTime());
respDto.setRouterType(transferNftInfoBo.getRouterType());
respDto.setTransferHash(transferNftInfoBo.getTransferHash());
return respDto;
}
......
......@@ -545,8 +545,11 @@ public abstract class AbstractDataUtils {
try{
this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_nft_transfer_info.insert"),
new Object[]{transferNftInfoBo.getTransOrderId(),transferNftInfoBo.getNftId(),transferNftInfoBo.getUserId(),transferNftInfoBo.getAddress(),transferNftInfoBo.getReceiveUserId(),transferNftInfoBo.getReceiveAddress(),
transferNftInfoBo.getOwnerUserId(),transferNftInfoBo.getOwnerAddress(),transferNftInfoBo.getTransferHash(),transferNftInfoBo.getSeriesId(),transferNftInfoBo.getRouterType(),
new Object[]{transferNftInfoBo.getTransOrderId(),transferNftInfoBo.getNftId(),transferNftInfoBo.getUserId(),transferNftInfoBo.getAddress()
,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()}
, MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey()
);
......@@ -583,8 +586,10 @@ public abstract class AbstractDataUtils {
try{
this.getQueueUtil().sendMySqlRedis(
SqlMapping.get("galaxy_nft_transfer_info.updateNftTransferInfo"),
new Object[]{transferNftInfoBo.getOwnerUserId(),transferNftInfoBo.getOwnerAddress(),transferNftInfoBo.getTransferHash(),
transferNftInfoBo.getTransferStatus(),transferNftInfoBo.getErrorCode(),transferNftInfoBo.getErrorMsg()
new Object[]{transferNftInfoBo.getOwnerUserId(),transferNftInfoBo.getOwnerAddress()
,transferNftInfoBo.getNftTransferTaskId(),transferNftInfoBo.getNftTransferChainTimestamp()
,transferNftInfoBo.getTransferHash()
,transferNftInfoBo.getTransferStatus(),transferNftInfoBo.getErrorCode(),transferNftInfoBo.getErrorMsg()
,transferNftInfoBo.getUpdatedAt(),transferNftInfoBo.getTransOrderId()}
, MQConst.GalaxyQueue.SQL_NFT_TRADE_INFO.getKey()
);
......
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