Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Riina Antikainen
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 6669484c
authored
Mar 05, 2014
by
Tuomas Riihimäki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix user shopping
1 parent
04b71352
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
65 additions
and
78 deletions
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/ReaderBean.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/ProductFacade.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/ReaderBean.java
View file @
6669484
...
...
@@ -19,7 +19,6 @@ import fi.codecrew.moya.facade.ReaderEventFacade;
import
fi.codecrew.moya.facade.ReaderFacade
;
import
fi.codecrew.moya.model.AccountEvent
;
import
fi.codecrew.moya.model.CardCode
;
import
fi.codecrew.moya.model.CardTemplate
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.Place
;
import
fi.codecrew.moya.model.PrintedCard
;
...
...
@@ -38,12 +37,10 @@ public class ReaderBean implements ReaderBeanLocal {
@EJB
private
ReaderFacade
readerfacade
;
@EJB
private
PrintedCardFacade
cardfacade
;
@EJB
private
CardTemplateBeanLocal
cardtemplatebean
;
@EJB
...
...
@@ -56,12 +53,10 @@ public class ReaderBean implements ReaderBeanLocal {
private
CardTemplateBean
cardTemplateBean
;
@EJB
private
ProductPBean
productPBean
;
@EJB
private
CardCodeFacade
cardCodeFacade
;
@EJB
private
BarcodeBeanLocal
barcodeBean
;
...
...
@@ -72,18 +67,21 @@ public class ReaderBean implements ReaderBeanLocal {
Reader
reader
=
readerfacade
.
findOrCreateByIdent
(
readerIdent
);
return
checkCode
(
reader
,
code
);
}
@Override
/**
* check reader code, and add it to the database
*/
public
ReaderEvent
checkCode
(
Reader
reader
,
String
code
)
{
if
(
reader
==
null
||
code
==
null
||
code
.
isEmpty
())
{
return
null
;
}
logger
.
info
(
"got code from reader {}"
,
code
);
code
=
code
.
replace
(
"\"\b"
,
""
);
if
(
reader
.
getType
()
==
ReaderType
.
RFID
)
{
if
(
ReaderType
.
RFID
.
equals
(
reader
.
getType
())
)
{
if
(
Pattern
.
matches
(
"^.*000000$"
,
code
))
{
...
...
@@ -96,65 +94,63 @@ public class ReaderBean implements ReaderBeanLocal {
}
code
=
sb
.
toString
();
}
ReaderEvent
event
=
new
ReaderEvent
(
new
Date
(),
reader
,
code
);
// first, check if dublicate, there is 30s timeout for dublicates, afther that it's ok to create dublicate
// that's bcause accident dublicates are bad, but otherwise it's probably bcause user want's to read it again
// first, check if dublicate, there is 30s timeout for dublicates,
// afther that it's ok to create dublicate
// that's bcause accident dublicates are bad, but otherwise it's
// probably bcause user want's to read it again
List
<
ReaderEvent
>
lastevents
=
readerEventFacade
.
findLastEvents
(
reader
,
1
);
if
(!
lastevents
.
isEmpty
()
&&
!
reader
.
isAutoproduct
())
{
ReaderEvent
lastevent
=
lastevents
.
get
(
0
);
if
(
lastevent
.
getValue
()
==
event
.
getValue
()
&&
(
lastevent
.
getUpdatetime
().
getTime
()
+
60000
l
)
>
event
.
getTime
().
getTime
())
{
if
(
lastevent
.
getValue
()
==
event
.
getValue
()
&&
(
lastevent
.
getUpdatetime
().
getTime
()
+
60000
l
)
>
event
.
getTime
().
getTime
())
{
lastevent
=
readerEventFacade
.
reload
(
lastevent
);
lastevent
=
readerEventFacade
.
merge
(
lastevent
);
return
lastevent
;
// todo: update lastevent bfore return
}
}
// find stuff with barcode and set type
// IF we find 2 stuff with same barcode, it's just bad luck and things may be little random.
// IF we find 2 stuff with same barcode, it's just bad luck and things
// may be little random.
EventUser
user
=
barcodeBean
.
getUser
(
code
);
if
(
user
!=
null
)
{
if
(
user
!=
null
)
{
event
.
setType
(
ReaderEventType
.
USER
);
event
.
setUser
(
user
);
}
PrintedCard
card
=
barcodeBean
.
getPrintedCard
(
code
);
if
(
card
!=
null
)
{
if
(
card
!=
null
)
{
event
.
setType
(
ReaderEventType
.
CARD
);
event
.
setPrintedCard
(
card
);
if
(
card
.
getUser
()
!=
null
)
{
if
(
card
.
getUser
()
!=
null
)
{
event
.
setUser
(
card
.
getUser
());
}
}
Product
product
=
barcodeBean
.
getProduct
(
code
);
if
(
product
!=
null
)
{
if
(
product
!=
null
)
{
event
.
setType
(
ReaderEventType
.
PRODUCT
);
event
.
setProduct
(
product
);
}
Place
place
=
barcodeBean
.
getPlaceFromBarcode
(
code
);
if
(
place
!=
null
)
{
if
(
place
!=
null
)
{
event
.
setType
(
ReaderEventType
.
PLACE
);
event
.
setPlace
(
place
);
}
event
.
setUpdatetime
(
new
Date
());
// reader is in autoproduct-mode, create dat product
...
...
@@ -166,19 +162,18 @@ public class ReaderBean implements ReaderBeanLocal {
event
.
setNotes
(
"Created automatic account event from reader. "
+
createAc
);
}
event
=
readerEventFacade
.
create
(
event
);
return
event
;
}
@Override
public
ReaderEvent
assocCodeToCard
(
ReaderEvent
readerEvent
,
PrintedCard
card
)
{
CardCode
code
=
new
CardCode
(
card
,
readerEvent
.
getReader
().
getType
(),
readerEvent
.
getValue
());
code
=
cardCodeFacade
.
create
(
code
);
card
=
cardfacade
.
reload
(
card
);
...
...
@@ -197,7 +192,7 @@ public class ReaderBean implements ReaderBeanLocal {
@Override
public
List
<
ReaderEvent
>
getReaderEvents
(
Integer
readerId
,
Integer
count
)
{
logger
.
info
(
"Getting events for reader {}"
,
readerId
);
Reader
reader
=
readerfacade
.
find
(
readerId
);
return
readerEventFacade
.
findLastEvents
(
reader
,
count
);
...
...
@@ -236,34 +231,25 @@ public class ReaderBean implements ReaderBeanLocal {
return
ret
;
}
// ok, let's comment this out, so I can see where this is used
/*
@Override
public ReaderEvent createCard(ReaderEvent event, EventUser user) {
ReaderEvent ret = null;
logger.info("Trying to create card for event {} with printed card {}", event, event.getPrintedCard());
if (event.getPrintedCard() == null)
{
CardTemplate ct = cardTemplateBean.getUsersCardtype(user);
logger.info("Card template {}", ct);
if (ct == null)
{
return null;
}
PrintedCard card = new PrintedCard(user, ct, null, true);
card.setRfidUid(event.getValue());
cardfacade.create(card);
ret = new ReaderEvent(Calendar.getInstance(), card, event.getReader());
card.getReaderEvents().add(event);
ret.setNotes("User associated to a card");
}
return ret;
}
*/
* @Override public ReaderEvent createCard(ReaderEvent event, EventUser
* user) { ReaderEvent ret = null;
* logger.info("Trying to create card for event {} with printed card {}",
* event, event.getPrintedCard());
*
* if (event.getPrintedCard() == null) { CardTemplate ct =
* cardTemplateBean.getUsersCardtype(user); logger.info("Card template {}",
* ct); if (ct == null) { return null; } PrintedCard card = new
* PrintedCard(user, ct, null, true); card.setRfidUid(event.getValue());
* cardfacade.create(card);
*
* ret = new ReaderEvent(Calendar.getInstance(), card, event.getReader());
* card.getReaderEvents().add(event);
* ret.setNotes("User associated to a card");
*
* } return ret; }
*/
@Override
public
Reader
getReader
(
Integer
readerid
)
{
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/ProductFacade.java
View file @
6669484
...
...
@@ -11,10 +11,10 @@ import javax.persistence.criteria.CriteriaBuilder;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.Root
;
import
fi.codecrew.moya.model.Product_
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.model.Product
;
import
fi.codecrew.moya.model.ProductFlag
;
import
fi.codecrew.moya.model.Product_
;
@Stateless
@LocalBean
...
...
@@ -65,18 +65,19 @@ public class ProductFacade extends IntegerPkGenericFacade<Product> {
return
getEm
().
createQuery
(
cq
).
getResultList
();
}
public
Product
findProductByBarcode
(
String
barcode
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Product
>
cq
=
cb
.
createQuery
(
Product
.
class
);
Root
<
Product
>
root
=
cq
.
from
(
Product
.
class
);
cq
.
where
(
cq
.
where
(
cb
.
equal
(
root
.
get
(
Product_
.
event
),
eventbean
.
getCurrentEvent
()),
cb
.
equal
(
root
.
get
(
Product_
.
barcode
),
barcode
)
);
return
super
.
getSingleNullableResult
(
getEm
().
createQuery
(
cq
));
}
}
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment