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

Commit f46be968 authored by 张国柄's avatar 张国柄

Merge remote-tracking branch 'origin/master' into dev_coupon_member

parents 9571ee5c 51359b3c
-- 添加积分券 --
ALTER TABLE stone_score_items ADD simple_type tinyint DEFAULT 0 COMMENT '类别(区别于TYPE字段)';
...@@ -22,6 +22,8 @@ public class AdamMemberJoinusVo implements java.io.Serializable, Cloneable { ...@@ -22,6 +22,8 @@ public class AdamMemberJoinusVo implements java.io.Serializable, Cloneable {
private Integer state; private Integer state;
@ApiModelProperty(position = 16, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....") @ApiModelProperty(position = 16, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail; private String interestsDetail;
@ApiModelProperty(position = 17, value = "会员ID", example = "123456")
private String memberNo;
private static final AdamMemberJoinusVo obj = new AdamMemberJoinusVo(); private static final AdamMemberJoinusVo obj = new AdamMemberJoinusVo();
......
...@@ -8,6 +8,7 @@ import com.liquidnet.service.adam.entity.AdamUserMember; ...@@ -8,6 +8,7 @@ import com.liquidnet.service.adam.entity.AdamUserMember;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -36,6 +37,11 @@ public class AdamUserMemberVo implements Serializable, Cloneable { ...@@ -36,6 +37,11 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR) @JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
public String getMemberNo() {
// return memberNo;
return StringUtils.leftPad(memberNo, 7, "0");
}
public static final LocalDateTime spotTime = LocalDateTime.parse("2021-10-14 21:30:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); public static final LocalDateTime spotTime = LocalDateTime.parse("2021-10-14 21:30:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
private static final AdamUserMemberVo obj = new AdamUserMemberVo(); private static final AdamUserMemberVo obj = new AdamUserMemberVo();
......
...@@ -2,17 +2,22 @@ package com.liquidnet.service.stone.constant; ...@@ -2,17 +2,22 @@ package com.liquidnet.service.stone.constant;
public class StoneConstant { public class StoneConstant {
//ctx //ctx
private static final String CTX="stone:"; private static final String CTX = "stone:";
//user //user
public static final String USER=CTX.concat("user:"); public static final String USER = CTX.concat("user:");
//item //item
public static final String ITEM=CTX.concat("item:"); public static final String ITEM = CTX.concat("item:");
//logsList 积分日志列表 //logsList 积分日志列表
public static final String LOGS_LIST=ITEM.concat("logs:list:"); public static final String LOGS_LIST = ITEM.concat("logs:list:");
//orderList 积分订单列表 //orderList 积分订单列表
public static final String ORDER_LIST=ITEM.concat("order:list:"); public static final String ORDER_LIST = ITEM.concat("order:list:");
//orderList 积分订单列表 //orderList 积分订单列表
public static final String ORDER_DETAILS=ITEM.concat("order:details:"); public static final String ORDER_DETAILS = ITEM.concat("order:details:");
//商品列表
public static final String ITEM_LIST = ITEM.concat("list");
//商品列表分类
public static final String ITEM_LIST_SIMPLE = ITEM.concat("list:simpleType:");
//剩余库存 //剩余库存
public static final String SURPLUS_GENERAL = ":surplusGeneral"; public static final String SURPLUS_GENERAL = ":surplusGeneral";
......
...@@ -15,6 +15,8 @@ public class StoneItemBuildParam { ...@@ -15,6 +15,8 @@ public class StoneItemBuildParam {
private String itemId; private String itemId;
@ApiModelProperty(required = true, value = "目标类型[1-券|11-商品维度|21-演出维度]", example = "1") @ApiModelProperty(required = true, value = "目标类型[1-券|11-商品维度|21-演出维度]", example = "1")
private Integer type; private Integer type;
@ApiModelProperty(required = false, value = "前端暂定 0为默认值 无条件")
private Integer simpleType;
@NotBlank(message = "目标物品不能为空") @NotBlank(message = "目标物品不能为空")
@ApiModelProperty(value = "目标物品id", example = "1") @ApiModelProperty(value = "目标物品id", example = "1")
private String targetId; private String targetId;
......
...@@ -20,4 +20,6 @@ public class StoneListParam { ...@@ -20,4 +20,6 @@ public class StoneListParam {
*/ */
@ApiModelProperty(required = false, value = "状态[1-券]", example = "1") @ApiModelProperty(required = false, value = "状态[1-券]", example = "1")
private Integer type; private Integer type;
@ApiModelProperty(required = false, value = "前端定义 0位默认值 无条件", example = "0")
private Integer simpleType;
} }
...@@ -21,6 +21,8 @@ public interface IStoneScoreItemsService { ...@@ -21,6 +21,8 @@ public interface IStoneScoreItemsService {
PageInfo<List<StoneItemListVo>> itemList(Integer page, Integer size); PageInfo<List<StoneItemListVo>> itemList(Integer page, Integer size);
PageInfo<List<StoneItemListVo>> itemListSimpleType(Integer simpleType ,Integer page, Integer size);
ResponseDto<StoneScoreItemVo> itemDetails(String itemId); ResponseDto<StoneScoreItemVo> itemDetails(String itemId);
} }
...@@ -55,9 +55,9 @@ public class StoneOrderListVo implements Serializable, Cloneable { ...@@ -55,9 +55,9 @@ public class StoneOrderListVo implements Serializable, Cloneable {
} }
} }
public StoneOrderListVo copy(StoneScoreOrder source,String img,String uid) { public StoneOrderListVo copy(StoneScoreOrder source, String img, String uid) {
if (null == source) return this; if (null == source) return this;
this.setOrderId(source.getItemId()); this.setOrderId(source.getOrderId());
this.setImg(img); this.setImg(img);
this.setUid(uid); this.setUid(uid);
this.setTargetTitle(source.getTargetTitle()); this.setTargetTitle(source.getTargetTitle());
......
...@@ -39,6 +39,7 @@ public class SweetConstant { ...@@ -39,6 +39,7 @@ public class SweetConstant {
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_ESTIMATEDNUM = "sweet:integralActivity:estimatedNum:activityId:"; public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_ESTIMATEDNUM = "sweet:integralActivity:estimatedNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_TOTAL_PRIZE_NUM = "sweet:integralActivity:totalPrizeNum:activityId:"; public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_TOTAL_PRIZE_NUM = "sweet:integralActivity:totalPrizeNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK = "sweet:integralActivity:drawBlack"; public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK = "sweet:integralActivity:drawBlack";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_WHITE = "sweet:integralActivity:drawWhite";
// 答题活动 // 答题活动
public final static String REDIS_KEY_SWEET_ANSWER_PHONE = "sweet:answer:phone:"; public final static String REDIS_KEY_SWEET_ANSWER_PHONE = "sweet:answer:phone:";
// 城市投票活动 // 城市投票活动
......
...@@ -24,4 +24,6 @@ public interface ISweetIntegralActivityService extends IService<SweetIntegralAct ...@@ -24,4 +24,6 @@ public interface ISweetIntegralActivityService extends IService<SweetIntegralAct
ResponseDto setDrawAllList(String integralActivityId); ResponseDto setDrawAllList(String integralActivityId);
ResponseDto drawBlack(String uidS); ResponseDto drawBlack(String uidS);
ResponseDto drawWhite(String uidS);
} }
...@@ -19,6 +19,10 @@ import org.springframework.stereotype.Controller; ...@@ -19,6 +19,10 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "积分物品") @Api(tags = "积分物品")
@Controller @Controller
@RequestMapping("stone/item") @RequestMapping("stone/item")
...@@ -39,7 +43,7 @@ public class StoneItemController extends BaseController { ...@@ -39,7 +43,7 @@ public class StoneItemController extends BaseController {
@GetMapping("integralStoreEdit") @GetMapping("integralStoreEdit")
@ApiOperation(value = "积分商品:详情View") @ApiOperation(value = "积分商品:详情View")
public String integralStoreEdit (ModelMap mmap) { public String integralStoreEdit(ModelMap mmap) {
mmap.put("platformUrl", platformUrl); mmap.put("platformUrl", platformUrl);
return prefix + "/integralStoreEdit"; return prefix + "/integralStoreEdit";
} }
...@@ -49,12 +53,23 @@ public class StoneItemController extends BaseController { ...@@ -49,12 +53,23 @@ public class StoneItemController extends BaseController {
@PostMapping("list") @PostMapping("list")
@ResponseBody @ResponseBody
public TableDataInfo list(StoneListParam listParam) { public TableDataInfo list(StoneListParam listParam) {
PageInfo<StoneScoreItems> result = iItemService.itemList(listParam.getTitle(), listParam.getState(), listParam.getType()); startPage();
TableDataInfo rspData = new TableDataInfo(); List<StoneScoreItems> result = iItemService.itemList(listParam.getTitle(), listParam.getState(), listParam.getType(), listParam.getSimpleType());
rspData.setCode(0); List<StoneScoreItems> newList = new ArrayList();
rspData.setRows(result.getList()); LocalDateTime now = LocalDateTime.now();
rspData.setTotal(result.getTotal()); for (StoneScoreItems item : result) {
return rspData; if (item.getStatus() == 2) {
if (now.isAfter(item.getStartTime())) {//未上架
item.setStatus(2);
} else if (now.isBefore(item.getEndTime())) {//已下架
item.setStatus(7);
} else {
item.setStatus(1);//上架中
}
}
newList.add(item);
}
return getDataTable(result);
} }
@Log(title = "积分商品:修改状态") @Log(title = "积分商品:修改状态")
......
...@@ -58,6 +58,19 @@ ...@@ -58,6 +58,19 @@
var prefix = ctx + "stone/item"; var prefix = ctx + "stone/item";
var prefix2 = ctx; var prefix2 = ctx;
var couType = [[${couType}]]; var couType = [[${couType}]];
var simpleTypeDataList = [{
id: 1,
simpleName: '5元'
}, {
id: 2,
simpleName: '10元'
}, {
id: 3,
simpleName: '25元'
}, {
id: 4,
simpleName: '35元'
}]
$(function () { $(function () {
var options = { var options = {
url: prefix2 + "stone/item/list", url: prefix2 + "stone/item/list",
...@@ -74,7 +87,7 @@ ...@@ -74,7 +87,7 @@
field: '', field: '',
title: '序号', title: '序号',
formatter: function (value, row, index) { formatter: function (value, row, index) {
return index + 1 return row.mid;
} }
}, },
{ {
...@@ -94,6 +107,21 @@ ...@@ -94,6 +107,21 @@
} }
} }
}, },
{
field: 'simpleType',
title: '优惠券分类',
formatter: function(value, row, index) {
if (value == 0) {
return '无条件';
} else {
for (var i in simpleTypeDataList) {
if (simpleTypeDataList[i].id == value) {
return simpleTypeDataList[i].simpleName;
}
}
}
}
},
{ {
field: 'busiType', field: 'busiType',
title: '类型', title: '类型',
...@@ -111,11 +139,11 @@ ...@@ -111,11 +139,11 @@
}, },
{ {
field: 'generalSurplus', field: 'generalSurplus',
title: '已兑换数量' title: '剩余库存'
}, },
{ {
field: 'generalTotal', field: 'generalTotal',
title: '剩余库存' title: '库存'
}, },
{ {
field: 'createdAt', field: 'createdAt',
......
...@@ -155,6 +155,16 @@ ...@@ -155,6 +155,16 @@
<input type="radio" value="3" name="typeOne"><span>优先购</span> <input type="radio" value="3" name="typeOne"><span>优先购</span>
</div> </div>
</div> </div>
<div class="labelSelect main_type">
<span class="labelName">优惠券分类:</span>
<select name="labelSelect" id="labelSelectType">
<option value="0">请选择优惠券分类</option>
<option value="1">5元</option>
<option value="2">10元</option>
<option value="3">25元</option>
<option value="4">35元</option>
</select>
</div>
<div id="scoreType" class="main_type"> <div id="scoreType" class="main_type">
<span class="labelName"><i class="required">*</i>类别:</span> <span class="labelName"><i class="required">*</i>类别:</span>
<div class="layui-input-block" style="display: flex"> <div class="layui-input-block" style="display: flex">
...@@ -172,7 +182,6 @@ ...@@ -172,7 +182,6 @@
</div> </div>
<div class="main_type"> <div class="main_type">
<span class="labelName"><i class="required">*</i>展示图:</span> <span class="labelName"><i class="required">*</i>展示图:</span>
<div class="layui-input-block" style="display: flex;flex-direction: column;"> <div class="layui-input-block" style="display: flex;flex-direction: column;">
<img id="viewImg" src="" alt="" style="max-height:242px;"> <img id="viewImg" src="" alt="" style="max-height:242px;">
<div class="ibox-content"> <div class="ibox-content">
...@@ -280,7 +289,8 @@ ...@@ -280,7 +289,8 @@
let itemId = ''; // let itemId = ''; //
let selectType = '1' let selectType = '1'
let type = ''; let type = '';
console.log('检测') let simpleType = '';
$(document).ready(function() { $(document).ready(function() {
var $summernote = $('#summernote').summernote({ var $summernote = $('#summernote').summernote({
height: 300, height: 300,
...@@ -348,7 +358,7 @@ ...@@ -348,7 +358,7 @@
$("#searchIpt").val(data.targetTitle); $("#searchIpt").val(data.targetTitle);
$("#integralNum").val(data.score); $("#integralNum").val(data.score);
$("#inventory").val(data.generalTotal); $("#inventory").val(data.generalTotal);
showId = data.generalTotal; showId = data.targetId;
// $("#goodsDetail").val(data.details); // $("#goodsDetail").val(data.details);
$('#summernote').summernote('code', data.details) $('#summernote').summernote('code', data.details)
$('.summernote').eq(1).summernote('code', data.notice) $('.summernote').eq(1).summernote('code', data.notice)
...@@ -367,6 +377,15 @@ ...@@ -367,6 +377,15 @@
$("#startTime").val(data.startTime); $("#startTime").val(data.startTime);
$("input[name='sex'][value='2']").attr("checked", "checked").siblings().removeAttr('checked'); $("input[name='sex'][value='2']").attr("checked", "checked").siblings().removeAttr('checked');
} }
if (data.simpleType == 0) {
$("#labelSelectType").find("option[value='0']").attr("selected",true);
} else {
var simpleTypeData = data.simpleType.toString();
$("#labelSelectType").find("option[value=" + simpleTypeData + "]").attr("selected",true);
}
if (!showId) {
$('.labelSelect').hide();
}
} }
}) })
} }
...@@ -413,7 +432,7 @@ ...@@ -413,7 +432,7 @@
if (res.rows.length>0) { if (res.rows.length>0) {
searchData = res.rows; searchData = res.rows;
searchData.forEach((item,index)=>{ searchData.forEach((item,index)=>{
str+= `<li class="selectData" onclick="selectOne('${item.couponId}', 'couponId')">${item.title}</li>` str+= `<li class="selectData" onclick="selectOne('${item.couponId}', 'couponId')">${item.busiName}</li>`
}) })
$('#dataList').html(str); $('#dataList').html(str);
} else { } else {
...@@ -424,7 +443,7 @@ ...@@ -424,7 +443,7 @@
function selectOne(id, name) { function selectOne(id, name) {
searchData.some( item => { searchData.some( item => {
if (item[name] == id) { if (item[name] == id) {
return $("#searchIpt").val(item.title); return $("#searchIpt").val(item.busiName);
} }
} ) } )
// $("#searchIpt").val(name); // $("#searchIpt").val(name);
...@@ -527,6 +546,7 @@ ...@@ -527,6 +546,7 @@
endTime = $("#endTime").val(); endTime = $("#endTime").val();
} }
} }
let data = { let data = {
details: $('#summernote').summernote('code'), // 商品详情 details: $('#summernote').summernote('code'), // 商品详情
endTime: $.common.dateFormat(endTime, 'yyyy-MM-dd HH:mm:ss'), // 下架时间(status = 2 必传) endTime: $.common.dateFormat(endTime, 'yyyy-MM-dd HH:mm:ss'), // 下架时间(status = 2 必传)
...@@ -539,8 +559,10 @@ ...@@ -539,8 +559,10 @@
startTime: $.common.dateFormat(startTime, 'yyyy-MM-dd HH:mm:ss'), // 上架时间status = 2 必传) startTime: $.common.dateFormat(startTime, 'yyyy-MM-dd HH:mm:ss'), // 上架时间status = 2 必传)
status: Number(shelves), // 上架状态[1-不限|2-定时|7-下线] status: Number(shelves), // 上架状态[1-不限|2-定时|7-下线]
targetId: showId, // 目标物品id targetId: showId, // 目标物品id
targetTitle: $('#searchIpt').val() || $("#searchIptMall").val() // 目标物品标题 targetTitle: $('#searchIpt').val() || $("#searchIptMall").val(), // 目标物品标题
simpleType: $('#labelSelectType option:selected').val()
} }
console.log(showId)
let type = 'post'; let type = 'post';
if (!itemId) { if (!itemId) {
delete data.itemId delete data.itemId
...@@ -557,7 +579,8 @@ ...@@ -557,7 +579,8 @@
} else { } else {
data['type'] = 11 data['type'] = 11
} }
promiseMethods(ctx+'stone/item',type,data).then(res=>{ promiseMethods(ctx+'stone/item', type, data).then(res => {
console.log(res);
layer.msg('' + res); layer.msg('' + res);
if (res.code != undefined && res.code != web_status.SUCCESS) { if (res.code != undefined && res.code != web_status.SUCCESS) {
$.modal.alertWarning(res.msg); $.modal.alertWarning(res.msg);
......
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
</div> </div>
<hr> <hr>
<div class="scoreTable"> <div class="couponTable">
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<div class="col-sm-12 select-table table-striped"> <div class="col-sm-12 select-table table-striped">
...@@ -960,10 +960,10 @@ ...@@ -960,10 +960,10 @@
.selectScore span { .selectScore span {
color: #ccc; color: #ccc;
} }
.scoreTable { .couponTable {
margin-bottom: 12px; margin-bottom: 12px;
overflow-y: scroll; overflow-y: scroll;
max-height: 600px; max-height: 270px;
} }
.details-form-list { .details-form-list {
position: fixed; position: fixed;
...@@ -978,7 +978,7 @@ ...@@ -978,7 +978,7 @@
} }
.details-pop-inner { .details-pop-inner {
width: 800px; width: 800px;
height: 820px; height: 490px;
padding: 10px; padding: 10px;
background: #fff; background: #fff;
} }
......
...@@ -17,7 +17,7 @@ public interface IItemService { ...@@ -17,7 +17,7 @@ public interface IItemService {
* @param type 类型[1-券] * @param type 类型[1-券]
* @return * @return
*/ */
PageInfo<StoneScoreItems> itemList(String title, Integer status, Integer type); List<StoneScoreItems> itemList(String title, Integer status, Integer type, Integer simpleType);
/** /**
* 修改 积分物品 状态 * 修改 积分物品 状态
......
...@@ -42,10 +42,8 @@ public class ItemServiceImpl implements IItemService { ...@@ -42,10 +42,8 @@ public class ItemServiceImpl implements IItemService {
* @param type 类型[1-券] * @param type 类型[1-券]
* @return * @return
*/ */
public PageInfo<StoneScoreItems> itemList(String title, Integer status, Integer type) { public List<StoneScoreItems> itemList(String title, Integer status, Integer type, Integer simpleType) {
PageInfo<StoneScoreItems> pageInfo;
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
List<StoneScoreItems> newList = new ArrayList();
LambdaQueryWrapper<StoneScoreItems> queryWrapper = Wrappers.lambdaQuery(StoneScoreItems.class).ne(StoneScoreItems::getStatus, -1); LambdaQueryWrapper<StoneScoreItems> queryWrapper = Wrappers.lambdaQuery(StoneScoreItems.class).ne(StoneScoreItems::getStatus, -1);
if (!(title == null || title.equals(""))) { if (!(title == null || title.equals(""))) {
queryWrapper.like(StoneScoreItems::getTargetTitle, title); queryWrapper.like(StoneScoreItems::getTargetTitle, title);
...@@ -65,22 +63,12 @@ public class ItemServiceImpl implements IItemService { ...@@ -65,22 +63,12 @@ public class ItemServiceImpl implements IItemService {
if (type != -1) { if (type != -1) {
queryWrapper.eq(StoneScoreItems::getType, type); queryWrapper.eq(StoneScoreItems::getType, type);
} }
} if (simpleType != 0) {
List<StoneScoreItems> voList = stoneScoreItemsMapper.selectList(queryWrapper); queryWrapper.eq(StoneScoreItems::getSimpleType, simpleType);
for (StoneScoreItems item : voList) {
if (item.getStatus() == 2) {
if (now.isAfter(item.getStartTime())) {//未上架
item.setStatus(2);
} else if (now.isBefore(item.getEndTime())) {//已下架
item.setStatus(7);
} else {
item.setStatus(1);//上架中
}
} }
newList.add(item);
} }
pageInfo = new PageInfo(newList); List<StoneScoreItems> voList = stoneScoreItemsMapper.selectList(queryWrapper);
return pageInfo; return voList;
} }
@Override @Override
...@@ -111,6 +99,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -111,6 +99,7 @@ public class ItemServiceImpl implements IItemService {
if (result <= 0) { if (result <= 0) {
return "修改失败"; return "修改失败";
} }
redisUtils.delList(redisData.getSimpleType().toString());
return "修改成功"; return "修改成功";
} }
...@@ -155,6 +144,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -155,6 +144,7 @@ public class ItemServiceImpl implements IItemService {
if (count <= 0) { if (count <= 0) {
return "创建失败"; return "创建失败";
} }
redisUtils.delList(param.getSimpleType().toString());
return "创建成功"; return "创建成功";
} }
...@@ -188,6 +178,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -188,6 +178,7 @@ public class ItemServiceImpl implements IItemService {
if (count <= 0) { if (count <= 0) {
return "修改失败"; return "修改失败";
} }
redisUtils.delList(param.getSimpleType().toString());
return "修改成功"; return "修改成功";
} }
...@@ -202,6 +193,7 @@ public class ItemServiceImpl implements IItemService { ...@@ -202,6 +193,7 @@ public class ItemServiceImpl implements IItemService {
data.setTargetId(param.getTargetId()); data.setTargetId(param.getTargetId());
data.setTargetTitle(param.getTargetTitle()); data.setTargetTitle(param.getTargetTitle());
data.setType(param.getType()); data.setType(param.getType());
data.setSimpleType(param.getSimpleType());
data.setImg(param.getImg()); data.setImg(param.getImg());
data.setScore(param.getScore()); data.setScore(param.getScore());
data.setPrice(BigDecimal.ZERO); data.setPrice(BigDecimal.ZERO);
......
...@@ -102,4 +102,16 @@ public class StoneRedisUtils { ...@@ -102,4 +102,16 @@ public class StoneRedisUtils {
} }
} }
/**
* 删除 积分商品列表缓存
*
* @param simpleType
*/
public void delList(String simpleType) {
String redisKey = StoneConstant.ITEM_LIST;
String redisSimpleKey = StoneConstant.ITEM_LIST_SIMPLE.concat(simpleType);
redisDataSourceUtil.getRedisStoneUtil().del(redisKey);
redisDataSourceUtil.getRedisStoneUtil().del(redisSimpleKey);
}
} }
...@@ -35,7 +35,7 @@ liquidnet: ...@@ -35,7 +35,7 @@ liquidnet:
dbs: 0,16 dbs: 0,16
database: 15 database: 15
host: 39.107.71.112 host: 39.107.71.112
port: 6369 port: 6379
password: 3Xa%8p password: 3Xa%8p
dragon: dragon:
dbs: 0,16 dbs: 0,16
...@@ -45,8 +45,8 @@ liquidnet: ...@@ -45,8 +45,8 @@ liquidnet:
password: 3Xa%8p password: 3Xa%8p
sweet: sweet:
dbs: 0,16 dbs: 0,16
database: 15 database: 255
host: 39.107.71.112 host: 15
port: 6379 port: 6379
password: 3Xa%8p password: 3Xa%8p
adam: adam:
......
...@@ -65,8 +65,8 @@ spring: ...@@ -65,8 +65,8 @@ spring:
name: ${liquidnet.info.name} name: ${liquidnet.info.name}
servlet: servlet:
multipart: multipart:
max-file-size: 50MB max-file-size: 200MB
max-request-size: 100MB max-request-size: 200MB
profiles: profiles:
include: common-service #这里加载management相关公共配置 include: common-service #这里加载management相关公共配置
rabbitmq: rabbitmq:
......
...@@ -125,6 +125,7 @@ global-auth: ...@@ -125,6 +125,7 @@ global-auth:
- ${liquidnet.info.context}/user/inner/** - ${liquidnet.info.context}/user/inner/**
- ${liquidnet.info.context}/user/logs/in2111 - ${liquidnet.info.context}/user/logs/in2111
- ${liquidnet.info.context}/user/logs/de2111 - ${liquidnet.info.context}/user/logs/de2111
- ${liquidnet.info.context}/user/logs/in2112
oncheck-url-pattern: oncheck-url-pattern:
# - ${liquidnet.info.context}/** # - ${liquidnet.info.context}/**
# ----------------------------------------------------------- # -----------------------------------------------------------
......
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
<if test="userName != null and userName != ''">and kot.user_name like concat('%', #{userName}, '%')</if> <if test="userName != null and userName != ''">and kot.user_name like concat('%', #{userName}, '%')</if>
<if test="userMobile != null and userMobile != ''">and kot.user_mobile = #{userMobile}</if> <if test="userMobile != null and userMobile != ''">and kot.user_mobile = #{userMobile}</if>
<if test="performanceTitle != null and performanceTitle != ''"> <if test="performanceTitle != null and performanceTitle != ''">
and kot.performance_title like concat('%', #{performanceTitle}, '%') and kp.title like concat('%', #{performanceTitle}, '%')
</if> </if>
<if test="orderCode != null and orderCode != ''">and kot.order_code = #{orderCode}</if> <if test="orderCode != null and orderCode != ''">and kot.order_code = #{orderCode}</if>
<if test="orderType != null and orderType != ''">and kot.order_type = #{orderType}</if> <if test="orderType != null and orderType != ''">and kot.order_type = #{orderType}</if>
...@@ -193,7 +193,7 @@ ...@@ -193,7 +193,7 @@
<if test="userName != null and userName != ''">and kot.user_name like concat('%', #{userName}, '%')</if> <if test="userName != null and userName != ''">and kot.user_name like concat('%', #{userName}, '%')</if>
<if test="userMobile != null and userMobile != ''">and kot.user_mobile = #{userMobile}</if> <if test="userMobile != null and userMobile != ''">and kot.user_mobile = #{userMobile}</if>
<if test="performanceTitle != null and performanceTitle != ''"> <if test="performanceTitle != null and performanceTitle != ''">
and kot.performance_title like concat('%', #{performanceTitle}, '%') and kp.title like concat('%', #{performanceTitle}, '%')
</if> </if>
<if test="orderCode != null and orderCode != ''">and kot.order_code = #{orderCode}</if> <if test="orderCode != null and orderCode != ''">and kot.order_code = #{orderCode}</if>
<if test="orderType != null and orderType != ''">and kot.order_type = #{orderType}</if> <if test="orderType != null and orderType != ''">and kot.order_type = #{orderType}</if>
......
...@@ -90,6 +90,11 @@ public class StoneScoreItems implements Serializable { ...@@ -90,6 +90,11 @@ public class StoneScoreItems implements Serializable {
*/ */
private Integer status; private Integer status;
/**
* 类别(区别于TYPE字段)
*/
private Integer simpleType;
/** /**
* 定时上架-时间 * 定时上架-时间
*/ */
......
package com.liquidnet.service.stone.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* 积分日志表
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class TempScore implements Serializable ,Cloneable{
private static final long serialVersionUID = 1L;
private String uid;
/**
* id
*/
private String mobile;
/**
* 用户id
*/
private BigDecimal priceCost;
private static final TempScore obj = new TempScore();
public static TempScore getNew() {
try {
return (TempScore) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new TempScore();
}
}
package com.liquidnet.service.stone.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.stone.entity.StoneScoreItems;
import com.liquidnet.service.stone.entity.TempScore;
/**
* <p>
* 积分物品表 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
public interface TempScoreMapper extends BaseMapper<TempScore> {
}
...@@ -33,7 +33,7 @@ public interface FeignStoneIntegralClient { ...@@ -33,7 +33,7 @@ public interface FeignStoneIntegralClient {
@GetMapping(value = "user/info", headers = {"Inner-Required=1"}) @GetMapping(value = "user/info", headers = {"Inner-Required=1"})
ResponseDto<StoneScoreListDto> stoneUserInfo(); ResponseDto<StoneScoreListDto> stoneUserInfo();
// 增加积分 // 增加积分 积分有上线
@PostMapping(value = "user/logs/in2111") @PostMapping(value = "user/logs/in2111")
ResponseDto<String> in2111( ResponseDto<String> in2111(
@RequestParam(value = "uid") String uid, @RequestParam(value = "uid") String uid,
...@@ -41,7 +41,7 @@ public interface FeignStoneIntegralClient { ...@@ -41,7 +41,7 @@ public interface FeignStoneIntegralClient {
@RequestParam(value = "content") String content @RequestParam(value = "content") String content
); );
// 增加积分 // 增加积分 积分无上线
@PostMapping(value = "user/logs/in2112") @PostMapping(value = "user/logs/in2112")
ResponseDto<String> in2112( ResponseDto<String> in2112(
@RequestParam(value = "uid") String uid, @RequestParam(value = "uid") String uid,
......
...@@ -118,6 +118,9 @@ public class AdamMemberController { ...@@ -118,6 +118,9 @@ public class AdamMemberController {
joinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10); joinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10);
joinusVo.setState(1); joinusVo.setState(1);
joinusVo.setQrCode(userInfoVo.getQrCode()); joinusVo.setQrCode(userInfoVo.getQrCode());
if (null != userMemberVo) {
joinusVo.setMemberNo(userMemberVo.getMemberNo());
}
} }
return ResponseDto.success(joinusVo); return ResponseDto.success(joinusVo);
...@@ -127,10 +130,13 @@ public class AdamMemberController { ...@@ -127,10 +130,13 @@ public class AdamMemberController {
@ApiOperation(value = "领取会员卡") @ApiOperation(value = "领取会员卡")
@GetMapping("joinus") @GetMapping("joinus")
public ResponseDto<AdamMemberJoinusVo> joinus() { public ResponseDto<AdamMemberJoinusVo> joinus() {
// AdamMemberJoinusVo joinusVo = adamRdmService.getMemberJoinusVo(10);
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
AdamUserInfoVo userInfoVo;
if (StringUtils.isEmpty(currentUid) || null == (userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid))) {
log.warn("###用户不存在[UID:{},TOKEN:{}]", currentUid, CurrentUtil.getToken());
return this.joininfo();
}
final String oldQrCode = userInfoVo.getQrCode(); final String oldQrCode = userInfoVo.getQrCode();
if (StringUtils.startsWithIgnoreCase(oldQrCode, "lN")) {// `lN`开头即未领取,这里做领取操作 if (StringUtils.startsWithIgnoreCase(oldQrCode, "lN")) {// `lN`开头即未领取,这里做领取操作
userInfoVo.setQrCode(adamRdmService.generateMemberUniqueSerialNumber(userInfoVo.getMobile())); userInfoVo.setQrCode(adamRdmService.generateMemberUniqueSerialNumber(userInfoVo.getMobile()));
...@@ -145,6 +151,9 @@ public class AdamMemberController { ...@@ -145,6 +151,9 @@ public class AdamMemberController {
AdamMemberJoinusVo joinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10); AdamMemberJoinusVo joinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10);
joinusVo.setState(1); joinusVo.setState(1);
joinusVo.setQrCode(userInfoVo.getQrCode()); joinusVo.setQrCode(userInfoVo.getQrCode());
if (null != userMemberVo) {
joinusVo.setMemberNo(userMemberVo.getMemberNo());
}
try { try {
feignAdamPlatformClient.initScore(currentUid); feignAdamPlatformClient.initScore(currentUid);
......
...@@ -389,6 +389,12 @@ public class AdamUserController { ...@@ -389,6 +389,12 @@ public class AdamUserController {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
AdamUserProfileVo userProfileVo = AdamUserProfileVo.getNew(); AdamUserProfileVo userProfileVo = AdamUserProfileVo.getNew();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
if (null == userInfoVo) {
log.warn("###用户不存在[UID:{},TOKEN:{}]", currentUid, CurrentUtil.getToken());
return ResponseDto.success(userProfileVo);
}
userProfileVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(currentUid)); userProfileVo.setRealNameInfo(adamRdmService.getRealInfoVoByUid(currentUid));
userProfileVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(currentUid)); userProfileVo.setThirdPartInfo(adamRdmService.getThirdPartVoListByUid(currentUid));
...@@ -398,7 +404,6 @@ public class AdamUserController { ...@@ -398,7 +404,6 @@ public class AdamUserController {
AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid); AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid);
userProfileVo.setUserMemberVo(userMemberVo); userProfileVo.setUserMemberVo(userMemberVo);
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
userProfileVo.setUserInfo(adamRdmService.ratingProvince(userInfoVo).desensitize(reviewUserInfo).rating(userMemberVo)); userProfileVo.setUserInfo(adamRdmService.ratingProvince(userInfoVo).desensitize(reviewUserInfo).rating(userMemberVo));
AdamMemberJoinusVo memberJoinusVo; AdamMemberJoinusVo memberJoinusVo;
...@@ -408,6 +413,9 @@ public class AdamUserController { ...@@ -408,6 +413,9 @@ public class AdamUserController {
memberJoinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10); memberJoinusVo = adamRdmService.getMemberJoinusVo(null != userMemberVo && userMemberVo.isActive() ? 50 : 10);
memberJoinusVo.setState(1); memberJoinusVo.setState(1);
memberJoinusVo.setQrCode(userInfoVo.getQrCode()); memberJoinusVo.setQrCode(userInfoVo.getQrCode());
if (null != userMemberVo) {
memberJoinusVo.setMemberNo(userMemberVo.getMemberNo());
}
} }
userProfileVo.setMemberJoinusVo(memberJoinusVo); userProfileVo.setMemberJoinusVo(memberJoinusVo);
...@@ -428,10 +436,11 @@ public class AdamUserController { ...@@ -428,10 +436,11 @@ public class AdamUserController {
} else { } else {
uid = CurrentUtil.getCurrentUid(); uid = CurrentUtil.getCurrentUid();
} }
if (uid == null) { AdamUserInfoVo userInfoVo;
if (uid == null || null == (userInfoVo = adamRdmService.getUserInfoVoByUid(uid))) {
log.warn("###用户不存在[MOBILE:{},UID:{},TOKEN:{}]", mobile, uid, CurrentUtil.getToken());
return ResponseDto.failure("账号不存在,请确认"); return ResponseDto.failure("账号不存在,请确认");
} }
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
AdamUserInfoSimpleVo vo = AdamUserInfoSimpleVo.getNew(); AdamUserInfoSimpleVo vo = AdamUserInfoSimpleVo.getNew();
if (userInfoVo.getState().equals(1)) { if (userInfoVo.getState().equals(1)) {
vo.setMobile(userInfoVo.getMobile()); vo.setMobile(userInfoVo.getMobile());
......
...@@ -107,7 +107,9 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -107,7 +107,9 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
} }
String beforeNickname = existUserInfoVo.getNickname(), nickname = parameter.getNickname(); String beforeNickname = existUserInfoVo.getNickname(), nickname = parameter.getNickname();
if (StringUtils.isEmpty(beforeNickname) || (StringUtils.isNotBlank(nickname) && !beforeNickname.equals(nickname))) { if (isComplete == 11 && (
StringUtils.isEmpty(beforeNickname) || (StringUtils.isNotBlank(nickname) && !beforeNickname.equals(nickname))
)) {
// IM设置推送昵称 // IM设置推送昵称
easemobUtil.settingNoticeNickname(nickname, existUserInfoVo.getUid()); easemobUtil.settingNoticeNickname(nickname, existUserInfoVo.getUid());
} }
......
...@@ -66,7 +66,7 @@ public class ConsumerSweetStoneIntegralReceiver extends AbstractSqlRedisReceiver ...@@ -66,7 +66,7 @@ public class ConsumerSweetStoneIntegralReceiver extends AbstractSqlRedisReceiver
return true; return true;
} }
if (param.getType() == 1) { if (param.getType() == 1) {
res = feignStoneIntegralClient.in2111( res = feignStoneIntegralClient.in2112(
param.getUid(), param.getUid(),
param.getScore(), param.getScore(),
param.getContent() param.getContent()
......
...@@ -16,8 +16,11 @@ import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper; ...@@ -16,8 +16,11 @@ import com.liquidnet.service.kylin.mapper.KylinOrderTicketsMapper;
import com.liquidnet.service.stone.constant.StoneConstant; import com.liquidnet.service.stone.constant.StoneConstant;
import com.liquidnet.service.stone.entity.StoneScoreLogs; import com.liquidnet.service.stone.entity.StoneScoreLogs;
import com.liquidnet.service.stone.entity.StoneScoreUser; import com.liquidnet.service.stone.entity.StoneScoreUser;
import com.liquidnet.service.stone.entity.TempScore;
import com.liquidnet.service.stone.mapper.StoneScoreItemsMapper;
import com.liquidnet.service.stone.mapper.StoneScoreLogsMapper; import com.liquidnet.service.stone.mapper.StoneScoreLogsMapper;
import com.liquidnet.service.stone.mapper.StoneScoreUserMapper; import com.liquidnet.service.stone.mapper.StoneScoreUserMapper;
import com.liquidnet.service.stone.mapper.TempScoreMapper;
import com.liquidnet.service.stone.vo.StoneUserVo; import com.liquidnet.service.stone.vo.StoneUserVo;
import com.liquidnet.service.sweet.constant.SweetConstant; import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.vo.SweetAppletUsersVo; import com.liquidnet.service.sweet.vo.SweetAppletUsersVo;
...@@ -54,44 +57,33 @@ public class StoneServerImpl { ...@@ -54,44 +57,33 @@ public class StoneServerImpl {
StoneScoreLogsMapper stoneScoreLogsMapper; StoneScoreLogsMapper stoneScoreLogsMapper;
@Autowired @Autowired
FeignStoneIntegralClient stoneIntegralClient; FeignStoneIntegralClient stoneIntegralClient;
@Autowired
private static final String SQL_URL = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/ln_scene"; TempScoreMapper tempScoreMapper;
private static final String SQL_USER = "zhengzai";
private static final String SQL_PWD = "GDDHBJOEcJw!";
public boolean initScore(String uid) { public boolean initScore(String uid) {
try { try {
String sql = "select * from temp_score where uid = " + uid; TempScore dataBean = tempScoreMapper.selectOne(Wrappers.lambdaQuery(TempScore.class).eq(TempScore::getUid, uid));
Connection connection = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PWD); int score = dataBean.getPriceCost().intValue();
//查询数据 int isLog = stoneScoreLogsMapper.selectCount(Wrappers.lambdaQuery(StoneScoreLogs.class).eq(StoneScoreLogs::getUid, uid).eq(StoneScoreLogs::getContent, "历史积分"));
PreparedStatement preparedStatement = connection.prepareStatement(sql); if (isLog > 0) {
ResultSetImpl row = (ResultSetImpl) preparedStatement.executeQuery(); return true;
//数据迁移 }
while (row.next()) { //创建 用户积分数据
int score = row.getInt("price_cost"); int isExists = stoneScoreUserMapper.selectCount(Wrappers.lambdaQuery(StoneScoreUser.class).eq(StoneScoreUser::getUid, uid));
int isLog = stoneScoreLogsMapper.selectCount(Wrappers.lambdaQuery(StoneScoreLogs.class).eq(StoneScoreLogs::getUid, uid).eq(StoneScoreLogs::getContent, "历史积分")); if (isExists <= 0) {
if (isLog > 0) { StoneScoreUser data = StoneScoreUser.getNew();
return true; data.setStatus(1);
} data.setScoreId(IDGenerator.nextTimeId2());
//创建 用户积分数据 data.setUid(uid);
int isExists = stoneScoreUserMapper.selectCount(Wrappers.lambdaQuery(StoneScoreUser.class).eq(StoneScoreUser::getUid, uid)); data.setCreatedAt(LocalDateTime.now());
if (isExists <= 0) { stoneScoreUserMapper.insert(data);
StoneScoreUser data = StoneScoreUser.getNew(); StoneUserVo userTaskVo = StoneUserVo.getNew();
data.setStatus(1); userTaskVo.getTask();
data.setScoreId(IDGenerator.nextTimeId2()); userTaskVo.setUid(uid);
data.setUid(uid); userTaskVo.setStatus(1);
data.setCreatedAt(LocalDateTime.now()); userCreate(userTaskVo);
stoneScoreUserMapper.insert(data);
StoneUserVo userTaskVo = StoneUserVo.getNew();
userTaskVo.getTask();
userTaskVo.setUid(uid);
userTaskVo.setStatus(1);
userCreate(userTaskVo);
}
stoneIntegralClient.in2111(uid, score, "历史积分");
} }
row.close(); stoneIntegralClient.in2111(uid, score, "历史积分");
preparedStatement.close();
} catch (Exception e) { } catch (Exception e) {
log.info("异常 : {} ", e); log.info("异常 : {} ", e);
e.printStackTrace(); e.printStackTrace();
......
...@@ -31,6 +31,13 @@ public class StoneItemController { ...@@ -31,6 +31,13 @@ public class StoneItemController {
return ResponseDto.success(stoneScoreItemsService.itemList(page, 40)); return ResponseDto.success(stoneScoreItemsService.itemList(page, 40));
} }
@GetMapping("list/simpleType")
@ApiOperation("积分商品列表(simpleType)")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<PageInfo<List<StoneItemListVo>>> itemListSimpleType(@RequestParam("page") @Valid Integer page, @RequestParam("simpleType") @Valid Integer simpleType) {
return ResponseDto.success(stoneScoreItemsService.itemListSimpleType(simpleType, page, 1000));
}
@GetMapping("details") @GetMapping("details")
@ApiOperation("积分商品详情") @ApiOperation("积分商品详情")
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
......
...@@ -46,15 +46,57 @@ public class StoneScoreItemsServiceImpl implements IStoneScoreItemsService { ...@@ -46,15 +46,57 @@ public class StoneScoreItemsServiceImpl implements IStoneScoreItemsService {
page = 1; page = 1;
} }
List<StoneScoreItems> voList; List<StoneScoreItems> voList;
HashMap<String, Object> info = mongoUtils.itemListPage(page, size); long count;
try { if (page == 1) {
voList = (List<StoneScoreItems>) info.get("data"); voList = redisUtils.getList();
} catch (Exception e) { count = voList.size();
voList = new ArrayList(); } else {
e.printStackTrace(); HashMap<String, Object> info = mongoUtils.itemListPage(page, size, null);
try {
voList = (List<StoneScoreItems>) info.get("data");
} catch (Exception e) {
voList = new ArrayList();
e.printStackTrace();
}
count = 40 + (long) info.get("total");
}
List<StoneItemListVo> returnVoList = ObjectUtils.getStoneItemListVoArrayList();
for (int i = 0; i < voList.size(); i++) {
StoneScoreItems vo = voList.get(i);
StoneItemListVo returnVo = StoneItemListVo.getNew().copy(vo);
returnVoList.add(returnVo);
} }
long count = (long) info.get("total");
mPageInfo = new PageInfo(returnVoList);
mPageInfo.setTotal(count);
log.info(UserPathDto.setData("积分商品列表", "", voList));
return mPageInfo;
}
@Override
public PageInfo<List<StoneItemListVo>> itemListSimpleType(Integer simpleType, Integer page, Integer size) {
PageInfo<List<StoneItemListVo>> mPageInfo;
size = 40;
if (page == null || page == 1 || page == 0) {
page = 1;
}
List<StoneScoreItems> voList;
long count;
if (page == 1) {
voList = redisUtils.getListSimple(simpleType);
count = voList.size();
} else {
HashMap<String, Object> info = mongoUtils.itemListPage(page, size, simpleType);
try {
voList = (List<StoneScoreItems>) info.get("data");
} catch (Exception e) {
voList = new ArrayList();
e.printStackTrace();
}
count = 40 + (long) info.get("total");
}
List<StoneItemListVo> returnVoList = ObjectUtils.getStoneItemListVoArrayList(); List<StoneItemListVo> returnVoList = ObjectUtils.getStoneItemListVoArrayList();
for (int i = 0; i < voList.size(); i++) { for (int i = 0; i < voList.size(); i++) {
...@@ -82,9 +124,9 @@ public class StoneScoreItemsServiceImpl implements IStoneScoreItemsService { ...@@ -82,9 +124,9 @@ public class StoneScoreItemsServiceImpl implements IStoneScoreItemsService {
int scoreStatus = 2; int scoreStatus = 2;
int limitStatus = 2; int limitStatus = 2;
//判断库存 //判断库存
if (restCount <= 0) { if (restCount <= 0 && restCount != -999) {
data.setStatus(8); data.setStatus(8);
} else if (restCount <= 50) { } else if (restCount <= 50 && restCount != -999) {
data.setStatus(9); data.setStatus(9);
} }
//判断积分是否够 //判断积分是否够
...@@ -99,7 +141,7 @@ public class StoneScoreItemsServiceImpl implements IStoneScoreItemsService { ...@@ -99,7 +141,7 @@ public class StoneScoreItemsServiceImpl implements IStoneScoreItemsService {
} else { } else {
limitStatus = 1; limitStatus = 1;
} }
StoneScoreItemVo vo = StoneScoreItemVo.getNew().copy(data,scoreStatus,limitStatus); StoneScoreItemVo vo = StoneScoreItemVo.getNew().copy(data, scoreStatus, limitStatus);
return ResponseDto.success(vo); return ResponseDto.success(vo);
} }
} }
...@@ -56,7 +56,9 @@ public class StoneScoreOrderServiceImpl implements IStoneScoreOrderService { ...@@ -56,7 +56,9 @@ public class StoneScoreOrderServiceImpl implements IStoneScoreOrderService {
if (data == null) { if (data == null) {
return ResponseDto.failure("参数异常"); return ResponseDto.failure("参数异常");
} }
if (stoneRedisUtils.getStoneGeneralSurplus(itemId) <= 0) {
boolean is8 = stoneRedisUtils.getStoneGeneralSurplus(itemId) == -999;
if (stoneRedisUtils.getStoneGeneralSurplus(itemId) <= 0 && !is8) {
return ResponseDto.failure("该商品库存不足"); return ResponseDto.failure("该商品库存不足");
} }
// StoneScoreItemVo vo = StoneScoreItemVo.getNew().copy(data, 1, 1); // StoneScoreItemVo vo = StoneScoreItemVo.getNew().copy(data, 1, 1);
...@@ -80,7 +82,9 @@ public class StoneScoreOrderServiceImpl implements IStoneScoreOrderService { ...@@ -80,7 +82,9 @@ public class StoneScoreOrderServiceImpl implements IStoneScoreOrderService {
//增加限购 //增加限购
stoneRedisUtils.addItemLimit(uid, itemId, number); stoneRedisUtils.addItemLimit(uid, itemId, number);
//减少库存 //减少库存
stoneRedisUtils.changeStoneGeneralSurplus(itemId, -number); if (!is8) {
stoneRedisUtils.changeStoneGeneralSurplus(itemId, -number);
}
//减少积分 //减少积分
stoneScoreLogsService.deScore(uid, needScore, 0, "购买积分商品:" + data.getTargetTitle()); stoneScoreLogsService.deScore(uid, needScore, 0, "购买积分商品:" + data.getTargetTitle());
//下单 //下单
...@@ -123,23 +127,23 @@ public class StoneScoreOrderServiceImpl implements IStoneScoreOrderService { ...@@ -123,23 +127,23 @@ public class StoneScoreOrderServiceImpl implements IStoneScoreOrderService {
order.getPaymentId(), order.getTimePay(), order.getPayCountdownMinute(), order.getStatus(), 1, order.getCreatedAt(), order.getPaymentId(), order.getTimePay(), order.getPayCountdownMinute(), order.getStatus(), 1, order.getCreatedAt(),
mCouponId mCouponId
}); });
if (data.getType().equals("1")) {//券类型 // if (data.getType().equals("1")) {//券类型
//mysql 发送券 //mysql 发送券
LinkedList<Object[]> sqlsDataB = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlsDataB = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("stone_candy_mgt_coupon.add_for_member")); sqls.add(SqlMapping.get("stone_candy_mgt_coupon.add_for_member"));
sqlsDataB.add(new Object[]{ sqlsDataB.add(new Object[]{
mCouponId, data.getTargetId(), number, order.getUserMobile(), order.getCreatedAt(), "SCORE_BUY_COUPON", order.getCreatedAt() mCouponId, data.getTargetId(), number, order.getUserMobile(), order.getCreatedAt(), "SCORE_BUY_COUPON", order.getCreatedAt()
}); });
// 执行sql // 执行sql
String sqlData = SqlMapping.gets(sqls, sqlsDataA, sqlsDataB); String sqlData = SqlMapping.gets(sqls, sqlsDataA, sqlsDataB);
queueUtils.sendMsgByRedis(MQConst.StoneQueue.STONE_ORDER_COUPON.getKey(), queueUtils.sendMsgByRedis(MQConst.StoneQueue.STONE_ORDER_COUPON.getKey(),
sqlData); sqlData);
} else {//非券类型 // } else {//非券类型
// 执行sql // // 执行sql
String sqlData = SqlMapping.gets(sqls, sqlsDataA); // String sqlData = SqlMapping.gets(sqls, sqlsDataA);
queueUtils.sendMsgByRedis(MQConst.StoneQueue.STONE_ORDER_COUPON.getKey(), // queueUtils.sendMsgByRedis(MQConst.StoneQueue.STONE_ORDER_COUPON.getKey(),
sqlData); // sqlData);
} // }
return ResponseDto.success("下单成功"); return ResponseDto.success("下单成功");
} }
......
...@@ -46,13 +46,17 @@ public class StoneMongoUtils { ...@@ -46,13 +46,17 @@ public class StoneMongoUtils {
* *
* @return * @return
*/ */
public HashMap<String, Object> itemListPage(int page, int size) { public HashMap<String, Object> itemListPage(int page, int size, Integer simpleType) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
HashMap<String, Object> info = CollectionUtil.mapStringObject(); HashMap<String, Object> info = CollectionUtil.mapStringObject();
// 排序 分页 // 排序 分页
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt")); Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt"));
//条件 //条件
Query query = Query.query(new Criteria().orOperator(Criteria.where("status").is(1),Criteria.where("status").is(2).and("startTime").lte(now).and("endTime").gte(now))); Criteria criteria = new Criteria().orOperator(Criteria.where("status").is(1), Criteria.where("status").is(2).and("startTime").lte(now).and("endTime").gte(now));
if (simpleType != null) {
criteria = criteria.and("simpleType").is(simpleType);
}
Query query = Query.query(criteria);
// 查询总数 // 查询总数
long count = mongoTemplate.count(query, StoneScoreItems.class, StoneScoreItems.class.getSimpleName()); long count = mongoTemplate.count(query, StoneScoreItems.class, StoneScoreItems.class.getSimpleName());
query.with(pageable); query.with(pageable);
...@@ -80,7 +84,7 @@ public class StoneMongoUtils { ...@@ -80,7 +84,7 @@ public class StoneMongoUtils {
*/ */
public StoneUserVo userGet(String uid) { public StoneUserVo userGet(String uid) {
Query query = Query.query(Criteria.where("uid").is(uid)); Query query = Query.query(Criteria.where("uid").is(uid));
StoneUserVo vo = mongoTemplate.findOne(query, StoneUserVo.class,StoneUserVo.class.getSimpleName()); StoneUserVo vo = mongoTemplate.findOne(query, StoneUserVo.class, StoneUserVo.class.getSimpleName());
return vo; return vo;
} }
...@@ -109,13 +113,14 @@ public class StoneMongoUtils { ...@@ -109,13 +113,14 @@ public class StoneMongoUtils {
/** /**
* 获取 用户积分日志 列表 * 获取 用户积分日志 列表
*
* @param uid * @param uid
* @param page * @param page
* @param size * @param size
* @return * @return
*/ */
public HashMap<String, Object> logList(String uid,int page, int size) { public HashMap<String, Object> logList(String uid, int page, int size) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
HashMap<String, Object> info = CollectionUtil.mapStringObject(); HashMap<String, Object> info = CollectionUtil.mapStringObject();
// 排序 分页 // 排序 分页
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt")); Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt"));
...@@ -143,13 +148,14 @@ public class StoneMongoUtils { ...@@ -143,13 +148,14 @@ public class StoneMongoUtils {
/** /**
* 获取 用户订单 列表 * 获取 用户订单 列表
*
* @param uid * @param uid
* @param page * @param page
* @param size * @param size
* @return * @return
*/ */
public HashMap<String, Object> orderList(String uid,int page, int size) { public HashMap<String, Object> orderList(String uid, int page, int size) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
HashMap<String, Object> info = CollectionUtil.mapStringObject(); HashMap<String, Object> info = CollectionUtil.mapStringObject();
// 排序 分页 // 排序 分页
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt")); Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "createdAt"));
......
...@@ -9,6 +9,7 @@ import com.liquidnet.service.stone.vo.StoneUserVo; ...@@ -9,6 +9,7 @@ import com.liquidnet.service.stone.vo.StoneUserVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Component @Component
...@@ -19,6 +20,39 @@ public class StoneRedisUtils { ...@@ -19,6 +20,39 @@ public class StoneRedisUtils {
@Autowired @Autowired
private StoneMongoUtils mongoUtils; private StoneMongoUtils mongoUtils;
public List<StoneScoreItems> getList() {
try {
String redisKey = StoneConstant.ITEM_LIST;
Object obj = redisUtil.get(redisKey);
if (obj == null) {
List<StoneScoreItems> list = (List<StoneScoreItems>) mongoUtils.itemListPage(1, 40, null).get("data");
redisUtil.set(redisKey, list);
return list;
} else {
return (List<StoneScoreItems>) obj;
}
}catch (Exception e){
return new ArrayList();
}
}
public List<StoneScoreItems> getListSimple(Integer simpleType) {
try {
String redisKey = StoneConstant.ITEM_LIST_SIMPLE.concat(simpleType.toString());
Object obj = redisUtil.get(redisKey);
if (obj == null) {
List<StoneScoreItems> list = (List<StoneScoreItems>) mongoUtils.itemListPage(1, 40, simpleType).get("data");
redisUtil.set(redisKey, list);
return list;
} else {
return (List<StoneScoreItems>) obj;
}
}catch (Exception e){
return new ArrayList();
}
}
/** /**
* 获取 积分物品 剩余库存 * 获取 积分物品 剩余库存
* *
...@@ -202,7 +236,7 @@ public class StoneRedisUtils { ...@@ -202,7 +236,7 @@ public class StoneRedisUtils {
Object obj = redisUtil.get(redisKey); Object obj = redisUtil.get(redisKey);
if (obj == null) { if (obj == null) {
List<StoneScoreLogs> getLogsList = (List<StoneScoreLogs>) mongoUtils.logList(uid, 1, 40).get("data"); List<StoneScoreLogs> getLogsList = (List<StoneScoreLogs>) mongoUtils.logList(uid, 1, 40).get("data");
redisUtil.set(redisKey,getLogsList); redisUtil.set(redisKey, getLogsList);
return getLogsList; return getLogsList;
} else { } else {
return (List<StoneScoreLogs>) obj; return (List<StoneScoreLogs>) obj;
...@@ -314,12 +348,12 @@ public class StoneRedisUtils { ...@@ -314,12 +348,12 @@ public class StoneRedisUtils {
} }
public boolean lockUid(String uid){ public boolean lockUid(String uid) {
String redisKey = StoneConstant.LOCK.concat(uid); String redisKey = StoneConstant.LOCK.concat(uid);
return redisUtil.lock(uid,1,1); return redisUtil.lock(uid, 1, 1);
} }
public void unLockUid(String uid){ public void unLockUid(String uid) {
String redisKey = StoneConstant.LOCK.concat(uid); String redisKey = StoneConstant.LOCK.concat(uid);
redisUtil.uLock(redisKey); redisUtil.uLock(redisKey);
} }
......
...@@ -49,4 +49,10 @@ public class SweetIntegralActivityController { ...@@ -49,4 +49,10 @@ public class SweetIntegralActivityController {
public ResponseDto drawBlack(@RequestParam String uidS) { public ResponseDto drawBlack(@RequestParam String uidS) {
return activityService.drawBlack(uidS); return activityService.drawBlack(uidS);
} }
@PostMapping("drawWhite")
@ApiOperation("抽奖白名单")
public ResponseDto drawWhite(@RequestParam String uidS) {
return activityService.drawWhite(uidS);
}
} }
...@@ -100,7 +100,7 @@ public class TextMsgHandler implements WxMpMessageHandler { ...@@ -100,7 +100,7 @@ public class TextMsgHandler implements WxMpMessageHandler {
redisUtils.setSweetMaoDengOpen(openId, 10 * 60); redisUtils.setSweetMaoDengOpen(openId, 10 * 60);
WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("没想到吧,你的喵星人主子在玩耍逗喵棒之外,也有一个隐秘的音乐人分身呢!\n" + WxMpXmlOutTextMessage build = WxMpXmlOutMessage.TEXT().content("没想到吧,你的喵星人主子在玩耍逗喵棒之外,也有一个隐秘的音乐人分身呢!\n" +
"看看TA到底是怎样一只音乐喵!\n" + "看看TA到底是怎样一只音乐喵!\n" +
"参与活动之前,请先告诉我们猫咪的名字!(直接在对话框输入即可👇,9个汉字或18个英文字符以内)\n") "参与活动之前,请先告诉我们猫咪的名字!(直接在对话框输入即可👇,8个汉字或8个英文字符以内)\n")
.fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()) .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
.build(); .build();
return build; return build;
...@@ -115,7 +115,7 @@ public class TextMsgHandler implements WxMpMessageHandler { ...@@ -115,7 +115,7 @@ public class TextMsgHandler implements WxMpMessageHandler {
} }
if (content.length() > 8) { if (content.length() > 8) {
return WxMpXmlOutMessage.TEXT().content("昵称要9个字以内~") return WxMpXmlOutMessage.TEXT().content("昵称要8个字以内~")
.fromUser(wxMessage.getToUser()).toUser(openId) .fromUser(wxMessage.getToUser()).toUser(openId)
.build(); .build();
} }
......
...@@ -483,12 +483,17 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -483,12 +483,17 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
BigDecimal prizeNumBig = BigDecimal.valueOf(prizeNum); BigDecimal prizeNumBig = BigDecimal.valueOf(prizeNum);
// 概率 // 概率
BigDecimal estimatedNumBig = BigDecimal.valueOf(estimatedNum); BigDecimal estimatedNumBig = BigDecimal.valueOf(estimatedNum);
// 会员概率*2 // 会员、白名单概率*2
try { try {
ResponseDto<Boolean> isMemberDto = feignAdamBaseClient.isMember(uid); List<String> drawWhite = redisDataUtils.getIntegralActivityDrawWhite();
Boolean isMember = isMemberDto.getData(); if (drawWhite.contains(uid)) {
if (isMember) {
estimatedNumBig = estimatedNumBig.divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP); estimatedNumBig = estimatedNumBig.divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP);
} else {
ResponseDto<Boolean> isMemberDto = feignAdamBaseClient.isMember(uid);
Boolean isMember = isMemberDto.getData();
if (isMember) {
estimatedNumBig = estimatedNumBig.divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP);
}
} }
} catch (Exception e) { } catch (Exception e) {
log.error("获取用户是否是会员失败 [uid:{}, e:{}]", uid, e); log.error("获取用户是否是会员失败 [uid:{}, e:{}]", uid, e);
......
...@@ -133,4 +133,12 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA ...@@ -133,4 +133,12 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
// boolean contains = aList.contains("11"); // boolean contains = aList.contains("11");
return ResponseDto.success(); return ResponseDto.success();
} }
@Override
public ResponseDto drawWhite(String uidS) {
String[] strings = uidS.split(",");
List<String> aList = Arrays.asList(strings);
redisDataUtils.setIntegralActivityDrawWhite(aList);
return ResponseDto.success();
}
} }
...@@ -680,6 +680,19 @@ public class RedisDataUtils { ...@@ -680,6 +680,19 @@ public class RedisDataUtils {
return (List<String>) obj; return (List<String>) obj;
} }
} }
public void setIntegralActivityDrawWhite(List<String> uidS) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_WHITE;
redisUtil.set(redisKey, uidS);
}
public List<String> getIntegralActivityDrawWhite() {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_WHITE;
Object obj = redisUtil.get(redisKey);
if (null == obj) {
return Arrays.asList();
} else {
return (List<String>) obj;
}
}
public boolean setIntegralDrawLock(String userId) { public boolean setIntegralDrawLock(String userId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LOCK String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LOCK
......
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