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

View File

@ -206,6 +206,10 @@ public class FyPayServiceImpl implements FyPayService {
// 商品订单 // 商品订单
goodsOrder.setStatus("paid"); goodsOrder.setStatus("paid");
goodsOrder.setPayTime(date); 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); staffCommissionService.countStaffCommission(goodsOrder.getStaffId(),goodsOrder.getStoreId(),goodsOrder.getAmount(),goodsOrder.getPayAmount(),0.0,"2",orderNo);
if (!map1.get("goodsOrder").equals("[]")){ if (!map1.get("goodsOrder").equals("[]")){
List<JSONObject> goods = JSONArray.parseArray(map1.get("goodsOrder"), JSONObject.class); List<JSONObject> goods = JSONArray.parseArray(map1.get("goodsOrder"), JSONObject.class);
@ -214,7 +218,7 @@ public class FyPayServiceImpl implements FyPayService {
orderGoods.setOrderId(goodsOrder.getId()); orderGoods.setOrderId(goodsOrder.getId());
orderGoods.setGoodsId(Integer.valueOf(good.get("id").toString())); orderGoods.setGoodsId(Integer.valueOf(good.get("id").toString()));
orderGoods.setNum(Integer.valueOf(good.get("num").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)) { if (staff.getRoleId().equals(staffRoleGroup)) {
commissionRecord.setStaffId(staffId); commissionRecord.setStaffId(staffId);
commissionRecord.setStoreId(storeId); commissionRecord.setStoreId(storeId);
commissionRecord.setType(staffCommission.getCommissionSource() + "订单出售"); commissionRecord.setType(type);
commissionRecord.setDescription(staffCommission.getCommissionSource() + "订单出售提成"); commissionRecord.setDescription(staffCommission.getCommissionSource() + "订单出售提成");
commissionRecord.setOrderNo(orderNo); commissionRecord.setOrderNo(orderNo);
Double royaltyRate = Double.valueOf(staffCommission.getRoyaltyRate().substring(0, staffCommission.getRoyaltyRate().length() - 1)); 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"> <mapper namespace="com.fuint.business.convenienceSore.mapper.SaleStatisticMapper">
<sql id="selectSale"> <sql id="selectSale">
select sa.*,mg.name,mg.goods_no,mg.pinyin_code,mg.unit from sale_statistic sa 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> </sql>
<select id="selectSaleList" resultType="com.fuint.business.convenienceSore.vo.SaleStatisticVo"> <select id="selectSaleList" resultType="com.fuint.business.convenienceSore.vo.SaleStatisticVo">

View File

@ -22,5 +22,5 @@ public interface SaleDetailService extends IService<SaleDetail> {
* @param saleDetail * @param saleDetail
* @return * @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 * @return
*/ */
@Override @Override
public int insertSaleDetail(SaleDetail saleDetail) { public int insertSaleDetail(SaleDetail saleDetail,Boolean isMember) {
// 修改商品库存 库存不可小于0 小于0的话返回-1 // 修改商品库存 库存不可小于0 小于0的话返回-1
LJGoods ljGoods = goodsService.selectLJGoodsById(saleDetail.getGoodsId()); LJGoods ljGoods = goodsService.selectLJGoodsById(saleDetail.getGoodsId());
int stock = ljGoods.getStock() - saleDetail.getSaleNumber(); // int stock = ljGoods.getStock() - saleDetail.getSaleNumber();
if (stock>=0){ // if (stock>=0){
LJGoods goods = new LJGoods(); // LJGoods goods = new LJGoods();
goods.setStock(stock); // goods.setStock(stock);
goods.setId(ljGoods.getId()); // goods.setId(ljGoods.getId());
goodsService.updateLJGoods(goods); // 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 { }else {
return -1; // 不使用会员价
profitMoney = (ljGoods.getRetailPrice() * saleDetail.getSaleNumber()) - costMoney;
saleMoney = ljGoods.getRetailPrice() * saleDetail.getSaleNumber();
} }
saleDetail.setProfitTotal(profitMoney);
saleDetail.setSaleTotal(saleMoney);
// 根据商品id查询销售信息是否存在 // 根据商品id查询销售信息是否存在
SaleStatistic saleStatistic = saleStatisticService.selectSaleByGoodsId(saleDetail.getGoodsId()); SaleStatistic saleStatistic = saleStatisticService.selectSaleByGoodsId(saleDetail.getGoodsId());
SaleStatistic saleStatistic1 = new SaleStatistic(); SaleStatistic saleStatistic1 = new SaleStatistic();

View File

@ -164,4 +164,13 @@ public interface OilOrderService extends IService<OilOrder> {
* @return * @return
*/ */
int editOilOrder(OilOrder oilOrder); 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 * @param goods
* @return * @return
*/ */
public int insertOrderGoods(OrderGoods goods,Integer storeId); public int insertOrderGoods(OrderGoods goods,Integer storeId,Boolean isMember);
/** /**
* 添加库存跟踪信息 * 添加库存跟踪信息
* @param goods * @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.api.fuyou.service.OilConfigService;
import com.fuint.business.commission.service.StaffCommissionService; import com.fuint.business.commission.service.StaffCommissionService;
import com.fuint.business.convenienceSore.entity.LJGoods; 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.LJGoodsService;
import com.fuint.business.convenienceSore.service.SaleDetailService;
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord; import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord;
import com.fuint.business.marketingActivity.cardFule.mapper.CardFuelRecordMapper; import com.fuint.business.marketingActivity.cardFule.mapper.CardFuelRecordMapper;
import com.fuint.business.marketingActivity.cardValue.entity.CardValueRecord; import com.fuint.business.marketingActivity.cardValue.entity.CardValueRecord;
@ -98,6 +100,8 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
private GrowthValueChangeService growthValueChangeService; private GrowthValueChangeService growthValueChangeService;
@Autowired @Autowired
private ChainStoreConfigService chainStoreConfigService; private ChainStoreConfigService chainStoreConfigService;
@Autowired
private SaleDetailService saleDetailService;
@Override @Override
public IPage<OilOrder> selectOilOrderList(Page page, OilOrder order) { 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")); Double consumeAmount = Double.valueOf(map.get("consumeAmount"));
Integer userId = null; Integer userId = null;
Boolean isMember = false;
// 根据日期生成订单信息 // 根据日期生成订单信息
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String timestamp = dateFormat.format(new Date()); String timestamp = dateFormat.format(new Date());
String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6); String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6);
String orderNo = "2345"+timestamp+randomString; String orderNo = "2345"+timestamp+randomString;
if (map.get("userId") != null && !map.get("userId").equals("")){ if (StringUtils.isNotEmpty(map.get("userId"))){
// 会员id // 会员id
userId = Integer.valueOf(map.get("userId")); userId = Integer.valueOf(map.get("userId"));
isMember = true;
this.insertCardBalance(consumeAmount,userId,storeId,orderNo); this.insertCardBalance(consumeAmount,userId,storeId,orderNo);
} }
@ -311,7 +317,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
orderGoods.setOrderId(ljOrder2.getId()); orderGoods.setOrderId(ljOrder2.getId());
orderGoods.setGoodsId(Integer.valueOf(good.get("id").toString())); orderGoods.setGoodsId(Integer.valueOf(good.get("id").toString()));
orderGoods.setNum(Integer.valueOf(good.get("num").toString())); orderGoods.setNum(Integer.valueOf(good.get("num").toString()));
orderGoodsService.insertOrderGoods(orderGoods,storeId); orderGoodsService.insertOrderGoods(orderGoods,storeId,isMember);
} }
} }
ljOrder1 = orderService.selectGoodsOrder(orderNo); ljOrder1 = orderService.selectGoodsOrder(orderNo);
@ -1333,16 +1339,16 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
this.insertGrowthValueChange(userid,storeId,addGrowthVal,growthAfter,orderNo); this.insertGrowthValueChange(userid,storeId,addGrowthVal,growthAfter,orderNo);
CardBalanceChange cardBalanceChange = new CardBalanceChange(); // CardBalanceChange cardBalanceChange = new CardBalanceChange();
// 添加余额记录信息 //// 添加余额记录信息
cardBalanceChange.setUserId(userid); // cardBalanceChange.setUserId(userid);
cardBalanceChange.setChangeType("0"); // cardBalanceChange.setChangeType("0");
cardBalanceChange.setFromType("油品订单消费"); // cardBalanceChange.setFromType("油品订单消费");
cardBalanceChange.setBalance(oilAmount - oilActualPay); // cardBalanceChange.setBalance(oilAmount - oilActualPay);
cardBalanceChange.setOrderNo(orderNo); // cardBalanceChange.setOrderNo(orderNo);
cardBalanceChange.setStoreId(storeId); // cardBalanceChange.setStoreId(storeId);
//
cardBalanceChangeService.insertCardBalance(cardBalanceChange); // cardBalanceChangeService.insertCardBalance(cardBalanceChange);
} }
} }
@ -1635,4 +1641,13 @@ return stringDoubleMap;
oilOrder1.setRemark(oilOrder.getRemark()); oilOrder1.setRemark(oilOrder.getRemark());
return baseMapper.updateById(oilOrder1); 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.convenienceSore.entity.LJGoods; 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.StockStatistic;
import com.fuint.business.convenienceSore.entity.StockTrack; import com.fuint.business.convenienceSore.entity.StockTrack;
import com.fuint.business.convenienceSore.service.LJGoodsService; 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.StockStatisticService;
import com.fuint.business.convenienceSore.service.StockTrackService; import com.fuint.business.convenienceSore.service.StockTrackService;
import com.fuint.business.order.entity.OrderGoods; import com.fuint.business.order.entity.OrderGoods;
@ -27,6 +29,8 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
private StockTrackService trackService; private StockTrackService trackService;
@Autowired @Autowired
private LJGoodsService goodsService; private LJGoodsService goodsService;
@Autowired
private SaleDetailService saleDetailService;
@Override @Override
public List<OrderGoodsVo> selectOrderGoods(int orderId) { public List<OrderGoodsVo> selectOrderGoods(int orderId) {
@ -35,14 +39,14 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
} }
@Override @Override
public int insertOrderGoods(OrderGoods goods,Integer storeId) { public int insertOrderGoods(OrderGoods goods,Integer storeId,Boolean isMember) {
int row = baseMapper.insert(goods); int row = baseMapper.insert(goods);
this.insertStockTrack(goods,storeId); this.insertStockTrack(goods,storeId,isMember);
return row; return row;
} }
@Override @Override
public void insertStockTrack(OrderGoods goods,Integer storeId) { public void insertStockTrack(OrderGoods goods,Integer storeId,Boolean isMember) {
if (storeId==null){ if (storeId==null){
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
storeId = nowAccountInfo.getStoreId(); storeId = nowAccountInfo.getStoreId();
@ -62,5 +66,12 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
Integer stock = ljGoods.getStock(); Integer stock = ljGoods.getStock();
ljGoods.setStock(stock-goods.getNum()); ljGoods.setStock(stock-goods.getNum());
goodsService.updateLJGoods(ljGoods); 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: "", longitude: "",
// //
latitude: "", latitude: "",
//
lon: "",
//
lat: "",
// //
store: { store: {
name: "测试油站", name: "测试油站",
@ -503,6 +507,9 @@
}) })
} }
_this.lon = _this.store.longitude,
_this.lat = _this.store.latitude,
_this.getIndexBanner() _this.getIndexBanner()
}) })
@ -616,9 +623,12 @@
}) })
}, },
goGoGo() { goGoGo() {
let lat = Number(this.lat)
let lon = Number(this.lon)
uni.openLocation({ uni.openLocation({
latitude: 36.651441, latitude: lat,
longitude: 116.901224, longitude: lon,
success: function() { success: function() {
console.log('success'); console.log('success');
}, },

View File

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

View File

@ -18,7 +18,7 @@
<view class="min-size">优惠券总额</view> <view class="min-size">优惠券总额</view>
</view> </view>
<view class="or-box"> <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 class="min-size">邀请人数</view>
</view> </view>
</view> </view>