This commit is contained in:
cun-nan 2024-01-27 10:51:32 +08:00
parent cbb0d2b9ae
commit 32cb50848f
12 changed files with 102 additions and 31 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);
@ -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

@ -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>