Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
A
Aidea
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sa_aidea
Aidea
Commits
f9e261d6
Commit
f9e261d6
authored
Jul 09, 2021
by
谢希宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Submit by Strive
Date 2021/07/09 Project End
parent
6500ef22
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
354 additions
and
186 deletions
+354
-186
consultSheetlist.html
...n/webapp/WEB-INF/views/consultSheet/consultSheetlist.html
+21
-13
ConsultSheetMapper.xml
...n/java/com/cftech/consultsheet/dao/ConsultSheetMapper.xml
+12
-3
ConsultSheet.java
...main/java/com/cftech/consultsheet/model/ConsultSheet.java
+3
-0
OrderMapper.xml
...module/src/main/java/com/cftech/order/dao/OrderMapper.xml
+1
-2
OrderServiceImpl.java
.../java/com/cftech/order/service/impl/OrderServiceImpl.java
+36
-4
OrderController.java
...e/src/main/java/com/cftech/order/web/OrderController.java
+0
-1
auditmemberlist.html
...src/main/webapp/WEB-INF/views/member/auditmemberlist.html
+10
-18
memberlist.html
...-web/src/main/webapp/WEB-INF/views/member/memberlist.html
+93
-14
MemberMapper.xml
...dule/src/main/java/com/cftech/member/dao/MemberMapper.xml
+120
-113
MemberDto.java
...dule/src/main/java/com/cftech/member/model/MemberDto.java
+1
-0
MemberService.java
...rc/main/java/com/cftech/member/service/MemberService.java
+8
-0
MemberServiceImpl.java
...ava/com/cftech/member/service/impl/MemberServiceImpl.java
+42
-18
MemberController.java
...src/main/java/com/cftech/member/web/MemberController.java
+7
-0
No files found.
aidea-modules/consult-module-web/src/main/webapp/WEB-INF/views/consultSheet/consultSheetlist.html
View file @
f9e261d6
...
...
@@ -178,12 +178,11 @@
<th>
订单编码
</th>
<th>
用药人姓名
</th>
<th>
别名
</th>
<!-- <th>性别</th>-->
<!-- <th>联系电话</th>-->
<th>
新用户
</th>
<th>
患者类型
</th>
<th>
药师
</th>
<th>
客服
</th>
<th>
随访医院
</th>
<th>
审核状态
</th>
<th>
拒绝原由
</th>
<th>
提交时间
</th>
...
...
@@ -306,12 +305,6 @@
{
"mData"
:
"fansAlias"
},
// {
// "mData": "sex"
// },
// {
// "mData": "phone"
// },
{
"mData"
:
"isSales"
},
...
...
@@ -324,6 +317,9 @@
{
"mData"
:
"customerName"
},
{
"mData"
:
"followupHospital"
},
{
"mData"
:
"status"
},
...
...
@@ -446,8 +442,20 @@
}
},
{
"width"
:
"
6
0px"
,
"width"
:
"
8
0px"
,
"aTargets"
:
[
9
],
"mData"
:
"followupHospital"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
if
(
a
)
{
return
a
;
}
else
{
return
null
;
}
}
},
{
"width"
:
"60px"
,
"aTargets"
:
[
10
],
"mData"
:
"status"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
if
(
a
==
0
)
{
...
...
@@ -461,7 +469,7 @@
},
{
"width"
:
"120px"
,
"aTargets"
:
[
1
0
],
"aTargets"
:
[
1
1
],
"mData"
:
"description"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
if
(
a
)
{
...
...
@@ -473,7 +481,7 @@
},
{
"width"
:
"120px"
,
"aTargets"
:
[
1
1
],
"aTargets"
:
[
1
2
],
"mData"
:
"createTime"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
if
(
a
)
{
...
...
@@ -486,7 +494,7 @@
},
{
"width"
:
"120px"
,
"aTargets"
:
[
1
2
],
"aTargets"
:
[
1
3
],
"mData"
:
"auditTime"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
if
(
a
)
{
...
...
@@ -498,7 +506,7 @@
},
{
"width"
:
"80px"
,
"aTargets"
:
[
1
3
],
"aTargets"
:
[
1
4
],
"mData"
:
"id"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
let
html
=
''
;
...
...
aidea-modules/consult-module/src/main/java/com/cftech/consultsheet/dao/ConsultSheetMapper.xml
View file @
f9e261d6
...
...
@@ -31,6 +31,7 @@
<result
column=
"order_id"
property=
"orderId"
></result>
<result
column=
"address_id"
property=
"addressId"
></result>
<result
column=
"audit_time"
property=
"auditTime"
></result>
<result
column=
"followup_hospital"
property=
"followupHospital"
></result>
</resultMap>
<sql
id=
"sqlWhere"
>
...
...
@@ -90,7 +91,8 @@
a.address_id addressId,
a.audit_time auditTime,
b.`name` pharmaName,
c.`name` customerName
c.`name` customerName,
a.followup_hospital followupHospital
</sql>
<sql
id=
"sqlCol"
>
...
...
@@ -221,15 +223,19 @@
(SELECT status FROM t_order sales WHERE sales.del_flag = '0' AND sales.status = '4' AND sales.openid = a.open_id LIMIT 1) isSales,
f.store fansAlias,
o.status orderStatus,
(SELECT SUM(od.drugs_num) FROM t_order_details od WHERE od.order_id = o.id AND od.del_flag = '0') drugNum
(SELECT SUM(od.drugs_num) FROM t_order_details od WHERE od.order_id = o.id AND od.del_flag = '0') drugNum,
GROUP_CONCAT(g.name SEPARATOR ',') tabNames
FROM t_aidea_consult_sheet a
LEFT JOIN t_order o ON a.order_id = o.id
LEFT JOIN t_qyuser b ON b.id = a.doctor_id AND b.del_flag = '0'
LEFT JOIN t_qyuser c ON c.id = a.service_id AND c.del_flag = '0'
LEFT JOIN wx_mp_member m ON m.open_id = a.open_id AND m.del_flag = '0' AND m.status != '0'
LEFT JOIN wx_mp_member m ON m.open_id = a.open_id AND m.del_flag = '0'
LEFT JOIN t_aidea_member_group g ON FIND_IN_SET(g.id, m.member_id) != 0 AND g.del_flag = '0'
LEFT JOIN wx_mp_fanss f ON f.openid = a.open_id AND f.delflag = '0'
<include
refid=
"sqlWhere"
/>
<if
test=
"userid!=null"
>
AND (a.doctor_id = ${userid} or a.service_id =${userid})
</if>
AND a.open_id NOT IN (SELECT open_id FROM wx_mp_member WHERE status = '0' AND del_flag = '0')
GROUP BY a.id
<if
test=
"sort!=null"
>
ORDER BY ${sort.param} ${sort.type}
</if>
<if
test=
"limit>0"
>
limit #{offset},#{limit}
</if>
</select>
...
...
@@ -338,6 +344,9 @@
<if
test=
"auditTime != null"
>
audit_time = #{auditTime, jdbcType=TIMESTAMP},
</if>
<if
test=
"followupHospital != null"
>
followup_hospital = #{followupHospital, jdbcType=VARCHAR},
</if>
l
</set>
where id=#{id,jdbcType=BIGINT}
</update>
...
...
aidea-modules/consult-module/src/main/java/com/cftech/consultsheet/model/ConsultSheet.java
View file @
f9e261d6
...
...
@@ -72,6 +72,8 @@ public class ConsultSheet extends UserSheet implements Serializable {
private
Long
memberId
;
/* 订单id */
private
Long
orderId
;
/* 随访医院 */
private
String
followupHospital
;
/**
* 审核时间
...
...
@@ -97,6 +99,7 @@ public class ConsultSheet extends UserSheet implements Serializable {
private
String
isSales
;
//是否购买
private
String
orderStatus
;
//订单状态
private
String
drugNum
;
//购买数量
private
String
tabNames
;
//患者类型
public
ConsultSheet
()
{
this
.
delFlag
=
false
;
...
...
aidea-modules/order-module/src/main/java/com/cftech/order/dao/OrderMapper.xml
View file @
f9e261d6
...
...
@@ -679,8 +679,7 @@
SELECT COUNT(1)
FROM wx_mp_fanss f
INNER JOIN wx_mp_member m ON f.openid = m.open_id
INNER JOIN t_aidea_authentication au ON m.cardid = au.id_card
WHERE f.delflag = '0' AND m.del_flag = '0' AND au.del_flag = '0' AND au.status = '0' AND m.open_id = #{openid}
WHERE f.delflag = '0' AND m.del_flag = '0' AND m.status = '1' AND m.open_id = #{openid}
</select>
<update
id=
"updateRemindType"
>
...
...
aidea-modules/order-module/src/main/java/com/cftech/order/service/impl/OrderServiceImpl.java
View file @
f9e261d6
...
...
@@ -164,7 +164,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
@Override
public
JSONObject
saveOrderDetail
(
String
datas
,
Long
accountsId
,
String
orderId
,
String
openid
,
Double
orderAmount
)
throws
Exception
{
public
JSONObject
saveOrderDetail
(
String
datas
,
Long
accountsId
,
String
orderId
,
String
openid
,
Double
orderAmount
)
throws
Exception
{
JSONObject
rtnJson
=
new
JSONObject
();
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
datas
);
...
...
@@ -258,9 +258,41 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
/**
* 计算总金额
*
* @param order
* @param orderAmount //非三期患者所以购药金额
* 三期患者免费购药,根据身份证号做出限制,每年同一身份证号购买12盒以内的药品,价格自动设为0,如超出12 盒恢复原价。
* 三期患者免费购药,根据身份证号做出限制,每年同一身份证号购买12盒以内的药品,价格自动设为0,如超出12 盒恢复原价。
* <p>
* 三期患者 每年12瓶免费用药逻辑
* BigDecimal unitP = new BigDecimal(price);//折扣单价
* BigDecimal nums = null;//折扣数量
* //三期用户
* Conds conds = new Conds();
* conds.equal("t.del_flag", Constants.DEL_FLAG_0);
* conds.equal("t.openid", order.getOpenid());
* Calendar cal = Calendar.getInstance();
* int year = cal.get(Calendar.YEAR);
* conds.equal("YEAR(t.create_time)", year);
* Integer number = orderDetailsService.fetchMemberByYearGoodsNum(conds);//已购药品数据
* if (number >= 12) {
* order.setTotalAmount(orderAmount * 100);//订单原价
* order.setOrderAmount(orderAmount);//实际需支付价格
* } else {
* int realNum = (12 - number);//剩余每年免费盒数
* if (num.intValue() < realNum) {
* nums = new BigDecimal(num);
* } else {
* nums = new BigDecimal(realNum);
* }
* BigDecimal saleAmount = unitP.multiply(nums);//三期患者折扣价格
* BigDecimal sumAmount = new BigDecimal(orderAmount);//订单总价
* BigDecimal realAmount = sumAmount.subtract(saleAmount);//实际需支付价格
* order.setTotalAmount(sumAmount.doubleValue() * 100);//订单原价
* order.setOrderAmount(realAmount.doubleValue());//实际需支付价格
* order.setRemindType(nums.toString());//三期患者本单免费数量
* }
* <p>
* 三期患者 当前时间-首单时间 >=( (30天 * 所有免费瓶数 )- N天) 用药逻辑
*/
private
void
calculateAmount
(
Order
order
,
Double
orderAmount
,
Long
num
,
Double
price
)
{
if
(
isThreeUsers
(
order
.
getOpenid
())
>
0
)
{
...
...
@@ -352,7 +384,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
calendar
.
set
(
Calendar
.
SECOND
,
0
);
Date
now
=
calendar
.
getTime
();
Date
payDate
=
DateFormatUtils
.
formatDate
(
orderMobile
.
getPayTime
(),
"yyyy-MM-dd"
);
long
difference
=
(
now
.
getTime
()-
payDate
.
getTime
())/
86400000
;
long
difference
=
(
now
.
getTime
()
-
payDate
.
getTime
())
/
86400000
;
orderMobile
.
setIsSevenDay
(
String
.
valueOf
(
Math
.
abs
(
difference
)));
}
...
...
@@ -666,7 +698,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
msg
=
SystemConfig
.
p
.
getProperty
(
"QY_SEND_SERVICE_PAYMENT_SUCCESS_MAG"
)
+
order
.
getNumber
()
+
";患者昵称:"
+
(
StringUtils
.
isNoneBlank
(
order
.
getNickName
())
?
order
.
getNickName
()
:
""
)
+
";患者别名:"
+
(
StringUtils
.
isNoneBlank
(
order
.
getFansAlias
())
?
order
.
getFansAlias
()
:
""
)+
";患者付款金额:"
+
payAmountDb
+
"(单位/元)"
;
(
StringUtils
.
isNoneBlank
(
order
.
getFansAlias
())
?
order
.
getFansAlias
()
:
""
)
+
";患者付款金额:"
+
payAmountDb
+
"(单位/元)"
;
}
if
(
qyusers
!=
null
&&
qyusers
.
size
()
>
0
)
{
...
...
aidea-modules/order-module/src/main/java/com/cftech/order/web/OrderController.java
View file @
f9e261d6
...
...
@@ -156,7 +156,6 @@ public class OrderController {
}
}
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
orderFromVO
));
model
.
addAttribute
(
"data"
,
jsonObject
);
...
...
membercard-modules/member-module-web/src/main/webapp/WEB-INF/views/member/auditmemberlist.html
View file @
f9e261d6
...
...
@@ -61,8 +61,8 @@
<section
class=
"content-header"
>
<h1>
会员
管理
<small>
会员
信息
</small>
CRC患者
管理
<small>
CRC患者
信息
</small>
</h1>
<ol
class=
"breadcrumb"
>
<li><a><i
class=
"fa fa-dashboard"
></i>
首页
</a></li>
...
...
@@ -287,7 +287,7 @@
"mData"
:
"source"
},
{
"mData"
:
"
memberId
"
"mData"
:
"
tabNames
"
},
{
"mData"
:
"createTime"
...
...
@@ -381,13 +381,6 @@
}
},
{
"aTargets"
:
[
9
],
"mData"
:
"memberId"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
return
a
;
}
}
,
{
"aTargets"
:
[
11
],
"mData"
:
"createTime"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
...
...
@@ -401,11 +394,13 @@
var
html
=
''
;
html
+=
'#if($shiro.hasPermission("qy:member:audit"))'
;
html
+=
'<a onclick="showTabsDiv('
+
c
.
id
+
')" class="btn green">设置类型</a>'
;
if
(
c
.
status
==
'0'
)
{
html
+=
'<a onclick="auditPass('
+
c
.
id
+
')" class="btn green">审核通过</a>'
;
}
if
(
c
.
status
!=
'2'
)
{
html
+=
'<a onclick="auditNotPass('
+
c
.
id
+
')" class="btn green">审核拒绝</a>'
;
if
(
c
.
invitcode
!=
null
&&
c
.
invitcode
!=
''
&&
c
.
cardid
!=
null
&&
c
.
cardid
!=
''
)
{
if
(
c
.
status
==
'0'
)
{
html
+=
'<a onclick="auditPass('
+
c
.
id
+
')" class="btn green">审核通过</a>'
;
}
if
(
c
.
status
!=
'2'
)
{
html
+=
'<a onclick="auditNotPass('
+
c
.
id
+
')" class="btn green">审核拒绝</a>'
;
}
}
html
+=
'#end'
;
return
html
;
...
...
@@ -516,9 +511,6 @@
error
:
function
()
{
}
});
//$(".select2").val([]).trigger("change");
}
function
submitTabs
()
{
...
...
membercard-modules/member-module-web/src/main/webapp/WEB-INF/views/member/memberlist.html
View file @
f9e261d6
...
...
@@ -43,6 +43,7 @@
href=
"plugins\bootstrap-fileinput\fileinput.min.css"
>
<!-- bootstrap wysihtml5 - text editor -->
<link
rel=
"stylesheet"
href=
"plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"
>
<link
rel=
"stylesheet"
href=
"plugins/select2/select2.min.css"
>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
...
...
@@ -69,26 +70,38 @@
</ol>
</section>
<div
id=
"addlabelModal"
class=
"modal fad
e"
>
<div
class=
"modal fade"
id=
"tabsDiv"
tabindex=
"-1"
role=
"dialog"
aria-hidden=
"tru
e"
>
<div
class=
"modal-dialog"
>
<div
class=
"modal-content"
>
<!-- dialog body -->
<div
class=
"modal-header"
>
<h4
class=
"modal-title"
style=
"font-weight: 700;"
>
设置患者类型
</h4>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
>
<span
aria-hidden=
"true"
>
×
</span>
</button>
</div>
<div
class=
"modal-body"
>
<font
color=
"red"
style=
"margin: 10px;"
>
*谨慎操作:生成虚拟会员后,此邀请码对应的预导入名单人员状态自动为报名状态*
</font>
<input
class=
"form-control select2"
style=
"width: 100%"
id=
"addlabel"
placeholder=
'邀请码'
>
</input>
<form>
<input
id=
"tabNumberId"
name=
"tabNumberId"
style=
"display: none;"
>
<div
class=
"form-group"
>
<!-- <label for="message-text" class="col-form-label">请选择患者类型:</label>-->
<select
class=
"form-control select2"
style=
"width: 100%"
multiple=
"multiple"
data-placeholder=
"请选择类型"
>
#foreach($group in $groups)
<option
value=
"${group.id}"
data-attr=
"${role.roleSign}"
>
${group.name}
</option>
#end
</select>
</div>
</form>
</div>
<div
style=
"text-align: center;padding-bottom: 20px;"
>
<button
style=
"width: 100px;"
type=
"button"
class=
"btn btn-primary"
onclick=
"addlabelsubmit()"
>
确定
</button>
<button
style=
"width: 100px;"
type=
"button"
id=
"tagCacel"
class=
"btn btn-default"
>
取消
</button>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-dismiss=
"modal"
>
取消
</button>
<button
type=
"button"
class=
"btn btn-primary"
onclick=
"submitTabs()"
>
提交
</button>
</div>
<!-- dialog buttons -->
</div>
</div>
</div>
<!-- Main content -->
<section
class=
"content"
>
<div
class=
"row"
>
...
...
@@ -137,10 +150,12 @@
<th>
身份证
</th>
<th>
来源
</th>
<th>
三期患者
</th>
<th>
患者类型
</th>
<!-- <th>邀请码</th>-->
<!-- <th>客户分类</th>-->
<!-- <th>名片</th>-->
<th>
创建日期
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody
id=
"tablebody"
>
...
...
@@ -181,6 +196,7 @@
<script
src=
"dist/js/app.min.js"
></script>
<script
type=
"text/javascript"
src=
"plugins/jquery-validation/js/jquery.validate.min.js"
></script>
<script
src=
"plugins/select2/select2.full.min.js"
></script>
<script>
var
csrfheader
=
{
name
:
'_csrf_header'
,
value
:
'${_csrf.headerName}'
};
var
csrftoken
=
{
name
:
'_csrf'
,
value
:
'${_csrf.token}'
};
...
...
@@ -254,8 +270,14 @@
{
"mData"
:
"status"
},
{
"mData"
:
"tabNames"
},
{
"mData"
:
"createTime"
},
{
"mData"
:
"id"
}
],
"aoColumnDefs"
:
[
...
...
@@ -263,7 +285,6 @@
'visible'
:
false
,
'targets'
:
[
0
]
},
{
"aTargets"
:
[
1
],
"mData"
:
"imageurl"
,
...
...
@@ -338,11 +359,22 @@
}
},
{
"aTargets"
:
[
8
],
"aTargets"
:
[
10
],
"mData"
:
"createTime"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
return
formatDates
(
a
,
"yyyy-MM-dd HH:mm:ss"
);
}
},
{
"aTargets"
:
[
11
],
"mData"
:
"id"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
var
html
=
''
;
html
+=
'#if($shiro.hasPermission("qy:member:audit"))'
;
html
+=
'<a onclick="showTabsDiv('
+
c
.
id
+
')" class="btn green">设置类型</a>'
;
html
+=
'#end'
;
return
html
;
}
}
]
});
...
...
@@ -394,6 +426,7 @@
jQuery
(
document
).
ready
(
function
()
{
$
(
".select2"
).
select2
();
seachTable
();
$
(
'.datepicker'
).
datepicker
({
show
:
true
,
...
...
@@ -452,7 +485,53 @@
});
}
function
showTabsDiv
(
id
)
{
$
(
"#tabsDiv"
).
modal
(
'show'
);
$
(
"#tabNumberId"
).
val
(
id
);
$
.
ajax
({
type
:
"POST"
,
url
:
"#springUrl('/a/member/memberById')"
,
data
:
{
id
:
$
(
"#tabNumberId"
).
val
(),
_csrf_header
:
csrfheader
.
value
,
_csrf
:
csrftoken
.
value
},
dataType
:
"json"
,
success
:
function
(
data
)
{
if
(
data
.
errorNo
==
0
)
{
if
(
data
.
member
.
memberId
!=
null
)
{
$
(
".select2"
).
val
(
data
.
member
.
memberId
.
split
(
","
)).
trigger
(
"change"
);
}
else
{
$
(
".select2"
).
val
([]).
trigger
(
"change"
);
}
}
},
error
:
function
()
{
}
});
}
function
submitTabs
()
{
debugger
;
$
(
"#tabsDiv"
).
modal
(
'hide'
);
let
vals
=
$
(
'.select2'
).
select2
(
'val'
);
if
(
vals
.
length
==
0
)
{
Cfapp
.
alert
({
message
:
"请先选择患者类型"
,
btntext
:
"确定"
,
success
:
function
()
{}
});
return
;
}
$
.
ajax
({
type
:
"POST"
,
url
:
"#springUrl('/a/member/formData')"
,
data
:
{
id
:
$
(
"#tabNumberId"
).
val
(),
memberId
:
vals
.
join
(
','
),
_csrf_header
:
csrfheader
.
value
,
_csrf
:
csrftoken
.
value
},
dataType
:
"json"
,
success
:
function
(
data
)
{
if
(
data
.
errorNo
==
0
)
{
$
(
"#tabsDiv"
).
modal
(
'hide'
);
location
.
href
=
"#springUrl('/a/member/list')"
;
}
},
error
:
function
()
{
}
});
}
</script>
</body>
</html>
membercard-modules/member-module/src/main/java/com/cftech/member/dao/MemberMapper.xml
View file @
f9e261d6
...
...
@@ -108,7 +108,8 @@
</sql>
<sql
id=
"sqlColumns"
>
id,number,name,phone,imageurl,cardid,email,member_id,accounts_id,del_flag,status,create_time,update_time,description,create_by,update_by,
id
,number,name,phone,imageurl,cardid,email,member_id,accounts_id,del_flag,status,create_time,update_time,description,create_by,update_by,
open_id,storeid,fanss_store_id,sex,birthday,area,service_id,doctor_id,invitcode,compan,source,audit_time
</sql>
...
...
@@ -116,67 +117,66 @@
keyProperty=
"id"
>
insert into wx_mp_member
(
<include
refid=
"sqlColumns"
/>
<include
refid=
"sqlColumns"
/>
)
values
(
#{id, jdbcType=BIGINT},
#{number, jdbcType=VARCHAR},
#{name, jdbcType=VARCHAR},
AES_ENCRYPT(#{phone, jdbcType=VARBINARY},'aideakey'),
#{imageurl, jdbcType=VARCHAR},
#{cardid, jdbcType=VARCHAR},
AES_ENCRYPT(#{email, jdbcType=VARBINARY},'aideakey'),
#{memberId, jdbcType=VARCHAR},
#{accountsId, jdbcType=BIGINT},
#{delFlag, jdbcType=TINYINT},
#{status, jdbcType=VARCHAR},
now(),
now(),
#{description, jdbcType=VARCHAR},
#{createBy, jdbcType=BIGINT},
#{updateBy, jdbcType=BIGINT},
#{openId, jdbcType=VARCHAR},
#{storeid,jdbcType=VARCHAR},
#{fanssStoreId, jdbcType=BIGINT},
#{sex, jdbcType=BIGINT},
AES_ENCRYPT(#{birthday,jdbcType=VARBINARY},'aideakey'),#{area,jdbcType=VARCHAR},
#{serviceId, jdbcType=VARCHAR},
#{doctorId,jdbcType=VARCHAR},
#{invitcode,jdbcType=VARCHAR},
#{compan,jdbcType=VARCHAR},
#{source,jdbcType=BIGINT},
#{auditTime,jdbcType=TIMESTAMP}
#{id, jdbcType=BIGINT},
#{number, jdbcType=VARCHAR},
#{name, jdbcType=VARCHAR},
AES_ENCRYPT(#{phone, jdbcType=VARBINARY},'aideakey'),
#{imageurl, jdbcType=VARCHAR},
#{cardid, jdbcType=VARCHAR},
AES_ENCRYPT(#{email, jdbcType=VARBINARY},'aideakey'),
#{memberId, jdbcType=VARCHAR},
#{accountsId, jdbcType=BIGINT},
#{delFlag, jdbcType=TINYINT},
#{status, jdbcType=VARCHAR},
now(),
now(),
#{description, jdbcType=VARCHAR},
#{createBy, jdbcType=BIGINT},
#{updateBy, jdbcType=BIGINT},
#{openId, jdbcType=VARCHAR},
#{storeid,jdbcType=VARCHAR},
#{fanssStoreId, jdbcType=BIGINT},
#{sex, jdbcType=BIGINT},
AES_ENCRYPT(#{birthday,jdbcType=VARBINARY},'aideakey'),#{area,jdbcType=VARCHAR},
#{serviceId, jdbcType=VARCHAR},
#{doctorId,jdbcType=VARCHAR},
#{invitcode,jdbcType=VARCHAR},
#{compan,jdbcType=VARCHAR},
#{source,jdbcType=BIGINT},
#{auditTime,jdbcType=TIMESTAMP}
)
</insert>
<select
id=
"fetchById"
parameterType=
"java.lang.Long"
resultMap=
"resultMap"
>
SELECT
t.id,
t.number,
t.name,
CONVERT( AES_DECRYPT( t.phone,'aideakey') USING UTF8) phone,
t.imageurl,
t.cardid,
CONVERT( AES_DECRYPT(t.email,'aideakey') USING UTF8) email,
t.member_id,
t.accounts_id,
t.del_flag,
t.status,
t.create_time,
t.update_time,
t.description,
t.create_by,
t.update_by,
t.open_id,
t.storeid,
t.area,
t.fanss_store_id,
t.doctor_id,
t.invitcode,
t.compan
SELECT t.id,
t.number,
t.name,
CONVERT(AES_DECRYPT(t.phone, 'aideakey') USING UTF8) phone,
t.imageurl,
t.cardid,
CONVERT(AES_DECRYPT(t.email, 'aideakey') USING UTF8) email,
t.member_id,
t.accounts_id,
t.del_flag,
t.status,
t.create_time,
t.update_time,
t.description,
t.create_by,
t.update_by,
t.open_id,
t.storeid,
t.area,
t.fanss_store_id,
t.doctor_id,
t.invitcode,
t.compan
FROM wx_mp_member t
WHERE t.id
=
#{id}
WHERE t.id
=
#{id}
</select>
<select
id=
"count"
parameterType=
"java.util.Map"
resultType=
"java.lang.Integer"
>
...
...
@@ -203,26 +203,26 @@
<select
id=
"fetchSearchByPageServer"
parameterType=
"java.util.Map"
resultMap=
"resultMap"
>
SELECT
member.id,
member.number,
member.name,
CONVERT(AES_DECRYPT(member.phone,'aideakey') USING UTF8) member.phone,
member.imageurl,
member.member_id,
member.accounts_id,
member.del_flag,
member. STATUS,
member.create_time,
member.update_time,
member.description,
member.create_by,
member.update_by,
member.open_id,
member.storeid,
member.invitcode,
member.compan,
member.sex,
member.service_id
member.id,
member.number,
member.name,
CONVERT(AES_DECRYPT(member.phone,'aideakey') USING UTF8) member.phone,
member.imageurl,
member.member_id,
member.accounts_id,
member.del_flag,
member. STATUS,
member.create_time,
member.update_time,
member.description,
member.create_by,
member.update_by,
member.open_id,
member.storeid,
member.invitcode,
member.compan,
member.sex,
member.service_id
FROM
wx_mp_member member
<include
refid=
"sqlWhere"
/>
...
...
@@ -316,30 +316,36 @@
</update>
<update
id=
"delete"
parameterType=
"java.lang.Long"
>
update wx_mp_member set del_flag=1 where id=#{id,jdbcType=BIGINT}
update wx_mp_member
set del_flag=1
where id = #{id,jdbcType=BIGINT}
</update>
<select
id=
"selectmemberDto"
parameterType=
"java.util.Map"
resultType=
"com.cftech.member.model.MemberDto"
>
SELECT
m.id,
m.imageurl,
m.sex,
m.name,
CONVERT(AES_DECRYPT(m.phone,'aideakey') USING UTF8) as phone,
m.open_id AS openId,
m.create_time as createTime,
m.member_id memberId,
m.source,
m.cardid,
m.status,
m.invitcode,
q.name serviceName
FROM
wx_mp_member m LEFT JOIN t_qyuser q ON m.service_id = q.id
m.id,
m.imageurl,
m.sex,
m.name,
CONVERT(AES_DECRYPT(m.phone,'aideakey') USING UTF8) as phone,
m.open_id AS openId,
m.create_time as createTime,
m.member_id memberId,
m.source,
m.cardid,
m.status,
m.invitcode,
q.name serviceName,
GROUP_CONCAT(g.name SEPARATOR ',') tabNames
FROM wx_mp_member m
LEFT JOIN t_qyuser q ON m.service_id = q.id
LEFT JOIN t_aidea_member_group g ON FIND_IN_SET(g.id, m.member_id) != 0 AND g.del_flag = '0'
<include
refid=
"sqlWhere"
/>
GROUP BY m.id
<if
test=
"sort!=null"
>
ORDER BY ${sort.param} ${sort.type}
</if>
<if
test=
"limit>0"
>
limit #{offset},#{limit}
</if>
</select>
<select
id=
"selectmemberDtoCount"
parameterType=
"java.util.Map"
resultType=
"java.lang.Integer"
>
SELECT
COUNT(1)
...
...
@@ -347,46 +353,47 @@
wx_mp_member m
<include
refid=
"sqlWhere"
/>
</select>
<!--个人信息回填
-->
<!--个人信息回填
-->
<select
id=
"memberFormation"
parameterType=
"java.lang.String"
resultType=
"com.cftech.member.model.MemberVO"
>
SELECT
t.id,
SELECT t.id,
t.name memberName,
t.sex,
CONVERT(AES_DECRYPT(t.birthday, 'aideakey')USING UTF8) birthday,
CONVERT(AES_DECRYPT(t.birthday, 'aideakey')
USING UTF8) birthday,
t.imageurl,
CONVERT(AES_DECRYPT(t.email, 'aideakey')USING UTF8) AS mailbox,
CONVERT(AES_DECRYPT(t.phone, 'aideakey')USING UTF8) as phone,
CONVERT(AES_DECRYPT(t.email, 'aideakey')
USING UTF8) AS mailbox,
CONVERT(AES_DECRYPT(t.phone, 'aideakey')
USING UTF8) as phone,
t.cardid,
t.status,
t.storeid,
o.org_name hospitalsName,
o.org_name
hospitalsName,
t.invitcode,
t.audit_time auditTime,
t.open_id openid,
t.service_id serviceId,
u.name serviceName
u.name serviceName,
t.compan
FROM wx_mp_member t
LEFT JOIN t_orgunit o ON t.storeid = o.id
LEFT JOIN t_qyuser u ON t.service_id = u.id
WHERE t.open_id = #{openid} and t.del_flag = 0
WHERE t.open_id = #{openid}
and t.del_flag = 0
</select>
<select
id=
"fanssChat"
resultType=
"com.cftech.member.model.FanssVO"
>
SELECT
f.
id,
f.openid
,
f.nickname nickname
,
f.headimgurl
,
m.status isThre
e,
m.invitcode invitcode
,
m.cardid cardid,
o.org_name hospital
FROM wx_mp_fanss f
LEFT JOIN wx_mp_member m ON f.openid = m.open_id AND m.del_flag = '0'
LEFT JOIN t_orgunit o ON m.storeid = o.id
WHERE f.openid = #{openid}
and f.delflag = '0'
SELECT
f.id,
f.open
id,
f.nickname nickname
,
f.headimgurl
,
m.status isThree
,
m.invitcode invitcod
e,
m.cardid cardid
,
o.org_name hospital
FROM wx_mp_fanss f
LEFT JOIN wx_mp_member m ON f.openid = m.open_id AND m.del_flag = '0'
LEFT JOIN t_orgunit o ON m.storeid = o.id
WHERE f.openid = #{openid}
and f.delflag = '0'
</select>
<!-- 个人信息修改 -->
...
...
membercard-modules/member-module/src/main/java/com/cftech/member/model/MemberDto.java
View file @
f9e261d6
...
...
@@ -44,6 +44,7 @@ public class MemberDto {
private
String
memberId
;
private
String
tabNames
;
...
...
membercard-modules/member-module/src/main/java/com/cftech/member/service/MemberService.java
View file @
f9e261d6
...
...
@@ -42,6 +42,14 @@ public interface MemberService extends GenericService<Member> {
void
updateworkshop
(
Member
member
,
String
invitcode
);
/**
* 会员列表
* @param conds
* @param sort
* @param page
* @param pageSize
* @return
*/
List
<
MemberDto
>
selectmemberDto
(
Conds
conds
,
Sort
sort
,
int
page
,
int
pageSize
);
int
selectmemberDtoCount
(
Conds
conds
);
...
...
membercard-modules/member-module/src/main/java/com/cftech/member/service/impl/MemberServiceImpl.java
View file @
f9e261d6
...
...
@@ -120,8 +120,8 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
//未注册会员时,填充粉丝信息
List
<
MemberVO
>
memberVOS
=
memberMapper
.
memberFormation
(
openid
);
if
(
memberVOS
==
null
||
memberVOS
.
size
()
==
0
)
{
MpFanssEntity
fanssEntity
=
fanssService
.
getWxUser
(
openid
);
MemberVO
member
=
new
MemberVO
();
MpFanssEntity
fanssEntity
=
fanssService
.
getWxUser
(
openid
);
member
.
setOpenid
(
openid
);
member
.
setMemberName
(
fanssEntity
.
getNickname
());
member
.
setSex
(
fanssEntity
.
getSex
());
...
...
@@ -129,9 +129,7 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
rtnJson
.
put
(
"errorNo"
,
"0"
);
rtnJson
.
put
(
"data"
,
member
);
}
else
{
MpFanssEntity
fanssEntity
=
fanssService
.
getWxUser
(
openid
);
MemberVO
member
=
memberVOS
.
get
(
0
);
member
.
setImageUrl
(
fanssEntity
.
getHeadimgurl
());
rtnJson
.
put
(
"errorNo"
,
"0"
);
rtnJson
.
put
(
"data"
,
member
);
}
...
...
@@ -151,11 +149,6 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
rtnJson
.
put
(
"errorMsg"
,
"姓名不能为空"
);
return
rtnJson
;
}
if
(
StringUtils
.
isEmpty
(
memberVO
.
getCardid
()))
{
rtnJson
.
put
(
"errorNo"
,
"1"
);
rtnJson
.
put
(
"errorMsg"
,
"身份证不能为空"
);
return
rtnJson
;
}
if
(
StringUtils
.
isEmpty
(
memberVO
.
getPhone
()))
{
rtnJson
.
put
(
"errorNo"
,
"1"
);
rtnJson
.
put
(
"errorMsg"
,
"联系方式不能为空"
);
...
...
@@ -163,9 +156,20 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
}
MpAccountsEntity
accounts
=
mpAccountsService
.
getMpAccountsAppid
(
memberVO
.
getAppId
());
List
<
MemberVO
>
memberVOS
=
memberMapper
.
memberFormation
(
memberVO
.
getOpenid
());
if
(
memberVOS
==
null
||
memberVOS
.
size
()
==
0
)
{
Member
member
=
new
Member
();
Member
member
=
this
.
fetchById
(
memberVO
.
getId
());
if
(
member
==
null
)
{
//验证随机号是否被使用
Conds
conds
=
new
Conds
();
conds
.
equal
(
"invitcode"
,
memberVO
.
getInvitcode
());
List
<
Member
>
list
=
this
.
fetchSearchByPage
(
conds
,
null
,
0
,
0
);
if
(
list
!=
null
&&
list
.
size
()
!=
0
)
{
rtnJson
.
put
(
"errorNo"
,
"2"
);
rtnJson
.
put
(
"errorMsg"
,
"随机号已被使用"
);
return
rtnJson
;
}
member
=
new
Member
();
member
.
setNumber
(
codingruleUtils
.
getNumber
(
accounts
.
getId
(),
Member
.
class
.
getName
()));
member
.
setOpenId
(
memberVO
.
getOpenid
());
member
.
setName
(
memberVO
.
getMemberName
());
...
...
@@ -173,20 +177,40 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
member
.
setCardid
(
memberVO
.
getCardid
());
member
.
setPhone
(
memberVO
.
getPhone
());
member
.
setImageurl
(
memberVO
.
getImageUrl
());
member
.
setStoreid
(
memberVO
.
getStoreid
());
//入组医院
member
.
setInvitcode
(
memberVO
.
getInvitcode
());
//随机号
if
(
StringUtils
.
isNoneBlank
(
memberVO
.
getStoreid
())
&&
StringUtils
.
isNoneBlank
(
memberVO
.
getInvitcode
()))
{
member
.
setStatus
(
"0"
);
//待审批
member
.
setCompan
(
memberVO
.
getCompan
());
//三期用户
if
(
StringUtils
.
equals
(
memberVO
.
getCompan
(),
"1"
))
{
member
.
setStatus
(
"0"
);
member
.
setStoreid
(
memberVO
.
getStoreid
());
member
.
setInvitcode
(
memberVO
.
getInvitcode
());
}
memberMapper
.
save
(
member
);
rtnJson
.
put
(
"errorNo"
,
"0"
);
rtnJson
.
put
(
"errorMsg"
,
"修改成功"
);
return
rtnJson
;
}
else
{
if
(
StringUtils
.
equals
(
"2"
,
memberVOS
.
get
(
0
).
getStatus
())
&&
StringUtils
.
isNoneBlank
(
memberVO
.
getStoreid
())
&&
StringUtils
.
isNoneBlank
(
memberVO
.
getInvitcode
()))
{
memberVO
.
setStatus
(
"0"
);
//验证随机号是否被使用
Conds
conds
=
new
Conds
();
conds
.
equal
(
"invitcode"
,
memberVO
.
getInvitcode
());
conds
.
notEqual
(
"id"
,
member
.
getId
());
List
<
Member
>
list
=
this
.
fetchSearchByPage
(
conds
,
null
,
0
,
0
);
if
(
list
!=
null
&&
list
.
size
()
!=
0
)
{
rtnJson
.
put
(
"errorNo"
,
"2"
);
rtnJson
.
put
(
"errorMsg"
,
"随机号已被使用"
);
return
rtnJson
;
}
member
.
setName
(
memberVO
.
getMemberName
());
member
.
setSex
(
Long
.
parseLong
(
memberVO
.
getSex
()));
member
.
setPhone
(
memberVO
.
getPhone
());
member
.
setCompan
(
memberVO
.
getCompan
());
//三期患者且审核拒绝
if
(
StringUtils
.
equals
(
memberVO
.
getCompan
(),
"1"
)
&&
StringUtils
.
equals
(
member
.
getStatus
(),
"2"
))
{
member
.
setStatus
(
"0"
);
member
.
setStoreid
(
memberVO
.
getStoreid
());
member
.
setInvitcode
(
memberVO
.
getInvitcode
());
}
memberMapper
.
update
Member
(
memberVO
);
memberMapper
.
update
(
member
);
rtnJson
.
put
(
"errorNo"
,
"0"
);
rtnJson
.
put
(
"errorMsg"
,
"修改成功"
);
return
rtnJson
;
...
...
membercard-modules/member-module/src/main/java/com/cftech/member/web/MemberController.java
View file @
f9e261d6
...
...
@@ -110,6 +110,13 @@ public class MemberController {
@RequestMapping
(
"/list"
)
public
String
list
(
HttpServletRequest
request
,
Model
model
)
{
Long
accountId
=
UserUtils
.
getmpaccounts
(
request
);
//获取患者类型数据
Conds
conds
=
new
Conds
();
conds
.
equal
(
"del_flag"
,
Constants
.
DEL_FLAG_0
);
Sort
sort
=
new
Sort
(
"create_time"
,
OrderType
.
DESC
);
List
<
MemberGroup
>
groups
=
memberGroupService
.
fetchSearchByPage
(
conds
,
sort
,
0
,
0
);
model
.
addAttribute
(
"groups"
,
groups
);
model
.
addAttribute
(
"accountId"
,
accountId
);
return
"member/memberlist"
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment