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;
...
@@ -19,7 +19,6 @@ import fi.codecrew.moya.facade.ReaderEventFacade;
import
fi.codecrew.moya.facade.ReaderFacade
;
import
fi.codecrew.moya.facade.ReaderFacade
;
import
fi.codecrew.moya.model.AccountEvent
;
import
fi.codecrew.moya.model.AccountEvent
;
import
fi.codecrew.moya.model.CardCode
;
import
fi.codecrew.moya.model.CardCode
;
import
fi.codecrew.moya.model.CardTemplate
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.Place
;
import
fi.codecrew.moya.model.Place
;
import
fi.codecrew.moya.model.PrintedCard
;
import
fi.codecrew.moya.model.PrintedCard
;
...
@@ -38,12 +37,10 @@ public class ReaderBean implements ReaderBeanLocal {
...
@@ -38,12 +37,10 @@ public class ReaderBean implements ReaderBeanLocal {
@EJB
@EJB
private
ReaderFacade
readerfacade
;
private
ReaderFacade
readerfacade
;
@EJB
@EJB
private
PrintedCardFacade
cardfacade
;
private
PrintedCardFacade
cardfacade
;
@EJB
@EJB
private
CardTemplateBeanLocal
cardtemplatebean
;
private
CardTemplateBeanLocal
cardtemplatebean
;
@EJB
@EJB
...
@@ -56,12 +53,10 @@ public class ReaderBean implements ReaderBeanLocal {
...
@@ -56,12 +53,10 @@ public class ReaderBean implements ReaderBeanLocal {
private
CardTemplateBean
cardTemplateBean
;
private
CardTemplateBean
cardTemplateBean
;
@EJB
@EJB
private
ProductPBean
productPBean
;
private
ProductPBean
productPBean
;
@EJB
@EJB
private
CardCodeFacade
cardCodeFacade
;
private
CardCodeFacade
cardCodeFacade
;
@EJB
@EJB
private
BarcodeBeanLocal
barcodeBean
;
private
BarcodeBeanLocal
barcodeBean
;
...
@@ -72,18 +67,21 @@ public class ReaderBean implements ReaderBeanLocal {
...
@@ -72,18 +67,21 @@ public class ReaderBean implements ReaderBeanLocal {
Reader
reader
=
readerfacade
.
findOrCreateByIdent
(
readerIdent
);
Reader
reader
=
readerfacade
.
findOrCreateByIdent
(
readerIdent
);
return
checkCode
(
reader
,
code
);
return
checkCode
(
reader
,
code
);
}
}
@Override
@Override
/**
/**
* check reader code, and add it to the database
* check reader code, and add it to the database
*/
*/
public
ReaderEvent
checkCode
(
Reader
reader
,
String
code
)
{
public
ReaderEvent
checkCode
(
Reader
reader
,
String
code
)
{
if
(
reader
==
null
||
code
==
null
||
code
.
isEmpty
())
{
return
null
;
}
logger
.
info
(
"got code from reader {}"
,
code
);
logger
.
info
(
"got code from reader {}"
,
code
);
code
=
code
.
replace
(
"\"\b"
,
""
);
code
=
code
.
replace
(
"\"\b"
,
""
);
if
(
reader
.
getType
()
==
ReaderType
.
RFID
)
{
if
(
ReaderType
.
RFID
.
equals
(
reader
.
getType
())
)
{
if
(
Pattern
.
matches
(
"^.*000000$"
,
code
))
if
(
Pattern
.
matches
(
"^.*000000$"
,
code
))
{
{
...
@@ -96,65 +94,63 @@ public class ReaderBean implements ReaderBeanLocal {
...
@@ -96,65 +94,63 @@ public class ReaderBean implements ReaderBeanLocal {
}
}
code
=
sb
.
toString
();
code
=
sb
.
toString
();
}
}
ReaderEvent
event
=
new
ReaderEvent
(
new
Date
(),
reader
,
code
);
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
// first, check if dublicate, there is 30s timeout for dublicates,
// that's bcause accident dublicates are bad, but otherwise it's probably bcause user want's to read it again
// 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
);
List
<
ReaderEvent
>
lastevents
=
readerEventFacade
.
findLastEvents
(
reader
,
1
);
if
(!
lastevents
.
isEmpty
()
&&
!
reader
.
isAutoproduct
())
if
(!
lastevents
.
isEmpty
()
&&
!
reader
.
isAutoproduct
())
{
{
ReaderEvent
lastevent
=
lastevents
.
get
(
0
);
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
.
reload
(
lastevent
);
lastevent
=
readerEventFacade
.
merge
(
lastevent
);
lastevent
=
readerEventFacade
.
merge
(
lastevent
);
return
lastevent
;
// todo: update lastevent bfore return
return
lastevent
;
// todo: update lastevent bfore return
}
}
}
}
// find stuff with barcode and set type
// 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
);
EventUser
user
=
barcodeBean
.
getUser
(
code
);
if
(
user
!=
null
)
{
if
(
user
!=
null
)
{
event
.
setType
(
ReaderEventType
.
USER
);
event
.
setType
(
ReaderEventType
.
USER
);
event
.
setUser
(
user
);
event
.
setUser
(
user
);
}
}
PrintedCard
card
=
barcodeBean
.
getPrintedCard
(
code
);
PrintedCard
card
=
barcodeBean
.
getPrintedCard
(
code
);
if
(
card
!=
null
)
{
if
(
card
!=
null
)
{
event
.
setType
(
ReaderEventType
.
CARD
);
event
.
setType
(
ReaderEventType
.
CARD
);
event
.
setPrintedCard
(
card
);
event
.
setPrintedCard
(
card
);
if
(
card
.
getUser
()
!=
null
)
{
if
(
card
.
getUser
()
!=
null
)
{
event
.
setUser
(
card
.
getUser
());
event
.
setUser
(
card
.
getUser
());
}
}
}
}
Product
product
=
barcodeBean
.
getProduct
(
code
);
Product
product
=
barcodeBean
.
getProduct
(
code
);
if
(
product
!=
null
)
{
if
(
product
!=
null
)
{
event
.
setType
(
ReaderEventType
.
PRODUCT
);
event
.
setType
(
ReaderEventType
.
PRODUCT
);
event
.
setProduct
(
product
);
event
.
setProduct
(
product
);
}
}
Place
place
=
barcodeBean
.
getPlaceFromBarcode
(
code
);
Place
place
=
barcodeBean
.
getPlaceFromBarcode
(
code
);
if
(
place
!=
null
)
{
if
(
place
!=
null
)
{
event
.
setType
(
ReaderEventType
.
PLACE
);
event
.
setType
(
ReaderEventType
.
PLACE
);
event
.
setPlace
(
place
);
event
.
setPlace
(
place
);
}
}
event
.
setUpdatetime
(
new
Date
());
event
.
setUpdatetime
(
new
Date
());
// reader is in autoproduct-mode, create dat product
// reader is in autoproduct-mode, create dat product
...
@@ -166,19 +162,18 @@ public class ReaderBean implements ReaderBeanLocal {
...
@@ -166,19 +162,18 @@ public class ReaderBean implements ReaderBeanLocal {
event
.
setNotes
(
"Created automatic account event from reader. "
+
createAc
);
event
.
setNotes
(
"Created automatic account event from reader. "
+
createAc
);
}
}
event
=
readerEventFacade
.
create
(
event
);
event
=
readerEventFacade
.
create
(
event
);
return
event
;
return
event
;
}
}
@Override
@Override
public
ReaderEvent
assocCodeToCard
(
ReaderEvent
readerEvent
,
PrintedCard
card
)
{
public
ReaderEvent
assocCodeToCard
(
ReaderEvent
readerEvent
,
PrintedCard
card
)
{
CardCode
code
=
new
CardCode
(
card
,
readerEvent
.
getReader
().
getType
(),
readerEvent
.
getValue
());
CardCode
code
=
new
CardCode
(
card
,
readerEvent
.
getReader
().
getType
(),
readerEvent
.
getValue
());
code
=
cardCodeFacade
.
create
(
code
);
code
=
cardCodeFacade
.
create
(
code
);
card
=
cardfacade
.
reload
(
card
);
card
=
cardfacade
.
reload
(
card
);
...
@@ -197,7 +192,7 @@ public class ReaderBean implements ReaderBeanLocal {
...
@@ -197,7 +192,7 @@ public class ReaderBean implements ReaderBeanLocal {
@Override
@Override
public
List
<
ReaderEvent
>
getReaderEvents
(
Integer
readerId
,
Integer
count
)
{
public
List
<
ReaderEvent
>
getReaderEvents
(
Integer
readerId
,
Integer
count
)
{
logger
.
info
(
"Getting events for reader {}"
,
readerId
);
logger
.
info
(
"Getting events for reader {}"
,
readerId
);
Reader
reader
=
readerfacade
.
find
(
readerId
);
Reader
reader
=
readerfacade
.
find
(
readerId
);
return
readerEventFacade
.
findLastEvents
(
reader
,
count
);
return
readerEventFacade
.
findLastEvents
(
reader
,
count
);
...
@@ -236,34 +231,25 @@ public class ReaderBean implements ReaderBeanLocal {
...
@@ -236,34 +231,25 @@ public class ReaderBean implements ReaderBeanLocal {
return
ret
;
return
ret
;
}
}
// ok, let's comment this out, so I can see where this is used
// ok, let's comment this out, so I can see where this is used
/*
/*
@Override
* @Override public ReaderEvent createCard(ReaderEvent event, EventUser
public ReaderEvent createCard(ReaderEvent event, EventUser user) {
* user) { ReaderEvent ret = null;
ReaderEvent ret = null;
* logger.info("Trying to create card for event {} with printed card {}",
logger.info("Trying to create card for event {} with printed card {}", event, event.getPrintedCard());
* event, event.getPrintedCard());
*
if (event.getPrintedCard() == null)
* if (event.getPrintedCard() == null) { CardTemplate ct =
{
* cardTemplateBean.getUsersCardtype(user); logger.info("Card template {}",
CardTemplate ct = cardTemplateBean.getUsersCardtype(user);
* ct); if (ct == null) { return null; } PrintedCard card = new
logger.info("Card template {}", ct);
* PrintedCard(user, ct, null, true); card.setRfidUid(event.getValue());
if (ct == null)
* cardfacade.create(card);
{
*
return null;
* ret = new ReaderEvent(Calendar.getInstance(), card, event.getReader());
}
* card.getReaderEvents().add(event);
PrintedCard card = new PrintedCard(user, ct, null, true);
* ret.setNotes("User associated to a card");
card.setRfidUid(event.getValue());
*
cardfacade.create(card);
* } return ret; }
*/
ret = new ReaderEvent(Calendar.getInstance(), card, event.getReader());
card.getReaderEvents().add(event);
ret.setNotes("User associated to a card");
}
return ret;
}
*/
@Override
@Override
public
Reader
getReader
(
Integer
readerid
)
{
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;
...
@@ -11,10 +11,10 @@ import javax.persistence.criteria.CriteriaBuilder;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.Root
;
import
javax.persistence.criteria.Root
;
import
fi.codecrew.moya.model.Product_
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.model.Product
;
import
fi.codecrew.moya.model.Product
;
import
fi.codecrew.moya.model.ProductFlag
;
import
fi.codecrew.moya.model.ProductFlag
;
import
fi.codecrew.moya.model.Product_
;
@Stateless
@Stateless
@LocalBean
@LocalBean
...
@@ -65,18 +65,19 @@ public class ProductFacade extends IntegerPkGenericFacade<Product> {
...
@@ -65,18 +65,19 @@ public class ProductFacade extends IntegerPkGenericFacade<Product> {
return
getEm
().
createQuery
(
cq
).
getResultList
();
return
getEm
().
createQuery
(
cq
).
getResultList
();
}
}
public
Product
findProductByBarcode
(
String
barcode
)
{
public
Product
findProductByBarcode
(
String
barcode
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Product
>
cq
=
cb
.
createQuery
(
Product
.
class
);
CriteriaQuery
<
Product
>
cq
=
cb
.
createQuery
(
Product
.
class
);
Root
<
Product
>
root
=
cq
.
from
(
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
)
cb
.
equal
(
root
.
get
(
Product_
.
barcode
),
barcode
)
);
);
return
super
.
getSingleNullableResult
(
getEm
().
createQuery
(
cq
));
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