|
|
|
|
@ -1,249 +0,0 @@
|
|
|
|
|
package com.rabbiter.market.service.sale_management.exchange_point_products.impl;
|
|
|
|
|
|
|
|
|
|
import com.rabbiter.market.common.redis.service.RedisTemplateService;
|
|
|
|
|
import com.rabbiter.market.domain.goods_management.goods.Goods;
|
|
|
|
|
import com.rabbiter.market.domain.goods_management.point_products.PointProducts;
|
|
|
|
|
import com.rabbiter.market.domain.member_management.member.Member;
|
|
|
|
|
import com.rabbiter.market.domain.personnel_management.employee.Employee;
|
|
|
|
|
import com.rabbiter.market.domain.sale_management.exchange_point_products.ExchangePointProducts;
|
|
|
|
|
import com.rabbiter.market.mapper.sale_management.exchange_point_products.ExchangePointProductsMapper;
|
|
|
|
|
import com.rabbiter.market.qo.exchange_point_products_records.QueryExchangePointProductsRecords;
|
|
|
|
|
import com.rabbiter.market.service.goods_management.goods.IGoodsService;
|
|
|
|
|
import com.rabbiter.market.service.goods_management.point_products.IPointProductsService;
|
|
|
|
|
import com.rabbiter.market.service.member_management.member.IMemberService;
|
|
|
|
|
import com.rabbiter.market.service.sale_management.exchange_point_products.IExchangePointProductsService;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
public class ExchangePointProductsServiceImpl extends ServiceImpl<ExchangePointProductsMapper, ExchangePointProducts> implements IExchangePointProductsService {
|
|
|
|
|
// 渚濊禆娉ㄥ叆...
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 鏍规嵁浼氬憳ID鏌ヨ鍙厬鎹㈠晢鍝侀<EFBFBD>夐」
|
|
|
|
|
* @param memberId 浼氬憳ID锛堝彲涓虹┖锛<EFBFBD>
|
|
|
|
|
* @return 鍖呭惈鍟嗗搧ID鍜屽悕绉扮殑Map鍒楄〃
|
|
|
|
|
* 閫昏緫璇存槑锛<EFBFBD>
|
|
|
|
|
* - 褰搈emberId涓虹┖鏃讹紝杩斿洖鎵<EFBFBD>鏈夐渶瑕佺Н鍒嗙殑鍟嗗搧
|
|
|
|
|
* - 褰搈emberId瀛樺湪鏃讹紝鍙繑鍥炰細鍛樺綋鍓嶇Н鍒嗗彲鍏戞崲鐨勫晢鍝<EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMemberService memberService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IPointProductsService pointProductsService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private RedisTemplateService redisTemplateService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IGoodsService goodsService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Map<String, Object>> queryPointProductBymemberId(Long memberId) {
|
|
|
|
|
/**
|
|
|
|
|
* 閫氳繃鍟嗗搧ID鑾峰彇绉垎鍟嗗搧璇︽儏
|
|
|
|
|
* @param goodsId 鍟嗗搧ID
|
|
|
|
|
* @return 绉垎鍟嗗搧瀹炰綋
|
|
|
|
|
*/
|
|
|
|
|
Member member = memberService.getById(memberId);
|
|
|
|
|
|
|
|
|
|
QueryWrapper<PointProducts> pointProductsQueryWrapper = new QueryWrapper<PointProducts>();
|
|
|
|
|
if (memberId == null) {
|
|
|
|
|
pointProductsQueryWrapper.gt("integral", 0L);
|
|
|
|
|
} else {
|
|
|
|
|
pointProductsQueryWrapper.le("integral", member.getIntegral());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<PointProducts> list = pointProductsService.list(pointProductsQueryWrapper);
|
|
|
|
|
List<Map<String, Object>> mapArrayList = new ArrayList<>();
|
|
|
|
|
for (PointProducts pointProducts : list) {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("id", pointProducts.getGoodsId());
|
|
|
|
|
map.put("name", pointProducts.getGoodsName());
|
|
|
|
|
mapArrayList.add(map);
|
|
|
|
|
}
|
|
|
|
|
return mapArrayList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public PointProducts queryPointProductByGoodsId(Long goodsId) {
|
|
|
|
|
/**
|
|
|
|
|
* 淇濆瓨绉垎鍏戞崲璁板綍
|
|
|
|
|
* @param exchangePointProducts 鍏戞崲璁板綍瀹炰綋
|
|
|
|
|
* @param token 鐢ㄦ埛浠ょ墝
|
|
|
|
|
* 鏍稿績閫昏緫锛<EFBFBD>
|
|
|
|
|
* 1. 鐢熸垚鍞竴鍏戞崲鍗曞彿
|
|
|
|
|
* 2. 璁剧疆鎿嶄綔浜轰俊鎭紙浠嶳edis鑾峰彇锛<EFBFBD>
|
|
|
|
|
* 3. 鏇存柊浼氬憳绉垎
|
|
|
|
|
* 4. 淇濆瓨鍏戞崲璁板綍
|
|
|
|
|
*/
|
|
|
|
|
PointProducts pointProducts = pointProductsService.getOne(new QueryWrapper<PointProducts>().eq(goodsId != null, "goods_id", goodsId));
|
|
|
|
|
return pointProducts;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void saveExchangePointProductRecords(ExchangePointProducts exchangePointProducts, String token) {
|
|
|
|
|
/**
|
|
|
|
|
* 鏌ヨ鏈夊厬鎹㈣褰曠殑浼氬憳鎵嬫満鍙烽<EFBFBD>夐」
|
|
|
|
|
* @return 鍖呭惈浼氬憳ID鍜屾墜鏈哄彿鐨凪ap鍒楄〃
|
|
|
|
|
* 娉ㄦ剰锛氫粎鏌ヨ鐘舵<EFBFBD>佹甯哥殑鍏戞崲璁板綍
|
|
|
|
|
*/
|
|
|
|
|
Employee employee = JSONObject.parseObject(redisTemplateService.getCacheObject(token), Employee.class);
|
|
|
|
|
exchangePointProducts.setCn(IdWorker.getIdStr());
|
|
|
|
|
exchangePointProducts.setUpdateby(employee.getNickName());
|
|
|
|
|
exchangePointProducts.setUpdateId(employee.getId());
|
|
|
|
|
exchangePointProducts.setUpdateTime(new Date());
|
|
|
|
|
exchangePointProducts.setState(ExchangePointProducts.STATE_NORMAL);
|
|
|
|
|
Member member = memberService.getById(exchangePointProducts.getMemberId());
|
|
|
|
|
member.setIntegral(member.getIntegral() - exchangePointProducts.getIntegral());
|
|
|
|
|
memberService.updateById(member);
|
|
|
|
|
super.save(exchangePointProducts);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Map<String, Object>> queryOptionsMemberPhone() {
|
|
|
|
|
/**
|
|
|
|
|
* 閫昏緫鍒犻櫎鍏戞崲璁板綍锛堟爣璁板垹闄わ級
|
|
|
|
|
* @param cn 鍏戞崲鍗曞彿
|
|
|
|
|
*/
|
|
|
|
|
QueryWrapper<ExchangePointProducts> wrapper = new QueryWrapper<ExchangePointProducts>()
|
|
|
|
|
.select("member_id")
|
|
|
|
|
.eq("state", ExchangePointProducts.STATE_NORMAL)
|
|
|
|
|
.groupBy("member_id");
|
|
|
|
|
List<ExchangePointProducts> list = super.list(wrapper);
|
|
|
|
|
List<Long> memberIds = new ArrayList<>();
|
|
|
|
|
for (ExchangePointProducts exchangePointProducts : list) {
|
|
|
|
|
memberIds.add(exchangePointProducts.getMemberId());
|
|
|
|
|
}
|
|
|
|
|
if (memberIds==null || memberIds.size()<=0){
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
List<Member> members = memberService.listByIds(memberIds);
|
|
|
|
|
List<Map<String, Object>> vos = new ArrayList<>();
|
|
|
|
|
for (Member member : members) {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("id", member.getId());
|
|
|
|
|
map.put("name", member.getPhone());
|
|
|
|
|
vos.add(map);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return vos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void delExchangePointProducts(String cn) {
|
|
|
|
|
/**
|
|
|
|
|
* 鍒嗛〉鏌ヨ鍏戞崲璁板綍
|
|
|
|
|
* @param qo 鏌ヨ鏉′欢瀵硅薄
|
|
|
|
|
* @return 鍒嗛〉缁撴灉锛堝寘鍚叧鑱旂殑浼氬憳鎵嬫満鍙峰拰鍟嗗搧淇℃伅锛<EFBFBD>
|
|
|
|
|
* 鍔熻兘鐗圭偣锛<EFBFBD>
|
|
|
|
|
* - 鏀寔鏃堕棿鑼冨洿杩囨护
|
|
|
|
|
* - 鏀寔浼氬憳ID杩囨护
|
|
|
|
|
* - 鏀寔鍗曞彿妯$硦鏌ヨ
|
|
|
|
|
* - 鑷姩琛ュ厖鍟嗗搧灏侀潰鍜屽悕绉<EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
UpdateWrapper<ExchangePointProducts> wrapper = new UpdateWrapper<ExchangePointProducts>()
|
|
|
|
|
.set("state", ExchangePointProducts.STATE_DEL)
|
|
|
|
|
.eq("cn", cn);
|
|
|
|
|
super.update(wrapper);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Page<ExchangePointProducts> queryPageByQoExchangePointProducts(QueryExchangePointProductsRecords qo) {
|
|
|
|
|
/**
|
|
|
|
|
* 鏌ヨ鎵<EFBFBD>鏈夊彲鍏戞崲鍟嗗搧閫夐」
|
|
|
|
|
* @return 鍖呭惈鍟嗗搧ID鍜屽悕绉扮殑Map鍒楄〃
|
|
|
|
|
*/
|
|
|
|
|
Page<ExchangePointProducts> page = new Page<>(qo.getCurrentPage(), qo.getPageSize());
|
|
|
|
|
QueryWrapper<ExchangePointProducts> queryWrapper = new QueryWrapper<ExchangePointProducts>()
|
|
|
|
|
.eq("state", ExchangePointProducts.STATE_NORMAL)
|
|
|
|
|
.eq(qo.getMemberId() != null, "member_id", qo.getMemberId())
|
|
|
|
|
.ge(StringUtils.hasText(qo.getStartTime()), "update_time", qo.getStartTime())
|
|
|
|
|
.le(StringUtils.hasText(qo.getEndTime()), "update_time", qo.getEndTime())
|
|
|
|
|
.likeRight(StringUtils.hasText(qo.getCn()), "cn", qo.getCn());
|
|
|
|
|
super.page(page, queryWrapper);
|
|
|
|
|
for (ExchangePointProducts record : page.getRecords()) {
|
|
|
|
|
Member member = memberService.getById(record.getMemberId());
|
|
|
|
|
record.setMemberPhone(member.getPhone());
|
|
|
|
|
Goods goods = goodsService.getById(record.getGoodsId());
|
|
|
|
|
record.setGoodsCoverUrl(goods.getCoverUrl());
|
|
|
|
|
record.setGoodsName(goods.getName());
|
|
|
|
|
}
|
|
|
|
|
return page;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Map<String, Object>> queryOptionsPointProducts() { /**
|
|
|
|
|
* 鏌ヨ鎵<EFBFBD>鏈夋甯哥姸鎬佷細鍛橀<EFBFBD>夐」
|
|
|
|
|
* @return 鍖呭惈浼氬憳ID鍜屾墜鏈哄彿鐨凪ap鍒楄〃
|
|
|
|
|
*/
|
|
|
|
|
QueryWrapper<PointProducts> wrapper = new QueryWrapper<PointProducts>()
|
|
|
|
|
.eq("state", PointProducts.STATE_NORMAL);
|
|
|
|
|
List<PointProducts> list = pointProductsService.list(wrapper);
|
|
|
|
|
List<Map<String, Object>> vos = new ArrayList<>();
|
|
|
|
|
for (PointProducts pointProducts : list) {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("id", pointProducts.getGoodsId());
|
|
|
|
|
map.put("name", pointProducts.getGoodsName());
|
|
|
|
|
vos.add(map);
|
|
|
|
|
}
|
|
|
|
|
return vos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Map<String, Object>> queryOptionsMember() {
|
|
|
|
|
/**
|
|
|
|
|
* 鏍规嵁鍟嗗搧ID鏌ヨ鏈夎冻澶熺Н鍒嗗厬鎹㈢殑浼氬憳
|
|
|
|
|
* @param goodsId 鍟嗗搧ID锛堝彲涓虹┖锛<EFBFBD>
|
|
|
|
|
* @return 鍖呭惈浼氬憳ID鍜屾墜鏈哄彿鐨凪ap鍒楄〃
|
|
|
|
|
* 閫昏緫璇存槑锛<EFBFBD>
|
|
|
|
|
* - 褰撳晢鍝両D瀛樺湪鏃讹紝鏌ヨ绉垎瓒冲鐨勪細鍛<EFBFBD>
|
|
|
|
|
* - 褰撳晢鍝両D涓虹┖鏃讹紝杩斿洖鎵<EFBFBD>鏈夋湁绉垎鐨勪細鍛<EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
List<Map<String, Object>> vos = new ArrayList<>();
|
|
|
|
|
QueryWrapper<Member> wrapper = new QueryWrapper<Member>()
|
|
|
|
|
.groupBy("id")
|
|
|
|
|
.eq("state", Member.STATE_NORMAL);
|
|
|
|
|
List<Member> list = memberService.list(wrapper);
|
|
|
|
|
for (Member member : list) {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("id", member.getId());
|
|
|
|
|
map.put("name", member.getPhone());
|
|
|
|
|
vos.add(map);
|
|
|
|
|
}
|
|
|
|
|
return vos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Map<String, Object>> queryMemberByGoodsId(Long goodsId) {
|
|
|
|
|
|
|
|
|
|
List<Member> members = new ArrayList<>();
|
|
|
|
|
QueryWrapper<Member> memberQueryWrapper = new QueryWrapper<Member>();
|
|
|
|
|
memberQueryWrapper.eq("state", Member.STATE_NORMAL);
|
|
|
|
|
if (goodsId != null) {
|
|
|
|
|
PointProducts pointProducts = pointProductsService.getOne(new QueryWrapper<PointProducts>()
|
|
|
|
|
.eq("goods_id", goodsId)
|
|
|
|
|
.eq("state", PointProducts.STATE_NORMAL));
|
|
|
|
|
memberQueryWrapper.ge("integral", pointProducts.getIntegral());
|
|
|
|
|
} else {
|
|
|
|
|
memberQueryWrapper.gt("integral", 0);
|
|
|
|
|
}
|
|
|
|
|
members = memberService.list(memberQueryWrapper);
|
|
|
|
|
List<Map<String, Object>> vos = new ArrayList<>();
|
|
|
|
|
for (Member member : members) {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("id", member.getId());
|
|
|
|
|
map.put("name", member.getPhone());
|
|
|
|
|
vos.add(map);
|
|
|
|
|
}
|
|
|
|
|
return vos;
|
|
|
|
|
}
|
|
|
|
|
}
|