Ну вроде лаба 3 есть. Цена вопроса - 3 энергетика и упаковка хотстеров от горячей штучки. Хочу ли я жить после такого? Думайте сами

This commit is contained in:
Данила Мочалов 2023-10-25 06:35:29 +04:00
parent 39499b30ad
commit 761d76d4aa
6 changed files with 38 additions and 74 deletions

View File

@ -20,7 +20,7 @@ interface OrderDao {
@Delete @Delete
suspend fun delete(order: OrderModel) suspend fun delete(order: OrderModel)
@Query("select * from orders") @Query("select * from orders where orders.user_id is not null")
fun getAll() : Flow<List<OrderWithProducts>> fun getAll() : Flow<List<OrderWithProducts>>
@Query("select * from orders where orders.id =:id") @Query("select * from orders where orders.id =:id")
fun getById(id: Int): Flow<List<OrderWithProducts>> fun getById(id: Int): Flow<List<OrderWithProducts>>

View File

@ -12,9 +12,7 @@ import com.example.shawarma.data.dao.ProductDao
import com.example.shawarma.data.dao.UserDao import com.example.shawarma.data.dao.UserDao
import com.example.shawarma.data.models.OrderModel import com.example.shawarma.data.models.OrderModel
import com.example.shawarma.data.models.OrderProductModel import com.example.shawarma.data.models.OrderProductModel
import com.example.shawarma.data.models.OrderProductModelWithProduct
import com.example.shawarma.data.models.OrderStatus import com.example.shawarma.data.models.OrderStatus
import com.example.shawarma.data.models.OrderWithProducts
import com.example.shawarma.data.models.ProductModel import com.example.shawarma.data.models.ProductModel
import com.example.shawarma.data.models.UserModel import com.example.shawarma.data.models.UserModel
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
@ -48,12 +46,6 @@ abstract class AppDatabase : RoomDatabase() {
private suspend fun populateDatabase() { private suspend fun populateDatabase() {
INSTANCE?.let { database -> INSTANCE?.let { database ->
// // Groups
// val groupDao = database.groupDao()
// val group1 = Group(1, "Группа 1")
// groupDao.insert(group1)
// // Students
//
// Users // Users
val userDao = database.userDao() val userDao = database.userDao()
val user1 = UserModel(1, "danya", "password", "ADMIN") val user1 = UserModel(1, "danya", "password", "ADMIN")
@ -70,12 +62,24 @@ abstract class AppDatabase : RoomDatabase() {
productDao.insert(discount2) productDao.insert(discount2)
// Orders // Orders
val orderDao = database.orderDao() val orderDao = database.orderDao()
val order1 = OrderModel(1, OrderStatus.Preparing.toString(), 1, Date()) val order1 = OrderModel(1, OrderStatus.Готовится.toString(), 1, Date())
val order2 = OrderModel(2, OrderStatus.Неоплачено.toString(), 1, Date())
val order3 = OrderModel(3, OrderStatus.Готово.toString(), 1, Date())
val order4 = OrderModel(4, OrderStatus.Выдано.toString(), 1, Date())
orderDao.insert(order1) orderDao.insert(order1)
orderDao.insert(order2)
orderDao.insert(order3)
orderDao.insert(order4)
// OrderProducts // OrderProducts
val orderProductDao = database.orderProductDao() val orderProductDao = database.orderProductDao()
val op1 = OrderProductModel(1, 1, 2, 200) val op1 = OrderProductModel(1, 1, 2, 200)
val op2 = OrderProductModel(2, 4, 3, 150)
val op3 = OrderProductModel(3, 3, 1, 80)
val op4 = OrderProductModel(4, 2, 1, 120)
orderProductDao.insert(op1) orderProductDao.insert(op1)
orderProductDao.insert(op2)
orderProductDao.insert(op3)
orderProductDao.insert(op4)
} }
} }

View File

@ -1,36 +0,0 @@
package com.example.shawarma.data.models
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "discount_products")
data class DiscountProductModel(
@PrimaryKey(autoGenerate = true)
val id: Int?,
@ColumnInfo(name = "discount_title")
val title: String,
@ColumnInfo(name = "discount_old_price")
val oldPrice: Int,
@ColumnInfo(name = "discount_new_price")
val newPrice: Int
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as DiscountProductModel
if (id != other.id) return false
return true
}
override fun hashCode(): Int {
return id ?: -1
}
}
fun getAllDiscountProducts() : List<DiscountProductModel> {
return listOf(
DiscountProductModel(1, "Шаурма", 150, 120),
DiscountProductModel(1, "Шаурма", 150, 120)
)
}

View File

@ -1,5 +1,5 @@
package com.example.shawarma.data.models package com.example.shawarma.data.models
enum class OrderStatus { enum class OrderStatus {
Unpaid, Preparing, Prepared, Processed Неоплачено, Готовится, Готово, Выдано
} }

View File

@ -2,14 +2,11 @@ package com.example.shawarma.screens.cart
import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.Orientation
import androidx.compose.foundation.gestures.scrollable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
@ -35,19 +32,14 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.zIndex import androidx.compose.ui.zIndex
import com.example.shawarma.R import com.example.shawarma.R
import com.example.shawarma.data.db.AppDatabase import com.example.shawarma.data.db.AppDatabase
import com.example.shawarma.data.models.OrderModel
import com.example.shawarma.data.models.OrderStatus import com.example.shawarma.data.models.OrderStatus
import com.example.shawarma.data.models.OrderWithProducts import com.example.shawarma.data.models.OrderWithProducts
import com.example.shawarma.data.models.ProductModel
import com.example.shawarma.data.models.getOrdersByUserId
import com.example.shawarma.ui.theme.MarckFamily import com.example.shawarma.ui.theme.MarckFamily
import com.example.shawarma.ui.theme.MyLightRed import com.example.shawarma.ui.theme.MyLightRed
import com.example.shawarma.ui.theme.MyMainBackground import com.example.shawarma.ui.theme.MyMainBackground
@ -85,10 +77,10 @@ fun CartWidget(){
val preparingOrders = mutableListOf<OrderWithProducts>() val preparingOrders = mutableListOf<OrderWithProducts>()
for(order in orders) { for(order in orders) {
if (order.order.status == OrderStatus.Unpaid.toString()) { if (order.order.status == OrderStatus.Неоплачено.toString()) {
unpaidOrders.add(order) unpaidOrders.add(order)
} }
if (order.order.status == OrderStatus.Preparing.toString()) { if (order.order.status == OrderStatus.Готовится.toString() || order.order.status == OrderStatus.Готово.toString()) {
preparingOrders.add(order) preparingOrders.add(order)
} }
} }
@ -146,7 +138,7 @@ fun CartWidget(){
.height(200.dp) .height(200.dp)
) { ) {
items(unpaidOrders.size) {index -> items(unpaidOrders.size) {index ->
PaidItem(unpaidOrders[index]) CartItem(unpaidOrders[index])
} }
} }
@ -206,7 +198,7 @@ fun PaidItem(order : OrderWithProducts) {
fontWeight = FontWeight.Bold fontWeight = FontWeight.Bold
) )
Text( Text(
text = order.orderWithProducts[0].orderProductModel.totalPrice.toString(), text = order.orderWithProducts[0].orderProductModel.totalPrice.toString() + " руб.",
fontFamily = NunitoFamily, fontFamily = NunitoFamily,
fontSize = 20.sp, fontSize = 20.sp,
modifier = Modifier.padding(top = 15.dp), modifier = Modifier.padding(top = 15.dp),
@ -229,7 +221,7 @@ fun PaidItem(order : OrderWithProducts) {
color = Color.Gray color = Color.Gray
) )
Text( Text(
text = "Готовится", text = order.order.status,
fontFamily = NunitoFamily, fontFamily = NunitoFamily,
fontSize = 20.sp, fontSize = 20.sp,
modifier = Modifier.padding(top = 15.dp), modifier = Modifier.padding(top = 15.dp),
@ -277,7 +269,7 @@ fun CartItem(order : OrderWithProducts) {
) )
} }
Text( Text(
text = order.orderWithProducts[0].orderProductModel.totalPrice.toString(), text = order.orderWithProducts[0].orderProductModel.totalPrice.toString() + " руб.",
fontFamily = NunitoFamily, fontFamily = NunitoFamily,
fontSize = 20.sp, fontSize = 20.sp,
fontWeight = FontWeight.Bold fontWeight = FontWeight.Bold

View File

@ -35,10 +35,8 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.zIndex import androidx.compose.ui.zIndex
import com.example.shawarma.data.db.AppDatabase import com.example.shawarma.data.db.AppDatabase
import com.example.shawarma.data.models.OrderModel
import com.example.shawarma.data.models.OrderStatus import com.example.shawarma.data.models.OrderStatus
import com.example.shawarma.data.models.OrderWithProducts import com.example.shawarma.data.models.OrderWithProducts
import com.example.shawarma.data.models.getAllOrders
import com.example.shawarma.ui.theme.MarckFamily import com.example.shawarma.ui.theme.MarckFamily
import com.example.shawarma.ui.theme.MyLightYellow import com.example.shawarma.ui.theme.MyLightYellow
import com.example.shawarma.ui.theme.MyMainBackground import com.example.shawarma.ui.theme.MyMainBackground
@ -77,13 +75,13 @@ fun OrdersList(){
val processedOrders = mutableListOf<OrderWithProducts>() val processedOrders = mutableListOf<OrderWithProducts>()
for (order in allOrders){ for (order in allOrders){
if (order.order.status == OrderStatus.Preparing.toString()) { if (order.order.status == OrderStatus.Готовится.toString()) {
preparingOrders.add(order) preparingOrders.add(order)
} }
if (order.order.status == OrderStatus.Prepared.toString()) { if (order.order.status == OrderStatus.Готово.toString()) {
preparedOrders.add(order) preparedOrders.add(order)
} }
if (order.order.status == OrderStatus.Processed.toString()) { if (order.order.status == OrderStatus.Выдано.toString()) {
processedOrders.add(order) processedOrders.add(order)
} }
} }
@ -125,9 +123,11 @@ fun OrdersList(){
.width(340.dp) .width(340.dp)
.height(250.dp) .height(250.dp)
) { ) {
if (preparingOrders.size != 0) {
items(preparingOrders.size) { items(preparingOrders.size) {
index -> index ->
PreparingItem(preparedOrders[index]) PreparingItem(preparingOrders[index])
}
} }
} }
Text( Text(
@ -142,11 +142,13 @@ fun OrdersList(){
.width(340.dp) .width(340.dp)
.height(250.dp) .height(250.dp)
) { ) {
if (preparedOrders.size != 0) {
items(preparedOrders.size) { items(preparedOrders.size) {
index -> index ->
PreparedItem(preparedOrders[index]) PreparedItem(preparedOrders[index])
} }
} }
}
Text( Text(
text = "Выдано:", text = "Выдано:",
fontFamily = NunitoFamily, fontFamily = NunitoFamily,
@ -159,10 +161,12 @@ fun OrdersList(){
.width(340.dp) .width(340.dp)
.height(250.dp) .height(250.dp)
) { ) {
if (processedOrders.size != 0) {
items(processedOrders.size) {index -> items(processedOrders.size) {index ->
ProcessedItem(processedOrders[index]) ProcessedItem(processedOrders[index])
} }
} }
}
Spacer(modifier = Modifier.height(70.dp)) Spacer(modifier = Modifier.height(70.dp))
} }