Merge remote-tracking branch 'origin/master'

This commit is contained in:
齐天大圣 2024-01-27 13:56:05 +08:00
commit 9d96f86dd6
13 changed files with 134 additions and 54 deletions

View File

@ -25,9 +25,9 @@
clearable
placeholder="全部"
>
<el-option label="油品订单出售" :value="1"></el-option>
<el-option label="商品订单出售" :value="2"></el-option>
<el-option label="储值卡充值" :value="3"></el-option>
<el-option label="油品订单提成" :value="1"></el-option>
<el-option label="商品订单提成" :value="2"></el-option>
<el-option label="储值卡充值提成" :value="3"></el-option>
<el-option label="油品退款" :value="4"></el-option>
<el-option label="商品退款" :value="5"></el-option>
</el-select>
@ -77,9 +77,9 @@
</el-table-column>
<el-table-column label="类型" prop="type" align="center" >
<template slot-scope="scope">
<span v-if="scope.row.type==1">油品订单出售</span>
<span v-if="scope.row.type==2">商品订单出售</span>
<span v-if="scope.row.type==3">储值卡充值</span>
<span v-if="scope.row.type==1">油品订单提成</span>
<span v-if="scope.row.type==2">商品订单提成</span>
<span v-if="scope.row.type==3">储值卡充值提成</span>
<span v-if="scope.row.type==4">油品退款</span>
<span v-if="scope.row.type==5">商品退款</span>
</template>
@ -205,7 +205,9 @@
<el-col :span="24" style="display: flex;margin-bottom: 10px">
<el-form-item label="提成来源" prop="commissionSource" style="width: 420px">
<el-radio-group v-model="form.commissionSource">
<el-radio v-for="dict in dict.type.source" @change="isChange" :label="dict.value">{{ dict.label }}</el-radio>
<!-- <el-radio v-for="dict in dict.type.source" @change="isChange" :label="dict.value">{{ dict.label }}</el-radio>-->
<el-radio v-if="form.commissionSource == '油品'" @change="isChange" label="油品" value="油品"></el-radio>
<el-radio v-if="form.commissionSource == '非油品'" @change="isChange" label="非油品" value="非油品"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -357,7 +359,7 @@ export default {
//
rules: {
name: [
{ required: true, message: "供应商名称不能为空", trigger: "blur" },
{ required: true, message: "提成方案名称不能为空", trigger: "blur" },
],
commissionSource: [
{ required: true, message: "请选择提成来源", trigger: "blur" },

View File

@ -206,6 +206,10 @@ public class FyPayServiceImpl implements FyPayService {
// 商品订单
goodsOrder.setStatus("paid");
goodsOrder.setPayTime(date);
Boolean isMember = false;
if (goodsOrder.getUserId()!=null){
isMember = true;
}
staffCommissionService.countStaffCommission(goodsOrder.getStaffId(),goodsOrder.getStoreId(),goodsOrder.getAmount(),goodsOrder.getPayAmount(),0.0,"2",orderNo);
if (!map1.get("goodsOrder").equals("[]")){
List<JSONObject> goods = JSONArray.parseArray(map1.get("goodsOrder"), JSONObject.class);
@ -214,7 +218,7 @@ public class FyPayServiceImpl implements FyPayService {
orderGoods.setOrderId(goodsOrder.getId());
orderGoods.setGoodsId(Integer.valueOf(good.get("id").toString()));
orderGoods.setNum(Integer.valueOf(good.get("num").toString()));
orderGoodsService.insertOrderGoods(orderGoods,storeId1);
orderGoodsService.insertOrderGoods(orderGoods,storeId1,isMember);
}
}
}

View File

@ -181,7 +181,7 @@ public class StaffCommissionServiceImpl extends ServiceImpl<StaffCommissionMappe
if (staff.getRoleId().equals(staffRoleGroup)) {
commissionRecord.setStaffId(staffId);
commissionRecord.setStoreId(storeId);
commissionRecord.setType(staffCommission.getCommissionSource() + "订单出售");
commissionRecord.setType(type);
commissionRecord.setDescription(staffCommission.getCommissionSource() + "订单出售提成");
commissionRecord.setOrderNo(orderNo);
Double royaltyRate = Double.valueOf(staffCommission.getRoyaltyRate().substring(0, staffCommission.getRoyaltyRate().length() - 1));

View File

@ -3,7 +3,7 @@
<mapper namespace="com.fuint.business.convenienceSore.mapper.SaleStatisticMapper">
<sql id="selectSale">
select sa.*,mg.name,mg.goods_no,mg.pinyin_code,mg.unit from sale_statistic sa
inner join mt_goods mg on sa.goods_id = mg.id
left join mt_goods mg on sa.goods_id = mg.id
</sql>
<select id="selectSaleList" resultType="com.fuint.business.convenienceSore.vo.SaleStatisticVo">

View File

@ -22,5 +22,5 @@ public interface SaleDetailService extends IService<SaleDetail> {
* @param saleDetail
* @return
*/
public int insertSaleDetail(SaleDetail saleDetail);
public int insertSaleDetail(SaleDetail saleDetail,Boolean isMember);
}

View File

@ -46,18 +46,38 @@ public class SaleDetailServiceImpl extends ServiceImpl<SaleDetailMapper, SaleDet
* @return
*/
@Override
public int insertSaleDetail(SaleDetail saleDetail) {
public int insertSaleDetail(SaleDetail saleDetail,Boolean isMember) {
// 修改商品库存 库存不可小于0 小于0的话返回-1
LJGoods ljGoods = goodsService.selectLJGoodsById(saleDetail.getGoodsId());
int stock = ljGoods.getStock() - saleDetail.getSaleNumber();
if (stock>=0){
LJGoods goods = new LJGoods();
goods.setStock(stock);
goods.setId(ljGoods.getId());
goodsService.updateLJGoods(goods);
// int stock = ljGoods.getStock() - saleDetail.getSaleNumber();
// if (stock>=0){
// LJGoods goods = new LJGoods();
// goods.setStock(stock);
// goods.setId(ljGoods.getId());
// goodsService.updateLJGoods(goods);
// }else {
// return -1;
// }
// 计算成本
Double costMoney = ljGoods.getBuyingPrice() * saleDetail.getSaleNumber();
saleDetail.setCostTotal(costMoney);
// 计算盈利额
Double profitMoney = 0.0;
// 销售总额
Double saleMoney = 0.0;
if (isMember){
// 使用会员价
profitMoney = (ljGoods.getMemberPrice() * saleDetail.getSaleNumber()) - costMoney;
saleMoney = ljGoods.getMemberPrice() * saleDetail.getSaleNumber();
}else {
return -1;
// 不使用会员价
profitMoney = (ljGoods.getRetailPrice() * saleDetail.getSaleNumber()) - costMoney;
saleMoney = ljGoods.getRetailPrice() * saleDetail.getSaleNumber();
}
saleDetail.setProfitTotal(profitMoney);
saleDetail.setSaleTotal(saleMoney);
// 根据商品id查询销售信息是否存在
SaleStatistic saleStatistic = saleStatisticService.selectSaleByGoodsId(saleDetail.getGoodsId());
SaleStatistic saleStatistic1 = new SaleStatistic();

View File

@ -164,4 +164,13 @@ public interface OilOrderService extends IService<OilOrder> {
* @return
*/
int editOilOrder(OilOrder oilOrder);
/**
* 添加销售统计信息
* @param goodsId 商品id
* @param goodsNum 商品数量
* @param storeId 店铺id
* @param isMember 是否为会员
*/
void addGoodsSaleStatistic(Integer goodsId,Integer goodsNum,Integer storeId,Boolean isMember);
}

View File

@ -24,11 +24,11 @@ public interface OrderGoodsService extends IService<OrderGoods> {
* @param goods
* @return
*/
public int insertOrderGoods(OrderGoods goods,Integer storeId);
public int insertOrderGoods(OrderGoods goods,Integer storeId,Boolean isMember);
/**
* 添加库存跟踪信息
* @param goods
*/
public void insertStockTrack(OrderGoods goods,Integer storeId);
public void insertStockTrack(OrderGoods goods,Integer storeId,Boolean isMember);
}

View File

@ -15,7 +15,9 @@ import com.fuint.api.fuyou.service.MerchantConfigService;
import com.fuint.api.fuyou.service.OilConfigService;
import com.fuint.business.commission.service.StaffCommissionService;
import com.fuint.business.convenienceSore.entity.LJGoods;
import com.fuint.business.convenienceSore.entity.SaleDetail;
import com.fuint.business.convenienceSore.service.LJGoodsService;
import com.fuint.business.convenienceSore.service.SaleDetailService;
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord;
import com.fuint.business.marketingActivity.cardFule.mapper.CardFuelRecordMapper;
import com.fuint.business.marketingActivity.cardValue.entity.CardValueRecord;
@ -98,6 +100,8 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
private GrowthValueChangeService growthValueChangeService;
@Autowired
private ChainStoreConfigService chainStoreConfigService;
@Autowired
private SaleDetailService saleDetailService;
@Override
public IPage<OilOrder> selectOilOrderList(Page page, OilOrder order) {
@ -221,14 +225,16 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
// 会员消费金额储值卡需要减少的金额
Double consumeAmount = Double.valueOf(map.get("consumeAmount"));
Integer userId = null;
Boolean isMember = false;
// 根据日期生成订单信息
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String timestamp = dateFormat.format(new Date());
String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6);
String orderNo = "2345"+timestamp+randomString;
if (map.get("userId") != null && !map.get("userId").equals("")){
if (StringUtils.isNotEmpty(map.get("userId"))){
// 会员id
userId = Integer.valueOf(map.get("userId"));
isMember = true;
this.insertCardBalance(consumeAmount,userId,storeId,orderNo);
}
@ -311,7 +317,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
orderGoods.setOrderId(ljOrder2.getId());
orderGoods.setGoodsId(Integer.valueOf(good.get("id").toString()));
orderGoods.setNum(Integer.valueOf(good.get("num").toString()));
orderGoodsService.insertOrderGoods(orderGoods,storeId);
orderGoodsService.insertOrderGoods(orderGoods,storeId,isMember);
}
}
ljOrder1 = orderService.selectGoodsOrder(orderNo);
@ -1333,16 +1339,16 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
this.insertGrowthValueChange(userid,storeId,addGrowthVal,growthAfter,orderNo);
CardBalanceChange cardBalanceChange = new CardBalanceChange();
// 添加余额记录信息
cardBalanceChange.setUserId(userid);
cardBalanceChange.setChangeType("0");
cardBalanceChange.setFromType("油品订单消费");
cardBalanceChange.setBalance(oilAmount - oilActualPay);
cardBalanceChange.setOrderNo(orderNo);
cardBalanceChange.setStoreId(storeId);
cardBalanceChangeService.insertCardBalance(cardBalanceChange);
// CardBalanceChange cardBalanceChange = new CardBalanceChange();
//// 添加余额记录信息
// cardBalanceChange.setUserId(userid);
// cardBalanceChange.setChangeType("0");
// cardBalanceChange.setFromType("油品订单消费");
// cardBalanceChange.setBalance(oilAmount - oilActualPay);
// cardBalanceChange.setOrderNo(orderNo);
// cardBalanceChange.setStoreId(storeId);
//
// cardBalanceChangeService.insertCardBalance(cardBalanceChange);
}
}
@ -1635,4 +1641,13 @@ return stringDoubleMap;
oilOrder1.setRemark(oilOrder.getRemark());
return baseMapper.updateById(oilOrder1);
}
@Override
public void addGoodsSaleStatistic(Integer goodsId, Integer goodsNum, Integer storeId, Boolean isMember) {
SaleDetail saleDetail = new SaleDetail();
saleDetail.setGoodsId(goodsId);
saleDetail.setStoreId(storeId);
saleDetail.setSaleNumber(goodsNum);
saleDetailService.insertSaleDetail(saleDetail,isMember);
}
}

View File

@ -2,9 +2,11 @@ package com.fuint.business.order.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.convenienceSore.entity.LJGoods;
import com.fuint.business.convenienceSore.entity.SaleDetail;
import com.fuint.business.convenienceSore.entity.StockStatistic;
import com.fuint.business.convenienceSore.entity.StockTrack;
import com.fuint.business.convenienceSore.service.LJGoodsService;
import com.fuint.business.convenienceSore.service.SaleDetailService;
import com.fuint.business.convenienceSore.service.StockStatisticService;
import com.fuint.business.convenienceSore.service.StockTrackService;
import com.fuint.business.order.entity.OrderGoods;
@ -27,6 +29,8 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
private StockTrackService trackService;
@Autowired
private LJGoodsService goodsService;
@Autowired
private SaleDetailService saleDetailService;
@Override
public List<OrderGoodsVo> selectOrderGoods(int orderId) {
@ -35,14 +39,14 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
}
@Override
public int insertOrderGoods(OrderGoods goods,Integer storeId) {
public int insertOrderGoods(OrderGoods goods,Integer storeId,Boolean isMember) {
int row = baseMapper.insert(goods);
this.insertStockTrack(goods,storeId);
this.insertStockTrack(goods,storeId,isMember);
return row;
}
@Override
public void insertStockTrack(OrderGoods goods,Integer storeId) {
public void insertStockTrack(OrderGoods goods,Integer storeId,Boolean isMember) {
if (storeId==null){
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
storeId = nowAccountInfo.getStoreId();
@ -62,5 +66,12 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
Integer stock = ljGoods.getStock();
ljGoods.setStock(stock-goods.getNum());
goodsService.updateLJGoods(ljGoods);
// 添加销售统计信息
SaleDetail saleDetail = new SaleDetail();
saleDetail.setGoodsId(goods.getGoodsId());
saleDetail.setStoreId(storeId);
saleDetail.setSaleNumber(goods.getNum());
saleDetailService.insertSaleDetail(saleDetail,isMember);
}
}

View File

@ -169,8 +169,12 @@
],
//
longitude: "",
//
//
latitude: "",
//
lon: "",
//
lat: "",
//
store: {
name: "测试油站",
@ -503,6 +507,9 @@
})
}
_this.lon = _this.store.longitude,
_this.lat = _this.store.latitude,
_this.getIndexBanner()
})
@ -616,9 +623,12 @@
})
},
goGoGo() {
let lat = Number(this.lat)
let lon = Number(this.lon)
uni.openLocation({
latitude: 36.651441,
longitude: 116.901224,
latitude: lat,
longitude: lon,
success: function() {
console.log('success');
},

View File

@ -214,18 +214,26 @@
methods: {
getPercentage(id){
let grade = {}
this.userGradeList.forEach(i => {
if (this.member.gradeId = i.id){
grade = i
}
})
console.log(this.member);
this.userGradeList.forEach(item => {
console.log(item);
if (item.id == id){
// this.percentage =
}
request({
url: "business/userManager/userGrade/" + this.member.gradeId,
method: 'get',
}).then((res) => {
grade = res.data
this.userGradeList.forEach(item => {
if (item.id == id){
if (grade.grade > item.grade){
this.percentage = 100
}
if (grade.grade < item.grade){
this.percentage = 0
}
if (grade.grade == item.grade){
this.percentage = ((this.member.growthValue / item.growthValue) * 100).toFixed(0)
}
}
})
})
},
//
getMember(){
@ -234,7 +242,7 @@
method: 'get',
}).then((res) => {
this.member = res.data
console.log(this.member,1111);
this.getPercentage(this.userGrade.id)
})
},
getChainConfig(storeId){
@ -272,7 +280,7 @@
this.dieselRule = JSON.parse(res.data[0].dieselRule)
this.naturalGasRule = JSON.parse(res.data[0].naturalGasRule)
}
this.getPercentage(res.data[0].id)
// this.getPercentage(res.data[0].id)
}else{
this.isExist = false
}
@ -286,6 +294,7 @@
this.dieselRule = JSON.parse(this.userGradeList[this.current].dieselRule)
this.naturalGasRule = JSON.parse(this.userGradeList[this.current].naturalGasRule)
}
this.getPercentage(this.userGrade.id)
},
goBack() {
uni.navigateBack()

View File

@ -18,7 +18,7 @@
<view class="min-size">优惠券总额</view>
</view>
<view class="or-box">
<view class="max-size">{{this.activeRecommendRecordsList.length}}</view>
<view class="max-size">{{this.activeRecommendRecordsList.length || 0}}</view>
<view class="min-size">邀请人数</view>
</view>
</view>